Math Components
Data Types
- Matrix / Vector (LA) Generic with fixed size, adapted from TNT, operators are no class-members but separated
Algorithms
In the MathAlgo directory there are several more generic mathematical algorithms like interpolation, matrix/equation system solver or robust estimation classes.
- BIAS::SVD (Lapack) The singular value decomposition is a numerically robust way to handle noisy linear/least squares problems or to determine the rank of a matrix or an equation system. Since for numerical reasons there is no general Matrix.Invert, you should use SVD.Invert for large matrices.
- Levenberg-Marquardt Minimization (wrapper to minpack, see Minpack.hh ) This is an implementation of the popular iterative minimization algorithm, which can basically be imagined as an extension of the Newton method for finding the zeros. There are several interfaces which all require you to provide an error function which is called by the main routine. This function must provide at least as many error measures as the number of variables you want to optimize.
- BIAS::RANSAC (RAndom SAmple Consensus) This is an abstract implementation of the robust solver algorithm, which iteratively uses a non-robust base method (e.g. least squares or linear solution) to compute hypotheses on large data sets containing outliers. The best hypothesis in a probability-theoretic manner is chosen as the most probable solution and the data set is partitioned into inliers ans outliers. When deriving a specialized class from RANSAC, you have to implement the functions to compute a hypothesis from the samples, to evaluate the hypothesis and optionally to refine your solution based on the inliers to it.
- BIAS::PolynomialSolve finds the (complex) zeros of a univariate polynomial
- BIAS::Interpolation (Daniel ?)