unsigned int | bitpit::linearalgebra::factorizeLU (std::vector< std::vector< double > > &A, std::vector< std::vector< double > > &L, std::vector< std::vector< double > > &U, std::vector< std::vector< double > > *P) |
void | bitpit::linearalgebra::backwardSubstitution (std::vector< std::vector< double > > &A, std::vector< double > &B, std::vector< double > &x) |
void | bitpit::linearalgebra::forwardSubstitution (std::vector< std::vector< double > > &A, std::vector< double > &B, std::vector< double > &x) |
void | bitpit::linearalgebra::solveLU (std::vector< std::vector< double > > &A, std::vector< double > &B, std::vector< double > &x) |
int | bitpit::linearalgebra::solveLU (int layout, std::vector< double > &A, std::vector< double > &B) |
int | bitpit::linearalgebra::solveLU (int layout, int matrixOrder, double *A, double *B, int *ipiv) |
template<class T > | |
void | bitpit::linearalgebra::cramer (std::vector< std::vector< T > > &, std::vector< T > &, std::vector< T > &) |
template<class T , size_t m, size_t n> | |
void | bitpit::linearalgebra::cramer (std::array< std::array< T, n >, m > &, std::array< T, m > &, std::array< T, n > &) |
template<size_t m> | |
unsigned int | bitpit::linearalgebra::factorizeLU (std::array< std::array< double, m >, m > &, std::array< std::array< double, m >, m > &, std::array< std::array< double, m >, m > &, std::array< std::array< double, m >, m > *) |
template<size_t m> | |
void | bitpit::linearalgebra::backwardSubstitution (std::array< std::array< double, m >, m > &, std::array< double, m > &, std::array< double, m > &) |
template<size_t m> | |
void | bitpit::linearalgebra::forwardSubstitution (std::array< std::array< double, m >, m > &, std::array< double, m > &, std::array< double, m > &) |
template<size_t m> | |
void | bitpit::linearalgebra::solveLU (std::array< std::array< double, m >, m > &, std::array< double, m > &, std::array< double, m > &) |
void bitpit::linearalgebra::backwardSubstitution | ( | std::array< std::array< double, m >, m > & | A, |
std::array< double, m > & | B, | ||
std::array< double, m > & | x ) |
Solve a lower triangular system using backward substitution. Overloading of backwardSubstitution() for container array.
[in] | A | coeffs matrix |
[in] | B | r.h.s. of the linear system |
[in] | x | on output stores the solution to the linear system |
Definition at line 278 of file system_solvers_small.tpp.
void bitpit::linearalgebra::backwardSubstitution | ( | std::vector< std::vector< double > > & | A, |
std::vector< double > & | B, | ||
std::vector< double > & | x ) |
Solve a upper triangular linear system, using backward substitution.
[in] | A | coeffs. matrix |
[in] | B | r.h.s. of linear system |
[in,out] | x | on output store the solution of the linear system |
Definition at line 186 of file system_solvers_small.cpp.
void bitpit::linearalgebra::cramer | ( | std::array< std::array< T, n >, m > & | A, |
std::array< T, m > & | B, | ||
std::array< T, n > & | x ) |
Solve a linear system of small dimenions using cramer's rule. Overloading of cramer() function for container array.
[in] | A | coeffs matrix |
[in] | B | r.h.s. of the linear system |
[in,out] | x | on output stores the solution to the linear system |
Definition at line 110 of file system_solvers_small.tpp.
void bitpit::linearalgebra::cramer | ( | std::vector< std::vector< T > > & | A, |
std::vector< T > & | B, | ||
std::vector< T > & | x ) |
Solve a linear system of small dimenions using cramer's rule.
[in] | A | coeffs matrix |
[in] | B | r.h.s. of the linear system |
[in,out] | x | on output stores the solution to the linear system |
Definition at line 41 of file system_solvers_small.tpp.
unsigned int bitpit::linearalgebra::factorizeLU | ( | std::array< std::array< double, m >, m > & | A, |
std::array< std::array< double, m >, m > & | L, | ||
std::array< std::array< double, m >, m > & | U, | ||
std::array< std::array< double, m >, m > * | P ) |
Compute the LU factorization (with row pivoting) for a given non-singular matrix. Overloading of LU() function for container array.
[in] | A | input matrix |
[in,out] | L | lower triangular part (L factor) |
[in,out] | U | upper triangular part (U factor) |
[in,out] | P | permutation matrix |
Definition at line 177 of file system_solvers_small.tpp.
unsigned int bitpit::linearalgebra::factorizeLU | ( | std::vector< std::vector< double > > & | A, |
std::vector< std::vector< double > > & | L, | ||
std::vector< std::vector< double > > & | U, | ||
std::vector< std::vector< double > > * | P ) |
Compute the LU factorization (with partial pivoting) of an input matrix of small dimensions.
[in] | A | input matrix |
[in,out] | L | lower triangular part (factor L) |
[in,out] | U | upper triangular part (factor U) |
[in,out] | P | permutation matrix |
Definition at line 80 of file system_solvers_small.cpp.
void bitpit::linearalgebra::forwardSubstitution | ( | std::array< std::array< double, m >, m > & | A, |
std::array< double, m > & | B, | ||
std::array< double, m > & | x ) |
Solve a upper triangular system using forward substitution. Overloading of forwardSubstitution() for container array.
[in] | A | coeffs matrix |
[in] | B | r.h.s. of the linear system |
[in] | x | on output stores the solution to the linear system |
Definition at line 333 of file system_solvers_small.tpp.
void bitpit::linearalgebra::forwardSubstitution | ( | std::vector< std::vector< double > > & | A, |
std::vector< double > & | B, | ||
std::vector< double > & | x ) |
Solve a lower triangular linear system, using forward substitution.
[in] | A | coeffs. matrix |
[in] | B | r.h.s. of linear system |
[in,out] | x | on output store the solution of the linear system |
Definition at line 255 of file system_solvers_small.cpp.
int bitpit::linearalgebra::solveLU | ( | int | layout, |
int | matrixOrder, | ||
double * | A, | ||
double * | B, | ||
int * | ipiv ) |
Solve a linear system using partial pivoting and LU factorization (the LAPACK function Lapacke_dgesv is used).
This routine works on the entire matrix, the number of considered equations is equal to the leading dimension of the matrix, the same is for the r.h.s. Multiple r.h.s. are not allowed. Containers MUST be correctly sized.
This function is intended for both solution and factorization computation.
[in] | layout | matrix layout (possible values are ROW_MAJOR and COL_MAJOR). |
[in] | matrixOrder | number of equations in linear system. |
[in,out] | A | in input the coefficients of square matrix (linear), in output the factors L and U, A = P * L * U. |
[in,out] | B | in input r.h.s. of the linear system, in output the solution. |
[out] | ipiv | the pivot indices that define the permutation matrix P, see LAPACK documentation. |
Definition at line 417 of file system_solvers_small.cpp.
int bitpit::linearalgebra::solveLU | ( | int | layout, |
std::vector< double > & | A, | ||
std::vector< double > & | B ) |
Solve a linear system using partial pivoting and LU factorization (the LAPACK function Lapacke_dgesv is used).
This routine works on the entire matrix, the number of considered equations is equal to the leading dimension of the matrix, the same is for the r.h.s. Multiple r.h.s. are not allowed. Containers MUST be correctly sized. Permutation matrix not provided.
This function is intended for solution computation ONLY.
[in] | layout | matrix layout (possible values are ROW_MAJOR and COL_MAJOR) |
[in,out] | A | in input the coefficients of square matrix (linear), the solver will the use the matrix as a storage for temporary data needed during the solution of the system, hence on output the matrix coefficients will be overwritten and the original matrix coefficients cannot be recovered |
[in,out] | B | in input r.h.s. of the linear system, in output the solution. |
Definition at line 385 of file system_solvers_small.cpp.
void bitpit::linearalgebra::solveLU | ( | std::array< std::array< double, m >, m > & | A, |
std::array< double, m > & | B, | ||
std::array< double, m > & | x ) |
Solve a non-singular linear system using LU factorization. Overloading of LU() function for container array.
[in] | A | coeffs matrix |
[in] | B | r.h.s. of linear system |
[in,out] | x | on output stores the solution to the linear system |
Definition at line 389 of file system_solvers_small.tpp.
void bitpit::linearalgebra::solveLU | ( | std::vector< std::vector< double > > & | A, |
std::vector< double > & | B, | ||
std::vector< double > & | x ) |
Solve a linear system of small dimenions (coeffs. matrix must have full rank) using LU factorization.
[in] | A | coeffs matrix |
[in] | B | r.h.s. of the linear system |
[in,out] | x | on output stores the solution of the linear system |
Definition at line 326 of file system_solvers_small.cpp.