Gram Schmidt Orthonormalizatoin
Orthogonalization and QR decomposition of matrices in the Rust programming language and rust-ndarray.
This crate provides the following methods:
- Classical Gram Schmidt,
cgs, - Modified Gram Schmidt,
mgs, - Classical Gram Schmidt with Reorthogonalization,
cgs2.
Usage
// Import openblas_src or another blas source to have the linker find all symbols.
extern crate openblas_src;
use ;
use arr2;
Recent versions
0.6.0: Fixed the dimensions of the triangular matrixR:- the previous version was technically large enough to hold all values, but the matrix dimensions were still off.
- added an example of how to factorize the Lauchli matrix with the different algorithms.
0.5.0: Refactored the library and updated for edition 2018- the Gram Schmidt factorizations are now all implemented via the
GramSchmidttrait; - introduce some error handling;
- provide convenience functions
cgs,cgs2, andmgs.
- the Gram Schmidt factorizations are now all implemented via the
0.4.1: Fixed doc tests and expanded + simplified tests.0.4.0: Major rework of the library structure:- The algorithms are now configured via structs, the traits are dropped.
- Provide the structs
ClassicalGramSchmidt,ModifiedGramSchmidt, andReorthogonalizedGramSchmidt(known ascgs,mgs, andcgs2in the literature, respectively); cgsandcgs2are implemented usingblasroutines (major speedup!);- All routines are now able to handle column-major (Fortran-) and row-major (C-) order of the input matrices;
- Remove parallel code.
0.3.1: Update toblas 0.16and do not specify a default backend (so that the user can set it).0.3.0: Update tondarray 0.10,ndarray-parallel 0.50.2.1: Added a parallelized algorithm usingrayon0.2.0: Update tondarray 0.9