Class matrix_invert_cholesky_auto (o2scl_linalg)

O2scl : Class List

class matrix_invert_cholesky_auto : public o2scl_linalg::matrix_invert_det<o2scl::tensor2<>, double>

Perform an inversion of a symmetric positive definite matrix, choosing the fastest method available depending on the size of the matrix.

Public Functions

inline matrix_invert_cholesky_auto()
inline virtual int invert(size_t n, const o2scl::tensor2<> &A, o2scl::tensor2<> &A_inv)

Invert matrix A, returning the inverse in A_inv.

inline virtual int invert_det(size_t n, const o2scl::tensor2<> &A, o2scl::tensor2<> &A_inv, double &A_det)

Invert matrix A, returning the inverse in A_inv, and the determinant in A_det.

inline virtual double det(size_t n, const o2scl::tensor2<> &A)

Determine the determinant of the matrix A without inverting.

inline virtual int invert_inplace(size_t n, o2scl::tensor2<> &A)

Invert matrix A in place.

Public Members

size_t n_cuda_arma

The size over which to prefer Cuda over Armadillo.

size_t n_cuda_o2

The size over which to prefer Cuda over native inversion.

size_t n_arma_o2

The size over which to prefer Armadillo over native inversion.

int mode
int last_method

Last method used.

Public Static Attributes

static const size_t fast = 0

The inversion mode.

static const size_t force_o2 = 1
static const size_t force_arma = 2
static const size_t force_cuda = 3

Protected Attributes

matrix_invert_det_cholesky<o2scl::tensor2<>, double> o2

Native O2scl Cholesky decomposition (fastest only for tiny matrices)