public class LinearSolverQr_ZDRM extends LinearSolverAbstract_ZDRM
A solver for a generic QR decomposition algorithm. This will in general be a bit slower than the specialized once since the full Q and R matrices need to be extracted.
It solve for x by first multiplying b by the transpose of Q then solving for the result.
QRx=b
Rx=Q^H b
Modifier and Type | Field and Description |
---|---|
protected int |
maxCols |
protected int |
maxRows |
protected org.ejml.data.ZMatrixRMaj |
Q |
protected org.ejml.data.ZMatrixRMaj |
Qt |
protected org.ejml.data.ZMatrixRMaj |
R |
A, numCols, numRows, stride
Constructor and Description |
---|
LinearSolverQr_ZDRM(org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.ZMatrixRMaj> decomposer)
Creates a linear solver that uses QR decomposition.
|
Modifier and Type | Method and Description |
---|---|
org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.ZMatrixRMaj> |
getDecomposer() |
org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.ZMatrixRMaj> |
getDecomposition() |
org.ejml.data.ZMatrixRMaj |
getQ() |
org.ejml.data.ZMatrixRMaj |
getR() |
boolean |
modifiesA() |
boolean |
modifiesB() |
double |
quality() |
boolean |
setA(org.ejml.data.ZMatrixRMaj A)
Performs QR decomposition on A
|
void |
setMaxSize(int maxRows,
int maxCols)
Changes the size of the matrix it can solve for
|
void |
solve(org.ejml.data.ZMatrixRMaj B,
org.ejml.data.ZMatrixRMaj X)
Solves for X using the QR decomposition.
|
_setA, getA, invert
protected int maxRows
protected int maxCols
protected org.ejml.data.ZMatrixRMaj Q
protected org.ejml.data.ZMatrixRMaj Qt
protected org.ejml.data.ZMatrixRMaj R
public LinearSolverQr_ZDRM(org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.ZMatrixRMaj> decomposer)
public void setMaxSize(int maxRows, int maxCols)
maxRows
- Maximum number of rows in the matrix it will decompose.maxCols
- Maximum number of columns in the matrix it will decompose.public boolean setA(org.ejml.data.ZMatrixRMaj A)
A
- not modified.public double quality()
public void solve(org.ejml.data.ZMatrixRMaj B, org.ejml.data.ZMatrixRMaj X)
B
- A matrix that is n by m. Not modified.X
- An n by m matrix where the solution is written to. Modified.public boolean modifiesA()
public boolean modifiesB()
public org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.ZMatrixRMaj> getDecomposition()
public org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.ZMatrixRMaj> getDecomposer()
public org.ejml.data.ZMatrixRMaj getQ()
public org.ejml.data.ZMatrixRMaj getR()