Heidelberg Educational Numerics Library Version 0.27 (from 15 March 2021)
|
This file implements LU decomposition. More...
#include "vector.hh"
#include "densematrix.hh"
Go to the source code of this file.
Functions | |
template<class T > | |
void | hdnum::lr (DenseMatrix< T > &A, Vector< std::size_t > &p) |
compute lr decomposition of A with first nonzero pivoting | |
template<class T > | |
T | hdnum::abs (const T &t) |
our own abs class that works also for multiprecision types | |
template<class T > | |
void | hdnum::lr_partialpivot (DenseMatrix< T > &A, Vector< std::size_t > &p) |
lr decomposition of A with column pivoting | |
template<class T > | |
void | hdnum::lr_fullpivot (DenseMatrix< T > &A, Vector< std::size_t > &p, Vector< std::size_t > &q) |
lr decomposition of A with full pivoting | |
template<class T > | |
void | hdnum::permute_forward (const Vector< std::size_t > &p, Vector< T > &b) |
apply permutations to a right hand side vector | |
template<class T > | |
void | hdnum::permute_backward (const Vector< std::size_t > &q, Vector< T > &z) |
apply permutations to a solution vector | |
template<class T > | |
void | hdnum::row_equilibrate (DenseMatrix< T > &A, Vector< T > &s) |
perform a row equilibration of a matrix; return scaling for later use | |
template<class T > | |
void | hdnum::apply_equilibrate (Vector< T > &s, Vector< T > &b) |
apply row equilibration to right hand side vector | |
template<class T > | |
void | hdnum::solveL (const DenseMatrix< T > &A, Vector< T > &x, const Vector< T > &b) |
Assume L = lower triangle of A with l_ii=1, solve L x = b. | |
template<class T > | |
void | hdnum::solveR (const DenseMatrix< T > &A, Vector< T > &x, const Vector< T > &b) |
Assume R = upper triangle of A and solve R x = b. | |
template<class T > | |
void | hdnum::linsolve (DenseMatrix< T > &A, Vector< T > &x, Vector< T > &b) |
a complete solver; Note A, x and b are modified! | |
This file implements LU decomposition.