Linear Algebra

O2scl

Introduction

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 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[].

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