@Test public void testPowerOfTwo() { assertTrue(MathUtils.isPowerOf2(1)); assertTrue(MathUtils.isPowerOf2(2)); assertTrue(MathUtils.isPowerOf2(4)); assertTrue(MathUtils.isPowerOf2(8)); assertTrue(MathUtils.isPowerOf2(32768)); assertTrue(MathUtils.isPowerOf2(65536)); assertTrue(MathUtils.isPowerOf2(1 << 30)); assertTrue(MathUtils.isPowerOf2(1L + Integer.MAX_VALUE)); assertTrue(MathUtils.isPowerOf2(1L << 41)); assertTrue(MathUtils.isPowerOf2(1L << 62)); assertFalse(MathUtils.isPowerOf2(3)); assertFalse(MathUtils.isPowerOf2(5)); assertFalse(MathUtils.isPowerOf2(567923)); assertFalse(MathUtils.isPowerOf2(Integer.MAX_VALUE)); assertFalse(MathUtils.isPowerOf2(Long.MAX_VALUE)); }
private void setNewBuckets(MemorySegment[] buckets, int numBuckets, int threshold) { this.buckets = buckets; checkArgument(MathUtils.isPowerOf2(numBuckets)); this.numBuckets = numBuckets; this.numBucketsMask = numBuckets - 1; this.overflowSegments = new MemorySegment[2]; this.numOverflowSegments = 0; this.nextOverflowBucket = 0; this.threshold = threshold; }
throw new IllegalArgumentException("The page size must be at least " + MIN_PAGE_SIZE + " bytes."); if (!MathUtils.isPowerOf2(pageSize)) { throw new IllegalArgumentException("The given page size is not a power of two.");
throw new IllegalArgumentException("The page size must be at least " + MIN_PAGE_SIZE + " bytes."); if (!MathUtils.isPowerOf2(pageSize)) { throw new IllegalArgumentException("The given page size is not a power of two.");
throw new IllegalArgumentException("The page size must be at least " + MIN_PAGE_SIZE + " bytes."); if (!MathUtils.isPowerOf2(pageSize)) { throw new IllegalArgumentException("The given page size is not a power of two.");
private void setNewBuckets(MemorySegment[] buckets, int numBuckets) { for (MemorySegment segment : buckets) { for (int i = 0; i < segmentSize; i += 16) { // Maybe we don't need init key, cause always verify address segment.putLong(i, 0); segment.putLong(i + 8, INVALID_ADDRESS); } } this.buckets = buckets; checkArgument(MathUtils.isPowerOf2(numBuckets)); this.numBuckets = numBuckets; this.numBucketsMask = numBuckets - 1; this.numKeys = 0; }
throw new IllegalArgumentException("The page size must be at least " + MIN_PAGE_SIZE + " bytes."); if (!MathUtils.isPowerOf2(pageSize)) { throw new IllegalArgumentException("The given page size is not a power of two.");
checkArgument(MathUtils.isPowerOf2(segmentSize));
HashTableBloomFilter(MemorySegment[] buffers, long numRecords) { checkArgument(buffers != null && buffers.length > 0); this.buffers = buffers; this.numBuffers = buffers.length; checkArgument(MathUtils.isPowerOf2(numBuffers)); this.numBuffersMask = numBuffers - 1; int bufferSize = buffers[0].size(); this.filter = new BloomFilter((int) (numRecords / numBuffers), buffers[0].size()); filter.setBitsLocation(buffers[0], 0); // We assume that a BloomFilter can contain up to 2.44 elements per byte. // fpp roughly equal 0.2 this.maxSize = (int) ((numBuffers * bufferSize) * 2.44); }
checkConfigParameter(MathUtils.isPowerOf2(pageSize), pageSize, TaskManagerOptions.MEMORY_SEGMENT_SIZE.key(), "Memory segment size must be a power of 2.");
checkConfigParameter(MathUtils.isPowerOf2(pageSize), pageSize, TaskManagerOptions.MEMORY_SEGMENT_SIZE.key(), "Memory segment size must be a power of 2.");
checkConfigParameter(MathUtils.isPowerOf2(pageSize), pageSize, TaskManagerOptions.MEMORY_SEGMENT_SIZE.key(), "Memory segment size must be a power of 2.");
checkConfigParameter(MathUtils.isPowerOf2(pageSize), pageSize, TaskManagerOptions.MEMORY_SEGMENT_SIZE.key(), "Memory segment size must be a power of 2.");