For use from Java/minimizing code bloat in scala
An IndexedSeq that automatically switches representation between dense and sparse depending on sparsity Should be an efficient representation for all sizes, and it should not be necessary to special case immutable algebras based on the sparsity of the vectors.
This is for the case where your Ring[T] is a Rng (i.
Represents functions of the kind: f(x) = slope * x + intercept
This feeds the value in on the LEFT!!! This may seem counter intuitive, but with this approach, a stream/iterator which is summed will have the same output as applying the function one at a time in order to the input.
Bloom Filter data structure
Bloom Filter with 1 value.
Empty bloom filter.
A super lightweight (hopefully) version of BitSet
Bloom Filter - a probabilistic data structure to test presence of an element.
Represents something that consumes I and may emit O.
This never emits on put, you must call flush designed to be use in the stackable pattern with ArrayBufferedOperation
The actual Count-Min sketch data structure.
The 2-dimensional table of counters used in the Count-Min sketch.
The Count-Min sketch uses pairwise independent hash functions drawn from a universal hashing family of the form
The general Count-Min sketch structure, used for holding any number of elements.
Used for holding a single element, to avoid repeatedly adding elements from sparse counts tables.
Convenience class for holding constant parameters of a Count-Min sketch.
Used for initialization.
An Aggregator for the CountMinSketch.
Monoid for adding Count-Min sketches.
These are the individual instances which the Monoid knows how to add
Either semigroup is useful for error handling.
Field: Ring + division.
Function1 monoid.
You can think of this as a Sparse vector ring
Group: this is a monoid that also has subtraction (and negation): So, you can do (a-b), or -a (which is equal to 0 - a).
Containers for holding heavy hitter items and their associated counts.
Note that this works similar to Semigroup[Map[Int,T]] not like Semigroup[List[T]] This does element-wise operations, like standard vector math, not concatenation, like Semigroup[String] or Semigroup[List[T]]
Represents a single interval on a T with an Ordering
Since Lists are mutable, this always makes a full copy.
Since maps are mutable, this always makes a full copy.
List concatenation monoid.
You can think of this as a Sparse vector group
MinHasher as a Monoid operates on this class to avoid the too generic Array[Byte].
Instances of MinHasher can create, combine, and compare fixed-sized signatures of arbitrarily sized sets.
A class to calculate the first five central moments over a sequence of Doubles.
Simple implementation of a Monad type-class
This enrichment allows us to use our Monad instances in for expressions: if (import Monad.
Monoid (take a deep breath, and relax about the weird name): This is a semigroup that has an additive identity (called zero), such that a+0=a, 0+a=a, for every a
Some(5) - Some(3) == Some(2) Some(5) - Some(5) == None negate Some(5) == Some(-5) Note: Some(0) and None are equivalent under this Group
Some(5) + Some(3) == Some(8) Some(5) + None == Some(5)
This is a typeclass to represent things which are countable down.
Combine 10 groups into a product group
Combine 10 monoids into a product monoid
Combine 10 rings into a product ring
Combine 10 semigroups into a product semigroup
Combine 11 groups into a product group
Combine 11 monoids into a product monoid
Combine 11 rings into a product ring
Combine 11 semigroups into a product semigroup
Combine 12 groups into a product group
Combine 12 monoids into a product monoid
Combine 12 rings into a product ring
Combine 12 semigroups into a product semigroup
Combine 13 groups into a product group
Combine 13 monoids into a product monoid
Combine 13 rings into a product ring
Combine 13 semigroups into a product semigroup
Combine 14 groups into a product group
Combine 14 monoids into a product monoid
Combine 14 rings into a product ring
Combine 14 semigroups into a product semigroup
Combine 15 groups into a product group
Combine 15 monoids into a product monoid
Combine 15 rings into a product ring
Combine 15 semigroups into a product semigroup
Combine 16 groups into a product group
Combine 16 monoids into a product monoid
Combine 16 rings into a product ring
Combine 16 semigroups into a product semigroup
Combine 17 groups into a product group
Combine 17 monoids into a product monoid
Combine 17 rings into a product ring
Combine 17 semigroups into a product semigroup
Combine 18 groups into a product group
Combine 18 monoids into a product monoid
Combine 18 rings into a product ring
Combine 18 semigroups into a product semigroup
Combine 19 groups into a product group
Combine 19 monoids into a product monoid
Combine 19 rings into a product ring
Combine 19 semigroups into a product semigroup
Combine 20 groups into a product group
Combine 20 monoids into a product monoid
Combine 20 rings into a product ring
Combine 20 semigroups into a product semigroup
Combine 21 groups into a product group
Combine 21 monoids into a product monoid
Combine 21 rings into a product ring
Combine 21 semigroups into a product semigroup
Combine 22 groups into a product group
Combine 22 monoids into a product monoid
Combine 22 rings into a product ring
Combine 22 semigroups into a product semigroup
Combine 2 groups into a product group
Combine 2 monoids into a product monoid
Combine 2 rings into a product ring
Combine 2 semigroups into a product semigroup
Combine 3 groups into a product group
Combine 3 monoids into a product monoid
Combine 3 rings into a product ring
Combine 3 semigroups into a product semigroup
Combine 4 groups into a product group
Combine 4 monoids into a product monoid
Combine 4 rings into a product ring
Combine 4 semigroups into a product semigroup
Combine 5 groups into a product group
Combine 5 monoids into a product monoid
Combine 5 rings into a product ring
Combine 5 semigroups into a product semigroup
Combine 6 groups into a product group
Combine 6 monoids into a product monoid
Combine 6 rings into a product ring
Combine 6 semigroups into a product semigroup
Combine 7 groups into a product group
Combine 7 monoids into a product monoid
Combine 7 rings into a product ring
Combine 7 semigroups into a product semigroup
Combine 8 groups into a product group
Combine 8 monoids into a product monoid
Combine 8 rings into a product ring
Combine 8 semigroups into a product semigroup
Combine 9 groups into a product group
Combine 9 monoids into a product monoid
Combine 9 rings into a product ring
Combine 9 semigroups into a product semigroup
Used to represent cases where we need to periodically reset a + b = a + b |a + b = |(a + b) a + |b = |b |a + |b = |b
Ring: Group + multiplication (see: http://en.
Basically a specific implementation of the RightFoldedMonoid gradient is the gradient of the function to be minimized To use this, you need to insert an initial weight SGDWeights before you start adding SGDPos objects.
Semigroup: This is a class with a plus method that is associative: a+(b+c) = (a+b)+c
This is a combinator on semigroups, after you do the plus, you transform B with a fold function This will not be valid for all fold functions.
Set union monoid.
An Aggregator for the SketchMap.
Hashes an arbitrary key type to one that the Sketch Map can use.
Responsible for creating instances of SketchMap.
Convenience class for holding constant parameters of a Sketch Map.
Data structure used in the Space-Saving Algorithm to find the approximate most frequent and top-k elements.
A Stateful summer is something that is potentially more efficient (a buffer, a cache, etc.
This is a monoid to represent things which increase.
Sum the entire iterator one item at a time.
A Stateful Summer on Map[K,V] that keeps a cache of recent keys
A top-k monoid that is much faster than SortedListTake equivalent to: (left ++ right).
Combine 10 groups into a product group
Combine 10 monoids into a product monoid
Combine 10 rings into a product ring
Combine 10 semigroups into a product semigroup
Combine 11 groups into a product group
Combine 11 monoids into a product monoid
Combine 11 rings into a product ring
Combine 11 semigroups into a product semigroup
Combine 12 groups into a product group
Combine 12 monoids into a product monoid
Combine 12 rings into a product ring
Combine 12 semigroups into a product semigroup
Combine 13 groups into a product group
Combine 13 monoids into a product monoid
Combine 13 rings into a product ring
Combine 13 semigroups into a product semigroup
Combine 14 groups into a product group
Combine 14 monoids into a product monoid
Combine 14 rings into a product ring
Combine 14 semigroups into a product semigroup
Combine 15 groups into a product group
Combine 15 monoids into a product monoid
Combine 15 rings into a product ring
Combine 15 semigroups into a product semigroup
Combine 16 groups into a product group
Combine 16 monoids into a product monoid
Combine 16 rings into a product ring
Combine 16 semigroups into a product semigroup
Combine 17 groups into a product group
Combine 17 monoids into a product monoid
Combine 17 rings into a product ring
Combine 17 semigroups into a product semigroup
Combine 18 groups into a product group
Combine 18 monoids into a product monoid
Combine 18 rings into a product ring
Combine 18 semigroups into a product semigroup
Combine 19 groups into a product group
Combine 19 monoids into a product monoid
Combine 19 rings into a product ring
Combine 19 semigroups into a product semigroup
Combine 20 groups into a product group
Combine 20 monoids into a product monoid
Combine 20 rings into a product ring
Combine 20 semigroups into a product semigroup
Combine 21 groups into a product group
Combine 21 monoids into a product monoid
Combine 21 rings into a product ring
Combine 21 semigroups into a product semigroup
Combine 22 groups into a product group
Combine 22 monoids into a product monoid
Combine 22 rings into a product ring
Combine 22 semigroups into a product semigroup
Combine 2 groups into a product group
Combine 2 monoids into a product monoid
Combine 2 rings into a product ring
Combine 2 semigroups into a product semigroup
Combine 3 groups into a product group
Combine 3 monoids into a product monoid
Combine 3 rings into a product ring
Combine 3 semigroups into a product semigroup
Combine 4 groups into a product group
Combine 4 monoids into a product monoid
Combine 4 rings into a product ring
Combine 4 semigroups into a product semigroup
Combine 5 groups into a product group
Combine 5 monoids into a product monoid
Combine 5 rings into a product ring
Combine 5 semigroups into a product semigroup
Combine 6 groups into a product group
Combine 6 monoids into a product monoid
Combine 6 rings into a product ring
Combine 6 semigroups into a product semigroup
Combine 7 groups into a product group
Combine 7 monoids into a product monoid
Combine 7 rings into a product ring
Combine 7 semigroups into a product semigroup
Combine 8 groups into a product group
Combine 8 monoids into a product monoid
Combine 8 rings into a product ring
Combine 8 semigroups into a product semigroup
Combine 9 groups into a product group
Combine 9 monoids into a product monoid
Combine 9 rings into a product ring
Combine 9 semigroups into a product semigroup
A sorted-take List monoid (not the default, you can set: implicit val sortmon = new SortedTakeListMonoid[T](10) to use this instead of the standard list This returns the k least values: equivalent to: (left ++ right).
A convenience class that composes AdaptiveVector[AdaptiveVector[V]] with some useful functions.
Some functions to create or convert AdaptiveVectors
Aggregators compose well.
Boolean AND monoid.
Represents a container class together with time.
Implementation of the HyperLogLog approximate counting as a Monoid
A Metric[V] m is a function (V, V) => Double that satisfies the following properties:
A monoid to perform moment calculations.
Follows the type-class pattern for the Monad trait
Boolean OR monoid.
A QTree provides an approximate Map[Double,A:Monoid] suitable for range queries, quantile queries, and combinations of these (for example, if you use a numeric A, you can derive the inter-quartile mean).
This is an associative, but not commutative monoid Also, you must start on the right, with a value, and all subsequent RightFolded must be RightFoldedToFold objects or zero
This monoid takes a list of values of type In or Out, and folds to the right all the Ins into Out values, leaving you with a list of Out values, then finally, maps those outs onto Acc, where there is a group, and adds all the Accs up.
Data structure representing an approximation of Map[K, V], where V has an implicit ordering and monoid.
Creates an Iterator that emits partial sums of an input Iterator[V].
This class represents a vector space.