- Add
SetDiff
data structure toalgebird-core
: twitter#555 - Add
Ring[BigDecimal]
, modeled afterRing[BigInt]
: twitter#553 - "Exponential Histogram" sliding window counter implementation added to
algebird-core
asExpHist
: twitter#568 - improve HLLSeries performance: twitter#575
- Add a microsite at https://twitter.github.io/algebird via the
sbt-microsites
plugin, along with docs for all typeclasses and data structures: twitter#576 - Adds lots of scalacheck
Arbitrary
andGen
instances toalgebird-test
, undercom.twitter.algebird.scalacheck.{ gen, arbitrary }
: twitter#579 - Add
Monoid[Max[Vector[T]]]
,Monoid[Max[Stream[T]]]
: twitter#579 - Add
FirstAggregator
andLastAggregator
, and docs and API / perf improvements forFirst
,Last
,Min
,Max
: twitter#579 - Add
LawsEquiv
versions of all laws: twitter#584 - Deprecates broken group/ring for
Future
/Try
: twitter#584 - Add
metricsLaws[T]
toBaseProperties
inalgebird-test
: twitter#584 - Modify generated
Tuple2Monoid
, etc to extendTupleNSemigroup
, giving subclasses access to efficientsumOption
: twitter#585 - optimize
Generated{Abstract,Product}Algebra.sumOption
with benchmarking twitter#591 - Add an efficient
sumOption
,+
,-
, methods and docs toAveragedValue
: twitter#589
- optimize
CMS.create(Seq[K])
: twitter#537 - Update to sbt 0.13.11: twitter#540
- Add
Semigroup.maybePlus
: twitter#544 - Improve the build and test times and add Codecov.io: twitter#541
- Add
Identity
class andMonad
instance: twitter#511 - Using
dropRight
instead oftail
for shorteningBytesSpec
array: twitter#510 - Fix flaky
MinHasherSpec
test: twitter#514 - fix input type of
toRichTraversable
: twitter#518 - build in scala 2.11 by default: twitter#520
- make
SSOne
/SSMany
constructors private and add apply method with count: twitter#519 - Fix
BytesSpec
to not reference head on an empty list twitter#525 - Add an
Aggregator.randomSample
aggregator: twitter#529 - Add
sortedTakeBy
andsortedReverseTakeBy
toAggregator.scala
: twitter#527 - Add
Batched[A]
type for efficient lazy addition: twitter#530 - Add a default
k
value forAggregator.approximatePercentile
: twitter#531
- Implement an appendMonoid Aggregator factory which yields aggregators…: twitter#501
- Dealing with probabilistic tests: twitter#478
- Add Applicative.sequenceGen: twitter#498
- Create a sparse Count-Min-Sketch.: twitter#464
- fix name and visibility of negativePowersOfTwo: twitter#492
- Speed up HLL presentation by 100x: twitter#491
- Test Semigroup#sumOption using Iterator instead of List: twitter#490
- Fix tests that were not actually running: twitter#485
- add immutable version of sorted(Reverse)Take: twitter#484
- Cuber/roller macros: twitter#483
- Add sanity requirement for Approximate: twitter#481
- Ioconnell/make develop version have snapshot suffix: twitter#482
- Upgrade scalacheck and scalatest: twitter#480
- Adding scoped top-N CMS monoid: twitter#471
- Fix Qtree quantileBounds off-by-one error: twitter#472
- Move benchmarks to JMH: twitter#473
- Ianoc/q tree benchmark more coverage: twitter#474
- Optimize QTree a bunch: twitter#475
- Disable coveralls, shows up as builds pending that are long finished: twitter#476
- Move CMSHasherByteArray from scalding: twitter#467
- Upgrade sbt launcher script (sbt-extras): twitter#469
- Create case class macros for algebraic structures: twitter#466
- Refactor MapAggregator: twitter#462
- Algebird support for spark: twitter#397
- Add MapAggregator from 1 (key, aggregator) pair: twitter#452
- Remove unnecessary use of scala.math: twitter#455
- Don't call deprecated HyperLogLog methods in tests: twitter#456
- Update product_generators.rb: twitter#457
- Pzheng/gaussian euclidean: twitter#448
- QTree quantileBounds assert percentile <= 1.0 #447
- Make HLL easier to use, add Hash128 typeclass #440
- add ! to ApproximateBoolean #442
- add QTreeAggregator and add approximatePercentileBounds to Aggregator #443
- Make level configurable in QTreeAggregators #444
- HyperLogLogSeries #295
- CMS: add contramap to convert CMS[K] to CMS[L], add support for String and Bytes, remove Ordering context bound for K #399
- EventuallyAggregator and variants #407
- Add MultiAggregator.apply #408
- Return a MonoidAggregator from MultiAggregator when possible #409
- Add SummingWithHitsCache class to also track key hits. #410
- Add MapAggregator to compose tuples of (key, agg) pairs #411
- fix README.md. 2.9.3 no longer published #412
- Add Coveralls Badge to the README #413
- Add some combinators on MonoidAggregator #417
- Added function to safely downsize a HyperLogLog sketch #418
- AdaptiveCache #419
- fix property tests #421
- Make Preparer extend Serializable #422
- Make MutableBackedMap Serializable. #424
- A couple of performance optimizations: HyperLogLog and BloomFilter #426
- Adds a presenting benchmark and optimizes it #427
- Fixed broken links in README #428
- Speed up QTree #433
- Moments returns NaN when count is too low for higher order statistics #434
- Add HLL method to do error-based Aggregator #438
- Bump bijection to 0.8.0 #441
- Replace mapValues with one single map to avoid serialization in frameworks like Spark. #344
- Add Fold trait for composable incremental processing (for develop) #350
- Add a GC friendly LRU cache to improve SummingCache #341
- BloomFilter should warn or raise on unrealistic input. #355
- GH-345: Parameterize CMS to CMS[K] and decouple counting/querying from heavy hitters #354
- Add Array Monoid & Group. #356
- Improvements to Aggregator #359
- Improve require setup for depth/delta and associated test spec #361
- Bump from 2.11.2 to 2.11.4 #365
- Move to sbt 0.13.5 #364
- Correct wrong comment in estimation function #372
- Add increments to all Summers #373
- removed duplicate semigroup #375
- GH-381: Fix serialization errors when using new CMS implementation in Storm #382
- Fix snoble's name #384
- Lift methods for Aggregator and MonoidAggregator #380
- applyCumulative method on Aggregator #386
- Add Aggregator.zip #389
- GH-388: Fix CMS test issue caused by roundtripping depth->delta->depth #395
- GH-392: Improve hashing of BigInt #394
- add averageFrom to DecayedValue #391
- Freshen up Applicative instances a bit #387
- less noise on DecayedValue tests #405
- Preparer #400
- Upgrade bijection to 0.7.2 #406
- Removes deprecated monoid: twitter#342
- Use some value classes: twitter#340
- WIP: Algebird 210 211: twitter#337
- Use Builder in Seq/List Monoids: twitter#338
- Add a commment to close 334: twitter#339
- Make trait public that should never have been private: twitter#335
- Fix some issues with Successible/Predessible: twitter#332
- Add Applicative and Functor as superclasses of Monad: twitter#330
- Updated Maven section to updated version 0.7.0: twitter#329
- simplification for spacesaver. before buckets were kept in an option str...: twitter#308
- Dynamic Summer, may use heuristics to decide not to keep a tuple in a buffer for aggregation.: twitter#314
- Was a missing call to the update if we had flushed. Now we just do it as...: twitter#324
- Bump to 2.10.4 in travis: twitter#323
- Feature/auto formatter ran: twitter#321
- Little commit fixing up some spacing per our norms:: twitter#319
- provider methods for java: twitter#317
- Serializable adaptive matrix: twitter#318
- Clean up comments: twitter#315
- make distribution immutable now that it contains mutable counters: twitter#313
- a monoid that keeps track of the monoid usage: twitter#311
- make constructors for SpaceSaver subclasses public so that deserializers..: twitter#289
- Restoring optimized SketchMapMonoid#sumOption: twitter#293
- Newer caliper hll benchmark: twitter#297
- hll optimization: twitter#299
- Optimize the storage backend used in sketch map: twitter#301
- migrate async summers from Summingbird: twitter#296
- add sumOption to EventuallySemiGroup: twitter#306
- Heavyhitters no longer attempts lazy storage in SketchMap: twitter#305
- Async Maps performance improvements: twitter#302
- Make the AsyncListSum be immutable again: twitter#309
- Remove handling that doesn't seem needed/wanted for longs: twitter#287
- Add average() for DecayedValue: twitter#286
- SketchMapParams can support being constructed with both width/depth and eps/delta: twitter#285
- undo the undo of the interval fixes: twitter#283
- Fix priority queue bug found by scalacheck: twitter#280
- Adds type parameters to Intersection for more precision: twitter#279
- Make resolver consistent with scalding: twitter#276
- remove Math use in test: twitter#275
- Remove extends function from algebird: twitter#274
- remove unnecessary implicit requirement: twitter#272
- Fix SketchMapMonoid zero: twitter#269
- Make SketchMapMonoid params public: twitter#265
- Add Predecessible and methods to Interval: twitter#262
- Implement StreamSummary data structure for finding frequent/top-k items: twitter#259
- Make SketchMap1 the only SketchMap implementation: twitter#256
- Use semigroup in StateWithError: twitter#255
- Don't iterate through everything in unit monoid: twitter#253
- Factor as much logic as possible into SketchmapMonoid1: twitter#251
- Moving Trampoline flatMap implementation into trait: twitter#249
- Integrate Caliper: twitter#248
- Adds append method to MonoidAggregator and RingAggregator: twitter#246
- Make the map monoid more performant for mutable maps: twitter#245
- Make BFHash take on non negative values only: twitter#243
- Fixed DecayedValue: twitter#238
- Updated scaladoc to 0.3.0: twitter#237
- Add Incrementable and tests: twitter#234
- Updates sbt runner: twitter#232
- Upgrade sbt, specs, add a build.properties, and bump travis's target: twitter#231
- Make a field transient in BloomFilter serialization: twitter#209
- Add the TunnelMonoid to Util (like async function monoid): twitter#213
- Make DecayedValueMonoid a class: twitter#223
- SketchMap performance improvements: twitter#227
- Add the Option group: twitter#230
- Add Successible Typeclass: twitter#234
- sumOption support on generated tuple Semigroups: twitter#242
- Optimize lots of the Monoids/Semigroups when summing many items: see Semigroup.sumOption twitter#206
- Add many Aggregators for more convenient aggregation: twitter#194
- Aggregators compose: twitter#188
- Added scala.collection.Map (not just immutable.Map) algebras: twitter#199
- Added Boolean monoids (Or and And): twitter#198
- Adds algebird-bijection module: twitter#181
- Build cleanups: twitter#180
- MapAlgebra.sparseEquiv: twitter#182
- Remove isNonZero from Semigroup, add to Monoid: twitter#183
- add MapAlgebra.mergeLookup: twitter#185
- Adds QTree monoid for range queries
- Adds hashing trick monoid for dimensionality reduction
- Fix compiler flag issue
- Build
algebird
against scala 2.9.2 and 2.10.0 algebird-util
with Future and Try algebras.
- Break out
algebird-core
andalgebird-test
into separate jars
- SummingQueue works with capacity of 0, just passes through
- adds compressed bitset (RichCBitSet)
- Add
BFSparse
- Heavy hitters in countminsketch
- Monad typeclass
- Adds publishing pom.
- Add SummingQueue
- rename Cassandra's MurmurHash.
- Make Metric serializable
- JMap uses Semigroup
- Count-min-sketch (with Monoid)
- Added Bloom Filter (with Monoid)
- HyperLogLog now uses Murmur128 (should be faster)
- Max/Min/First/Last Monoids
- VectorSpace trait (implementations for Maps/Vector)
- DecayedVector for efficient exponential moving average on vectors
- Metric trait
- Approximate[Numeric]/Boolean to track error in approximations
- Adds Semigroup and implicits for usual primitives and collections
- Fixes EitherMonoid to have a zero
- Add MinPlus algebra for shortest path calculations
- Lots of code cleanups
- Improves speed of HyperLogLog.
- Refactoring of RightFolded Monoid
- Added Moments monoid for first 5 moments
- Improved HyperLogLogMonoid (less memory usage, added intersections)
- Moved code over from Scalding.