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) |
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.
void LaLinearSolve | ( | LaBandFactDouble & | AF, | |
LaGenMatDouble & | X, | |||
LaGenMatDouble & | B | |||
) | [inline] |