Heidelberg Educational Numerics Library Version 0.27 (from 15 March 2021)
Functions
lr.hh File Reference

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!
 

Detailed Description

This file implements LU decomposition.