BlockMatrix is 3 dimensional matrix where the rows are grouped It is useful for when we want to multiply groups of vectors only between themselves.
This uses standard join if the matrices are comparable size and large, otherwise, if one is much smaller than the other, we use a hash join
Params: minCos: the minimum cosine similarity you care about accuracy for delta: the error on the approximated cosine (e.
Represents an Edge in a graph with some edge data
This algothm is just matrix multiplication done by hand to make it clearer when we do the sampling implementation
This is the future Matrix API.
Abstracts the approach taken to join the two matrices
This trait allows users to plug in join algoritms where they are needed to improve products and propagations.
This is the enrichment pattern on Mappable[T] for converting to Matrix types
Matrix class - represents an infinite (hopefully sparse) matrix.
Infinite column vector - only for intermediate computations
Infinite row vector - only for intermediate computations
Generating Poisson-distributed random variables according to Donald Knuth's algorith as shown on Wikipedia's Poisson Distribution page
Class representing a matrix product
A representation of a scalar value that can be used with Matrices
Serve as a repo for self-contained combinatorial functions with no dependencies such as combinations, aka n choose k, nCk permutations , aka nPk subset sum : numbers that add up to a finite sum weightedSum: For weights (a,b,c, .
TODO: Muliplication is the expensive stuff.
Allows us to sort matrices by approximate type