Cognitive Foundry 4.0.0 released
March 24th, 2017
This version contains many enhancements, new algorithms, adds a Graph package, and a new matrix package implementation. You can download it directly here or from Maven Central through dependency management tools like Ivy and Maven.
* General: * Added new custom matrix package implementation. MTJ-based implementation is still default and the two should interoperate, though sticking to one implementation is generally more efficient. * Added new Graph package containing several graph algorithms. * Common: * New custom matrix package implementation in gov.sandia.cognition.math.matrix.custom. Contains both sparse and dense implementations of Vector and Matrix. It is optimized for certain use-cases around sparse matrices and dynamically switching between sparse and dense. * Added default implementations to scalar function interfaces. Makes them easier to use as lambdas. * Improved interoperability between matrix/vector implementations through abstract class implementations. * Added method to get vector and matrix factories from those objects. * Added methods create uniform or Gaussian random vectors and matrices. * Added method to check for multiplication dimensions matching for matrices. * Added method to count non-zeros in a vector. * Added methods to get max and min value from a VectorSpace, which includes implementations on vectors. * Added primitive ArrayList implementations: DoubleArrayList, IntArrayList. * CollectionUtil: Added collection equality checkers. * Added equals and hashCode implementations to DefaultKeyValuePair. * Indexer and DefaultIndexer: Added a clear method. * KDTree: Added method to find within a given radius. * Learning: * Changed implementation of Gamma distribution sampling algorithm to greatly improve performance. Also improves performance of Beta and Dirichlet distribution sampling. * Added DBSCAN clustering implementation. * Added mini-batch k-means clustering implementation. * Improvements to K-means and partitional cluster performance. * Added normalized centroid cluster creator, within-cluster divergence, and random cluster initializer. * Added implementation of Burrows Delta algorithm. * Added out-of-bag stopping criteria for bagging and refactored it for IVoting. * Improved memory use of IVoting by removing redundant allocation. * Added several conjugate gradient matrix solvers and matrix-vector solvers, also with preconditioning. * Added multi-partite valance algorithm. * Added hard sigmoid and hard tanh activation functions. * Text: * Added valance spreading implementation.