|
template<typename value_t > |
void | eval_diag (const TMatrix< value_t > *A, TVector< value_t > *v, const matop_t op, const eval_option_t &options) |
| evaluate D·x=y with (block) diagonal D More...
|
|
template<typename value_t > |
void | eval (const TMatrix< value_t > *A, TVector< value_t > *v, const matop_t op, const eval_option_t &options) |
| evaluate L·U·x = y with lower triangular L and upper triangular U More...
|
|
template<typename value_t > |
void | eval_lower (const TMatrix< value_t > *A, TVector< value_t > *v, const matop_t op, const eval_option_t &options) |
| evaluate A·x = y with lower triangular A More...
|
|
template<typename value_t > |
void | eval_upper (const TMatrix< value_t > *A, TVector< value_t > *v, const matop_t op, const eval_option_t &options) |
| evaluate A·x = y with upper triangular A More...
|
|
template<typename value_t > |
void | invert (TMatrix< value_t > *A, const TTruncAcc &acc, const inv_options_t &opts=inv_options_t()) |
| compute \( A^{-1} \) More...
|
|
template<typename value_t > |
DAG::Graph | gen_dag_invert (TMatrix< value_t > *A, const inv_options_t &opts=inv_options_t()) |
| generate DAG for computing \( A^{-1} \)
|
|
template<typename value_t > |
void | invert_ll (TMatrix< value_t > *A, const TTruncAcc &acc, const inv_options_t &opts=inv_options_t()) |
| compute \( A^{-1} \) More...
|
|
template<typename value_t > |
DAG::Graph | gen_dag_invert_ll (TMatrix< value_t > *A, const inv_options_t &opts=inv_options_t()) |
| generate DAG for computing \( A^{-1} \) for lower-left part of \(A\)
|
|
template<typename value_t > |
void | invert_ll (TMatrix< value_t > *L, TMatrix< value_t > *X, const TTruncAcc &acc, const inv_options_t &opts=inv_options_t()) |
| compute \( X = L^{-1} \) More...
|
|
template<typename value_t > |
void | invert_ur (TMatrix< value_t > *A, const TTruncAcc &acc, const inv_options_t &opts=inv_options_t()) |
| compute \( A^{-1} \) More...
|
|
template<typename value_t > |
DAG::Graph | gen_dag_invert_ur (TMatrix< value_t > *A, const inv_options_t &opts=inv_options_t()) |
| generate DAG for computing \( A^{-1} \) for upper-right part of \(A\)
|
|
template<typename value_t > |
void | invert_diag (TMatrix< value_t > *A, const TTruncAcc &acc, const inv_options_t &opts=inv_options_t()) |
| compute \( A^{-1} \) More...
|
|
template<typename value_t > |
std::unique_ptr< TVector< value_t > > | inverse_diag (TMatrix< value_t > *A, const TTruncAcc &acc, const inv_options_t &opts=inv_options_t()) |
| Compute diagonal of \( A^{-1} \). More...
|
|
template<typename value_t > |
void | gauss_elim (TMatrix< value_t > *A, TMatrix< value_t > *C, const TTruncAcc &acc, const inv_options_t &opts=inv_options_t()) |
| Compute \(A^{-1} \) via Gaussian elimination. More...
|
|
template<typename value_t > |
void | gauss_elim (TMatrix< value_t > *A, const TTruncAcc &acc, const inv_options_t &opts=inv_options_t()) |
| Compute \(A^{-1} \) via Gaussian elimination. More...
|
|
template<typename value_t > |
void | invert (TDenseMatrix< value_t > *A) |
| compute \( A^{-1} \) More...
|
|
template<typename value_t > |
std::unique_ptr< TDenseMatrix< value_t > > | inverse (const TDenseMatrix< value_t > *A) |
| compute and return \( A^{-1} \) More...
|
|
template<typename value_t > |
void | multiply_diag (const value_t alpha, const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_D, const TMatrix< value_t > *D, const matop_t op_B, const TMatrix< value_t > *B, const value_t beta, TMatrix< value_t > *C, const TTruncAcc &acc, TProgressBar *progress=NULL) |
| compute C ≔ β·C + α·op(A)·op(D)·op(B) with (block) diagonal matrix D
|
|
template<typename value_t > |
void | multiply_diag_accu (const value_t alpha, const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_D, const TMatrix< value_t > *D, const matop_t op_B, const TMatrix< value_t > *B, TMatrix< value_t > *C, const TTruncAcc &acc) |
| compute C ≔ C + α·op(A)·op(D)·op(B) with (block) diagonal matrix D using accumulators
|
|
template<typename value_t > |
std::unique_ptr< TMatrix< value_t > > | multiply_diag (const value_t alpha, const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_D, const TMatrix< value_t > *D, const matop_t op_B, const TMatrix< value_t > *B) |
| compute C ≔ α·op(A)·op(D)·op(B) with (block) diagonal matrix D More...
|
|
template<typename value_t > |
size_t | multiply_diag_steps (const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_D, const TMatrix< value_t > *D, const matop_t op_B, const TMatrix< value_t > *B, const TMatrix< value_t > *C) |
| return number of steps for computing C ≔ C + op(A)·op(D)·op(B)
|
|
template<typename value_t > |
void | mul_diag_left (const TScalarVector< value_t > &v, TMatrix< value_t > *A) |
| compute B = diag(v)·A and overwrite A
|
|
template<typename value_t > |
void | mul_diag_right (TMatrix< value_t > *A, const TScalarVector< value_t > &v) |
| compute B = A·diag(v) and overwrite A
|
|
|
Functions related to matrix factorisation, e.g. LU or Cholesky factorisation.
|
template<typename value_t > |
std::unique_ptr< TFacMatrix< value_t > > | factorise (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
| compute factorisation of A More...
|
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | factorise_inv (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
| compute factorisation of A and return inverse operator More...
|
|
template<typename value_t > |
void | lu (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
| compute LU factorisation
|
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | lu_inv (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
| compute LU factorisation and return inverse operator
|
|
template<typename value_t > |
void | ldu (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
| compute LDU factorisation
|
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | ldu_inv (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
| compute LDU factorisation and return inverse operator
|
|
template<typename value_t > |
void | ll (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
| compute Cholesky factorisation
|
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | ll_inv (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
| compute Cholesky factorisation and return inverse operator
|
|
template<typename value_t > |
void | ldl (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
| compute LDL^H factorisation
|
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | ldl_inv (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
| compute LDL factorisation and return inverse operator
|
|
template<typename value_t > |
void | test_convert_dense (TBlockMatrix< value_t > *B, const uint i, const uint j) |
| test, if given matrix B_ij is lowrank with too large rank and convert to dense
|
|
template<typename value_t > |
std::unique_ptr< TFacMatrix< value_t > > | factorise (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | factorise_inv (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
void | lu (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | lu_inv (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
void | ldu (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | ldu_inv (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
void | ll (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
void | chol (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
void | chol (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | ll_inv (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | chol_inv (TMatrix< value_t > *A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | chol_inv (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
void | ldl (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
template<typename value_t > |
std::unique_ptr< TFacInvMatrix< value_t > > | ldl_inv (TMatrix< value_t > &A, const TTruncAcc &acc, const fac_options_t &options=fac_options_t()) |
|
|
Functions for matrix multiplication.
|
template<typename value_t > |
void | multiply (const value_t alpha, const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_B, const TMatrix< value_t > *B, const value_t beta, TMatrix< value_t > *C, const TTruncAcc &acc, TProgressBar *progress=nullptr) |
| compute C ≔ β·C + α·op(A)·op(B) More...
|
|
template<typename value_t > |
void | multiply (const value_t alpha, const TMatrix< value_t > *A, const TMatrix< value_t > *B, const value_t beta, TMatrix< value_t > *C, const TTruncAcc &acc, TProgressBar *progress=nullptr) |
| compute C = β·C + α·A·B More...
|
|
template<typename value_t > |
void | multiply_accu (const value_t alpha, const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_B, const TMatrix< value_t > *B, const value_t beta, TMatrix< value_t > *C, const TTruncAcc &acc) |
| compute C ≔ C + α·op(A)·op(B) using accumulators
|
|
template<typename value_t > |
std::unique_ptr< TMatrix< value_t > > | multiply (const value_t alpha, const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_B, const TMatrix< value_t > *B) |
| compute C ≔ β·C + α·op(A)·op(B) More...
|
|
template<typename value_t > |
void | multiply_ll_left (const value_t alpha, const TMatrix< value_t > *L, TMatrix< value_t > *A, const TTruncAcc &acc, const eval_option_t &opts) |
| compute A ≔ α·L·A with lower left tridiagonal L
|
|
template<typename value_t > |
void | multiply_ll_right (const value_t alpha, TMatrix< value_t > *A, const TMatrix< value_t > *L, const TTruncAcc &acc, const eval_option_t &opts) |
| compute A ≔ α·A·L with lower left tridiagonal L
|
|
template<typename value_t > |
void | multiply_ll_right (const value_t alpha, const TMatrix< value_t > *A, const TMatrix< value_t > *B, TMatrix< value_t > *C, const TTruncAcc &acc, const eval_option_t &opts) |
| compute C ≔ C + α·A·B with lower left tridiagonal B
|
|
template<typename value_t > |
void | multiply_ur_left (const value_t alpha, const TMatrix< value_t > *U, TMatrix< value_t > *A, const TTruncAcc &acc, const eval_option_t &opts) |
| compute A ≔ α·U·A with upper right tridiagonal U
|
|
template<typename value_t > |
void | multiply_ur_right (const value_t alpha, TMatrix< value_t > *A, const TMatrix< value_t > *U, const TTruncAcc &acc, const eval_option_t &opts) |
| compute A ≔ α·A·U with upper right tridiagonal U
|
|
template<typename value_t > |
void | multiply_ur_ll (const TMatrix< value_t > *U, const TMatrix< value_t > *L, TMatrix< value_t > *A, const TTruncAcc &acc, const eval_option_t &opts_U, const eval_option_t &opts_L) |
| Compute A ≔ A + U·L. More...
|
|
template<typename value_t > |
void | multiply_llt_d_ll (const TMatrix< value_t > *L, const TMatrix< value_t > *D, TMatrix< value_t > *C, const matop_t op_L, const TTruncAcc &acc) |
| Compute C ≔ C + L^T·D·L. More...
|
|
template<typename value_t > |
void | multiply_llt_d_left (const value_t alpha, const TMatrix< value_t > *L, const TMatrix< value_t > *D, TMatrix< value_t > *B, const matop_t op_L, const TTruncAcc &acc) |
| Compute B ≔ op(L)·D·B inplace, overwriting B. More...
|
|
template<typename value_t > |
void | multiply_llt_d_left (const value_t alpha, const TMatrix< value_t > *L, const TMatrix< value_t > *D, const TMatrix< value_t > *B, TMatrix< value_t > *C, const matop_t op_L, const TTruncAcc &acc) |
| Compute C ≔ C + op(L)·D·B. More...
|
|
template<typename value_t , typename alpha_t , typename beta_t > |
void | multiply (const alpha_t alpha, const matop_t op_A, const TMatrix< value_t > &A, const matop_t op_B, const TMatrix< value_t > &B, const beta_t beta, TMatrix< value_t > &C, const TTruncAcc &acc, TProgressBar *progress=nullptr) |
|
template<typename value_t , typename alpha_t , typename beta_t > |
void | multiply (const alpha_t alpha, const TMatrix< value_t > &A, const TMatrix< value_t > &B, const beta_t beta, TMatrix< value_t > &C, const TTruncAcc &acc, TProgressBar *progress=nullptr) |
|
template<typename value_t , typename alpha_t , typename beta_t > |
void | multiply_accu (const alpha_t alpha, const matop_t op_A, const TMatrix< value_t > &A, const matop_t op_B, const TMatrix< value_t > &B, const beta_t beta, TMatrix< value_t > &C, const TTruncAcc &acc) |
|
template<typename value_t > |
void | add_product (const value_t alpha, const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_B, const TMatrix< value_t > *B, TMatrix< value_t > *C, const TTruncAcc &acc, const bool lazy=CFG::Arith::lazy_eval) |
|
template<typename value_t , typename alpha_t > |
void | add_product (const alpha_t alpha, const matop_t op_A, const TMatrix< value_t > &A, const matop_t op_B, const TMatrix< value_t > &B, TMatrix< value_t > &C, const TTruncAcc &acc, const bool lazy=CFG::Arith::lazy_eval) |
|
template<typename value_t , typename alpha_t > |
std::unique_ptr< TMatrix< value_t > > | multiply (const alpha_t alpha, const matop_t op_A, const TMatrix< value_t > &A, const matop_t op_B, const TMatrix< value_t > &B) |
|
template<typename value_t , typename alpha_t > |
std::unique_ptr< TMatrix< value_t > > | multiply (const alpha_t alpha, const matop_t op_A, const TRkMatrix< value_t > *A, const matop_t op_B, const TMatrix< value_t > *B) |
|
template<typename value_t , typename alpha_t > |
std::unique_ptr< TMatrix< value_t > > | multiply (const alpha_t alpha, const matop_t op_A, const TRkMatrix< value_t > &A, const matop_t op_B, const TMatrix< value_t > &B) |
|
template<typename value_t , typename alpha_t > |
std::unique_ptr< TMatrix< value_t > > | multiply (const alpha_t alpha, const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_B, const TRkMatrix< value_t > *B) |
|
template<typename value_t , typename alpha_t > |
std::unique_ptr< TMatrix< value_t > > | multiply (const alpha_t alpha, const matop_t op_A, const TMatrix< value_t > &A, const matop_t op_B, const TRkMatrix< value_t > &B) |
|
template<typename value_t , typename alpha_t > |
std::unique_ptr< TMatrix< value_t > > | multiply (const alpha_t alpha, const matop_t op_A, const TDenseMatrix< value_t > *A, const matop_t op_B, const TMatrix< value_t > *B) |
|
template<typename value_t , typename alpha_t > |
std::unique_ptr< TMatrix< value_t > > | multiply (const alpha_t alpha, const matop_t op_A, const TDenseMatrix< value_t > &A, const matop_t op_B, const TMatrix< value_t > &B) |
|
template<typename value_t , typename alpha_t > |
std::unique_ptr< TMatrix< value_t > > | multiply (const alpha_t alpha, const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_B, const TDenseMatrix< value_t > *B) |
|
template<typename value_t , typename alpha_t > |
std::unique_ptr< TMatrix< value_t > > | multiply (const alpha_t alpha, const matop_t op_A, const TMatrix< value_t > &A, const matop_t op_B, const TDenseMatrix< value_t > &B) |
|
template<typename value_t , typename alpha_t > |
void | multiply_ll_left (const alpha_t alpha, const TMatrix< value_t > &L, TMatrix< value_t > &A, const TTruncAcc &acc, const eval_option_t &opts) |
|
template<typename value_t , typename alpha_t > |
void | multiply_ll_right (const alpha_t alpha, TMatrix< value_t > &A, const TMatrix< value_t > &L, const TTruncAcc &acc, const eval_option_t &opts) |
|
template<typename value_t , typename alpha_t > |
void | multiply_ll_right (const alpha_t alpha, const TMatrix< value_t > &A, const TMatrix< value_t > &B, TMatrix< value_t > &C, const TTruncAcc &acc, const eval_option_t &opts) |
|
template<typename value_t , typename alpha_t > |
void | multiply_ur_left (const alpha_t alpha, const TMatrix< value_t > &U, TMatrix< value_t > &A, const TTruncAcc &acc, const eval_option_t &opts) |
|
template<typename value_t , typename alpha_t > |
void | multiply_ur_right (const alpha_t alpha, TMatrix< value_t > &A, const TMatrix< value_t > &U, const TTruncAcc &acc, const eval_option_t &opts) |
|
template<typename value_t > |
void | multiply_ur_ll (const TMatrix< value_t > &U, const TMatrix< value_t > &L, TMatrix< value_t > &A, const TTruncAcc &acc, const eval_option_t &opts_U, const eval_option_t &opts_L) |
|
template<typename value_t > |
void | multiply_llt_d_ll (const TMatrix< value_t > &L, const TMatrix< value_t > &D, TMatrix< value_t > &C, const matop_t op_L, const TTruncAcc &acc) |
|
template<typename value_t , typename alpha_t > |
void | multiply_llt_d_left (const alpha_t alpha, const TMatrix< value_t > &L, const TMatrix< value_t > &D, TMatrix< value_t > &B, const matop_t op_L, const TTruncAcc &acc) |
|
template<typename value_t , typename alpha_t > |
void | multiply_llt_d_left (const alpha_t alpha, const TMatrix< value_t > &L, const TMatrix< value_t > &D, const TMatrix< value_t > &B, TMatrix< value_t > &C, const matop_t op_L, const TTruncAcc &acc) |
|
template<typename value_t > |
size_t | multiply_steps (const matop_t op_A, const TMatrix< value_t > *A, const matop_t op_B, const TMatrix< value_t > *B, const TMatrix< value_t > *C) |
|
template<typename value_t > |
size_t | multiply_steps (const matop_t op_A, const TMatrix< value_t > &A, const matop_t op_B, const TMatrix< value_t > &B, const TMatrix< value_t > &C) |
|
template<typename value_t > |
size_t | multiply_ll_left_steps (const TMatrix< value_t > *A, const TMatrix< value_t > *B) |
|
template<typename value_t > |
size_t | multiply_ll_left_steps (const TMatrix< value_t > &A, const TMatrix< value_t > &B) |
|
template<typename value_t > |
size_t | multiply_ll_right_steps (const TMatrix< value_t > *A, const TMatrix< value_t > *B) |
|
template<typename value_t > |
size_t | multiply_ll_right_steps (const TMatrix< value_t > &A, const TMatrix< value_t > &B) |
|
template<typename value_t > |
size_t | multiply_ur_left_steps (const TMatrix< value_t > *A, const TMatrix< value_t > *B) |
|
template<typename value_t > |
size_t | multiply_ur_left_steps (const TMatrix< value_t > &A, const TMatrix< value_t > &B) |
|
template<typename value_t > |
size_t | multiply_ur_right_steps (const TMatrix< value_t > *A, const TMatrix< value_t > *B) |
|
template<typename value_t > |
size_t | multiply_ur_right_steps (const TMatrix< value_t > &A, const TMatrix< value_t > &B) |
|
template<typename value_t > |
size_t | multiply_ur_ll_steps (const TMatrix< value_t > *A) |
|
template<typename value_t > |
size_t | multiply_ur_ll_steps (const TMatrix< value_t > &A) |
|
template<typename value_t > |
size_t | multiply_llt_d_ll_steps (const TMatrix< value_t > *L) |
|
template<typename value_t > |
size_t | multiply_llt_d_ll_steps (const TMatrix< value_t > &L) |
|
template<typename value_t > |
size_t | multiply_llt_d_left_steps (const TMatrix< value_t > *L, const TMatrix< value_t > *B) |
|
template<typename value_t > |
size_t | multiply_llt_d_left_steps (const TMatrix< value_t > &L, const TMatrix< value_t > &B) |
|
This module provides most higher level algebra functions, e.g. matrix multiplication, inversion and factorisation. See also Basic Matrix Algebra and Matrix Factorisation for an introduction into H-arithmetic.
to your source files.