Lapack++
|
Go to the source code of this file.
Classes | |
class | LaBandFactDouble |
Functions | |
void | LaBandMatFactorize (LaBandMatDouble &A, LaBandFactDouble &AF) |
void | LaLinearSolve (LaBandFactDouble &AF, LaGenMatDouble &X, LaGenMatDouble &B) |
Deprecated. Class for the LU factorization of a matrix. Note: This class is probably broken by design, because the matrices L and U do not exist separately in the internal lapack but they are part of the modified input matrix A.
Do not use this unless you are really sure you understand what this class does.
void LaBandMatFactorize | ( | LaBandMatDouble & | A, |
LaBandFactDouble & | AF | ||
) | [inline] |
Calculate the LU factorization of a matrix A.
Note: The class LaBandFactDouble is probably broken by design, because the matrices L and U do not exist separately in the internal lapack but they are part of the modified input matrix A. The factorization classes need a complete redesign.
However, the intended behaviour can be achieved when the LaBandFactDouble object is constructed with the original matrix A as argument. This work if and only if 1. the original matrix A is allowed to be destroyed by the factorization, and 2. you use the same original matrix for calling this function. Use the following code:
// original matrix A: LaBandMatDouble A(m,n); // fill A somehow. Then construct the factorization: LaBandFactDouble AF(A); LaBandMatFactorize(A, AF); // AF refers to the factorization. A may no longer be used, which is // fine. Now use the factorization: LaLinearSolve(AF, X, B); // ... and so on.
References F77NAME, LaBandMatDouble::gdim(), LaBandFactDouble::pivot(), LaBandMatDouble::size(), LaBandMatDouble::subdiags(), and LaBandMatDouble::superdiags().
void LaLinearSolve | ( | LaBandFactDouble & | AF, |
LaGenMatDouble & | X, | ||
LaGenMatDouble & | B | ||
) | [inline] |