dysii is a C++ library provides a collection of classes useful for machine learning applications.
Features are added to the library as needed, so that it does lack some completeness. What is included, however, is well documented and tested, and may be considered fairly sound for research purposes.
The library has been optimized for performance, while maintaining a modularity and generality that makes it suitable for a wide range of applications. Along with general code profiling and benchmarking, considerations have included:
- selection of efficient algorithms,
- use of efficient low-level matrix operations,
- conversion of calculations to matrix form where possible to facilitate this, and
- use of memory-efficient sparse matrices where appropriate.
Here are some key features of "dysii":
· The Kalman filter and smoother.
· The Rauch-Tung-Striebel (RTS) smoother.
· The unscented Kalman filter and smoother, and the unscented transformation.
· A particle filter and smoother, including a parallel implementation using MPI.
· A Runge-Kutta numerical solver for ordinary differential equations.
· Probability distributions and stochastic processes, such as the Gaussian distribution and Wiener process.
What's New in This Release: [ read full changelog ]
· This release adds kernel density estimators with distributed kd tree partitioning and dual-tree evaluations, an improved stochastic Runge-Kutta and new Euler-Maruyama integrator for stochastic differential equations, the kernel forward-backward and two-filter smoothers (from the author's PhD work), performance enhancements, and an installation guide.