Linear Algebra

O2scl

Linear algebra contents

Linear algebra introduction

O₂scl contains a small set of linear algebra routines but is also is designed to be used with Armadillo and/or Eigen, both of which are high performance C++ linear algebra libraries. In the case that O₂scl was compiled with support for either the Armadillo or Eigen libraries, some O₂scl template functions are overloaded with the respective Armadillo or Eigen versions.

The fallback O₂scl linear algebra routines offer a more generic and flexible interface: they work for almost all vector and matrix types. For matrix types which use operator(,), the linear algebra routines routines are inside the o2scl_linalg namespaces. For matrix types using operator[][], the linear algebra routines are inside the o2scl_linalg_bracket namespace.

The linear algebra classes and functions include:

BLAS functions

The fallback O₂scl BLAS routines work for almost all vector and matrix types. They also support any floating point type, so long as the vector and matrix types are built on the same floating point type. Specializations for double-precision numbers are preceded by the letter d.

Similar to the linear algebra functions described above, BLAS functions for matrix types using operator(,) are inside the o2scl_cblas. For matrix types using operator[][], the BLAS functions are in the o2scl_cblas_bracket namespace.

Linear algebra enums

enum o2scl_cblas::o2cblas_order

Matrix order, either column-major or row-major.

Values:

enumerator o2cblas_RowMajor
enumerator o2cblas_ColMajor
enum o2scl_cblas::o2cblas_transpose

Transpose operations.

Values:

enumerator o2cblas_NoTrans
enumerator o2cblas_Trans
enumerator o2cblas_ConjTrans
enum o2scl_cblas::o2cblas_uplo

Upper- or lower-triangular.

Values:

enumerator o2cblas_Upper
enumerator o2cblas_Lower
enum o2scl_cblas::o2cblas_diag

Unit or generic diagonal.

Values:

enumerator o2cblas_NonUnit
enumerator o2cblas_Unit
enum o2scl_cblas::o2cblas_side

Left or right sided operation.

Values:

enumerator o2cblas_Left
enumerator o2cblas_Right