Linear Algebra

There is a small set of linear algebra routines. These are not intended to be a replacement for higher performance linear algebra libraries. In the case that O2scl was compiled with support for either the Armadillo or Eigen libraries, some O2scl template functions are overloaded with the respective Armadillo or Eigen versions.

The fallback O2scl linear algebra routines offer a more generic and flexible interface: they work for almost all vector and matrix types. For matrix types using operator(,), the BLAS and linear algebra routines routines are inside the o2scl_cblas and o2scl_linalg namespaces. For matrix types using operator[][], the BLAS and linear algebra routines are inside the o2scl_cblas_bracket and o2scl_linalg_bracket namespaces.

The linear algebra classes and functions include:

There is also a set of linear solvers for generic matrix and vector types which descend from o2scl_linalg::linear_solver. These classes provide GSL-like solvers, but are generalized so that they are compatible with vector and matrix types which allow access through operator[].

Specializations for Armadillo and Eigen

Armadillo and Eigen linear solvers are wrapped to have a consistent interface with the fallback O2scl linear solvers. See o2scl_linalg::linear_solver_arma, o2scl_linalg::linear_solver_eigen_houseQR, o2scl_linalg::linear_solver_eigen_colQR, o2scl_linalg::linear_solver_eigen_fullQR, o2scl_linalg::linear_solver_eigen_partLU, o2scl_linalg::linear_solver_eigen_fullLU, o2scl_linalg::linear_solver_eigen_LLT, and o2scl_linalg::linear_solver_eigen_LDLT.

Specializations for o2scl_linalg::QR_decomp_unpack() are given in the documentation for qr.h .

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).