This commit is contained in:
Gary Gregory 2024-06-23 11:52:59 -04:00
parent 83694e78b5
commit e0684042f1
1 changed files with 9 additions and 9 deletions

View File

@ -21,7 +21,7 @@
* <h2>Background</h2> * <h2>Background</h2>
* *
* <p>The Bloom filter is a probabilistic data structure that indicates where things are not. Conceptually it is a bit * <p>The Bloom filter is a probabilistic data structure that indicates where things are not. Conceptually it is a bit
* vector or BitMap. You create a Bloom filter by creating hashes and converting those to enabled bits in the map. Multiple * vector or bit map. You create a Bloom filter by creating hashes and converting those to enabled bits in the map. Multiple
* Bloom filters may be merged together into one Bloom filter. It is possible to test if a filter {@code B} has merged * Bloom filters may be merged together into one Bloom filter. It is possible to test if a filter {@code B} has merged
* into another filter {@code A} by verifying that {@code (A & B) == B}.</p> * into another filter {@code A} by verifying that {@code (A & B) == B}.</p>
* *
@ -33,7 +33,7 @@
* operation.</p> * operation.</p>
* *
* <p>Some Bloom filters (e.g. {@link CountingBloomFilter}) use counters rather than bits. In this case each counter * <p>Some Bloom filters (e.g. {@link CountingBloomFilter}) use counters rather than bits. In this case each counter
* is called a {@code cell}.</p> * is called a <em>cell</em>.</p>
* *
* <h3>BloomFilter</h3> * <h3>BloomFilter</h3>
* *
@ -44,19 +44,19 @@
* <h4>Nomenclature</h4> * <h4>Nomenclature</h4>
* *
* <ul> * <ul>
* <li>BitMap - In the {@code bloomfilter} package a BitMap is not a structure but a logical construct. It is conceptualized * <li><em>bit map</em> - In the {@code bloomfilter} package a <em>bit map</em> is not a structure but a logical construct. It is conceptualized
* as an ordered collection of {@code long} values each of which is interpreted as the enabled true/false state of 64 continuous indices. The mapping of * as an ordered collection of {@code long} values each of which is interpreted as the enabled true/false state of 64 continuous indices. The mapping of
* bits into the {@code long} values is described in the {@link BitMaps} Javadoc.</li> * bits into the {@code long} values is described in the {@link BitMaps} Javadoc.</li>
* *
* <li>Index - In the {@code bloomfilter} package an Index is a logical collection of {@code int}s specifying the enabled * <li><em>index</em> - In the {@code bloomfilter} package an Index is a logical collection of {@code int}s specifying the enabled
* bits in the bit map.</li> * bits in the bit map.</li>
* *
* <li>Cell - Some Bloom filters (e.g. {@link CountingBloomFilter}) use counters rather than bits. In the {@code bloomfilter} package * <li><em>cell</em> - Some Bloom filters (e.g. {@link CountingBloomFilter}) use counters rather than bits. In the {@code bloomfilter} package
* Cells are pairs of ints representing an index and a value. They are not {@code Pair} objects. </li> * Cells are pairs of ints representing an index and a value. They are not {@code Pair} objects. </li>
* *
* <li>Extractor - The Extractors are {@code FunctionalInterfaces} that are conceptually iterators on a bit map, an {@code Index}, or a * <li><em>extractor</em> - The extractors are {@link FunctionalInterface}s that are conceptually iterators on a bit map, an <em>index</em>, or a
* collection of {@code Cell}s, with an early termination switch. Extractors have * collection of <em>cells</em>, with an early termination switch. Extractors have
* names like {@link BitMapExtractor} or {@code IndexExtractor} and have a {@code processXs} methods that take a * names like {@link BitMapExtractor} or {@link IndexExtractor} and have a {@code processXs} methods that take a
* {@code Predicate<X>} argument (e.g. {@code processBitMaps(LongPredicate)} or {@code processIndicies(IntPredicate)}). * {@code Predicate<X>} argument (e.g. {@code processBitMaps(LongPredicate)} or {@code processIndicies(IntPredicate)}).
* That predicate is expected to process each of the Xs in turn and return {@code true} if the processing should continue * That predicate is expected to process each of the Xs in turn and return {@code true} if the processing should continue
* or {@code false} to stop it. </li> * or {@code false} to stop it. </li>