docs: public void setRegionCoverageSize(int size){
          if(size < 0){
              return;
          }
          int lg = (int)Math.ceil(Math.log(size)/Math.log(2));
          //int lg = 31 - Integer.numberOfLeadingZeros(size);
          int newRegionCoverageSize = 1 << lg;
          int newRegionCoverageMask = newRegionCoverageSize - 1;
          RegionCoverage newCoverage = new RegionCoverage(newRegionCoverageSize);
  
          if(coverage != null){
              for(int i = 0; i < (end-start); i++){
                  newCoverage.getA()[(int)((start+i)&newRegionCoverageMask)] = coverage.getA()[(int)((start+i)&regionCoverageMask)];
              }
          }
  
          regionCoverageSize = newRegionCoverageSize;
          regionCoverageMask = newRegionCoverageMask;
          coverage = newCoverage;
  //        System.out.println("Region Coverage Mask : " + regionCoverageMask);
      }