1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307
|
version 1.1.6 (April 26th 2016)
- Mostly just better testing
version 1.1.5 (January 8th 2016)
- faster shift function (gssiyankai)
- ChunkIterator not iterating correctly #61
version 1.1.4 (December 17th 2015)
- Fixed issue 60: bitmap shift then or
version 1.1.3 (December 3rd 2015)
- Fixed issue 59: ChunkIterator not iterating correctly
version 1.1.2 (November 11th 2015)
- Fixed issue 58: ChunkIterator not iterating correctly?
version 1.1.1 (November 7th 2015)
- Fixed issue 57: "The function insertLiteralWord in EWAHCompressedBitmap32 should have its last two lines in an else block. Otherwise, we get an IndexOutOfBoundsException when the number of literal words are more than RunningLengthWord32.LARGEST_LITERAL_COUNT"
version 1.1.0 (October 28th 2015)
- Added "shift" function to shift a whole bitmap by b bits
version 1.0.8 (October 14th 2015)
- Improving the performance of intersections and differences in some cases.
version 1.0.7 (August 15th 2015)
- Fixing backward compatibility issue with versions prior to JDK 8.
version 1.0.6 (August 15th 2015)
- Fixed bug in reverse iterators.
version 1.0.5 (August 14th 2015)
- Fixed bug in reverse iterators.
version 1.0.4 (August 12th 2015)
- Using priority queues for OR and XOR aggregation.
version 1.0.3 (August 12th 2015)
- Simplified the multi-bitmap OR code, this should ensure more predictable performance
- Added functions to aggregate bitmaps provided by iterators.
version 1.0.2 (April 10th 2015)
- More complete BitSet API.
- Fixed issue #54 clear(int i) would clear ALL map
version 1.0.1 (March 23rd 2015)
- Fixed: Some bug about EWAHCompressedBitmap.reverseIntIterator() (#53)
version 1.0.0 (January 6th 2015)
- Both EWAHCompressedBitmap and BitSet can now support memory-file mapping. For best performance, we recommend the very latest OpenJDK.
version 0.9.2 (December 4th 2014)
- Fixed issue #47
version 0.9.1 (December 2nd 2014)
- Fixed issue #28: setting a capacity of 0 breaks the bitmap
version 0.9.0 (September 8th 2014)
- Fixed bug in setSizeInBits
- We can now set the bits in any order
version 0.8.12 (August 25th 2014)
- Faster "isEmpty" method
- Introducing reverse iterators
version 0.8.11 (August 15th 2014)
- Refactoring: unify addStreamOfEmptyWords and fastaddStreamOfEmptyWord
- Optimize setSizeInBits
version 0.8.10 (August 13th 2014)
- getFirstSetBit
- Capitalized some constants
- Implement composition using chunk iterators
version 0.8.9 (August 11th 2014)
- Fixed bug in clearIntIterator with bitmap of zeros
version 0.8.8 (August 11th 2014)
- added compose functions
version 0.8.7 (July 18th 2014)
- added isEmpty methods
- methods setSizeInBits were renamed setSizeInBitsWithinLastWord and made safer
- we document better the behavior of iterator to solve this issue: https://github.com/lemire/javaewah/issues/35
version 0.8.6 (April 29th 2014)
- fixed bug in clone methods (Jean-Marc Astesana, issue 30)
- fixed bug in not methods (Jean-Marc Astesana, issue 31)
version 0.8.5 (March 24th 2014)
- methods of type "ToContainer" will now clear the container before starting, for convenience
version 0.8.4 (March 17th 2014)
- we can now iterate over "clear" bits
version 0.8.3 (February 20th 2014)
- improved BitSet class
- renamed add to addWord (deprecation)
- renamed getPositions to toList (deprecation)
- clone no longer reports throwing an exception
version 0.8.2 (February 1st 2014)
- removed the benchmark code
- cleaned up the documentation
- code reformatting
- optimized the extraction of the set bits (Shen Liang)
- added threshold function for 32-bit EWAH
version 0.8.1 (January 7th 2014)
- Optimized threshold function
- created a nicer function call for the threshold function
- fixed documentation in README
version 0.8.0 (January 2nd 2014)
- Introducing package symmetric for symmetric Boolean functions, implemented
a fast threshold function.
version 0.7.9 (November 12th 2013)
- Spelled out the license in the source code to avoid any confusion
version 0.7.8 (October 1st 2013)
- Resolved an issue with addStream... methods.
version 0.7.7 (October 1st 2013)
- Resolved an issue with 32-bit EWAH caused by a partial update in version 0.7.6.
version 0.7.6 (September 30th 2013)
- Fixed a memory leak
version 0.7.5 (September 7th 2013)
- Fixed recently introduced "Get" method. Better unit testing.
version 0.7.4 (September 7th 2013)
- Added a convenience method that allows you to query for the value of a bit (based on code by @zhenjl)
version 0.7.3 (August 8th 2013)
- Fixed bug that could sometimes arise with the new iterator-based processing (O. Kaser)
version 0.7.2 (July 25th 2013)
- Clarifying the difference between setSizeInBits(int) and
setSizeInBits(int,boolean). Some code that worked previously
(but was potentially unsafe) might throw an exception when
using setSizeInBits(int). The fix is to call setSizeInBits(int,false)
which will be equivalent, but safer.
version 0.7.1 (July 16th 2013)
- From now on, we require java 6 or better: in practice this means
that we are starting to use annotations such as @Override.
- We revert to the pre-0.7 behavior by setting the "sizeInBits"
of the bitmaps according to the max of the input bitmaps (issue 27).
version 0.7.0 (July 16th 2013)
- Performance improvements when aggregating several bitmaps
- Introduction of an iterator-based approach
version 0.6.12 (May 21st 2013)
- Fixed bug with addStreamOfNegatedDirtyWords (Vicent Marti)
- Removed some unnecessary recursion
version 0.6.11 (March 29, 2013)
- fixed issue 26: Inconsistent iterators after using "setSizeInBits"
version 0.6.10 (March 14, 2013)
- replaced private methods by renamed public methods to enhance extensibility
- fixed bug in and-aggregation (Gabriel Magniez)
version 0.6.9 (March 8, 2013)
- Using maven-bundle-plugin (for JGIT, as per Alexander Riss's request)
- Minor: Fixed a typo in example.java
version 0.6.8 (February 21, 2013)
- Fixed an issue with hasNext in iterator (issue 22).
- Added corresponding unit test.
version 0.6.7 (February 15, 2013)
- Fixed an issue with setSizeInBits (issue 21).
- Added corresponding unit test.
version 0.6.6 (December 12, 2012)
- Fixed an off-by-one bug in setSizeInBits(final int size, final boolean defaultValue).
- Added corresponding unit test.
version 0.6.5 (November 26, 2012)
- Fixed a bug in IteratingBufferedRunningLengthWord.discharge
that might cause "and" to return spurious values in some cases (issue #19 reported by Gregory Ssi-Yan-Kai)
- added a unit test so that this sort of bug will be caught in the future
version 0.6.4 (November 16, 2012)
- Fixed a bug in IteratingBufferedRunningLengthWord.discardFirstWords
that might cause "and" to return the empty set when there is actually
a result (issue #18 reported by Bilal Tayara)
- added a unit test so that this sort of bug will be caught in the future
version 0.6.3 (October 31, 2012)
- Fixed a design issue in NonEmptyVirtualStorage32 and NonEmptyVirtualStorage
that might cause "equals" to give the wrong answer.
version 0.6.2 (October 19, 2012)
- Cleaned up "andNot" and "xor" so that the implementation is simpler
- Minor refactoring
version 0.6.1 (October 18, 2012)
- Optimized the logical and operation and rewrote the logical or operation
- Sometimes we used the term "literal" and sometimes "dirty". We now use only the term "literal".
version 0.6.0 (October 15, 2012)
- Moved packages from javaewah to com.googlecode.javaewah (request by Eclipse)
version 0.5.6 (October 5, 2012)
- Improve performance of the IntIterator implementation (Colby Ranger)
- Fixed copyright notice (Google Inc. via Colby Ranger)
version 0.5.5 (October 5, 2012)
- Fixed bug with new hashCode (from previous version), added unit test (Colby Ranger)
- better example.java
- new "bitmapOf" method (Colby Ranger)
version 0.5.4 (October 5, 2012)
- Changed the semantics of "equals" to be more consistent with BitSet from the Java API. (Colby Ranger)
version 0.5.3 (August 7, 2012)
- Correct a bug where the intersects method was returning false positives. The bug occurs when we attempt to add zero set bits to the stream of dirty words. Fixed / tested for 64 bit and 32 bit variants, also testing every flow through the and() method when called from intersects method.
- Re-enable the testOrCardinality for the 64 bit variant.
- Change behavior of NonEmptyException so we only throw the Exception if the number of dirty words is positive (and thus we are trying to set none).
- Fix documentation in 32 bit impl.
- remove unneeded returns in 64 bit implementation.
version 0.5.2 (July 9, 2012)
- Now being explicit about range of allowed set values, throws exceptions when out of range.
version 0.5.1 (May 28, 2012)
- Fixed minor performance regression.
version 0.5.0 (May 23, 2012)
- Added a 32-bit version of the compression scheme.
version 0.4.5 (May 21, 2012)
- Introduced the toArray method to retrieve set bits.
version 0.4.4 (May 21, 2012)
- Perf. boost when decoding bitmaps.
version 0.4.3 (April 9, 2012)
- fast aggregation through logical AND of many bitmaps using a new method
- fixed a rarely occurring bug in the set method due to faulty bitmap size extension
version 0.4.2 (April 5, 2012)
* Fixed a bug with intersects method
version 0.4.1 (Mar 20, 2012)
* Resolved "EWAHCompressedBitmap.iterator() does not follow Java's contract for the Iterator interface"
* some performance enhancements for multi or. array iteration is performing better than list iteration.
* documentation update
version 0.4.0 (Mar 5, 2012)
Several optimizations and (minor) API changes by David McIntosh. We expect
that the API is backward compatible, howerver serialization won't be
compatible with previous versions.
1) slight tweak to serialization to use the actualsizeinwords to set the buffer size when deserializing so it doesn't allocate more memory than it really needs.
2) added an orCardinality method that is a shortcut for bitmap1.or(bitmap2).cardinality() but doesn't need to create an intermediate bitmap.
3) added static or and orCardinality methods that can handle N number of bitmaps. For example, bitmap1.or(bitmap2).or(bitmap3) could be done as EWAHCompressedBitmap.or(bitmap1, bitmap2, bitmap3). It can be slower when N is small but avoids having to create N-2 intermediate bitmaps.
4) Long.bitCount is much faster when counting bits in the cardinality() method.
version 0.3.3 (Mar 2, 2012)
Correcting bug in intersect method (Robert Becho).
version 0.3.2 (Jan 16, 2012)
Better documentation and introduction
of a few methods (intersects).
version 0.3.1 (Jan 2, 2012)
The code is now built using maven.
version 0.3 (Jun 21, 2011)
The code was optimized slightly for speed.
You may a gain of about 20% on some operations,
and no gain on other operations.
version 0.2 (Mar 4, 2011)
In this release, there is a minor change to the
API: the getPositions method now returns an ArrayList
instead of a Vector.
version 0.1 : was never released publicly.
|