public class LinearSolverQr_CDRM extends LinearSolverAbstract_CDRM
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.CMatrixRMaj |
Q |
protected org.ejml.data.CMatrixRMaj |
Qt |
protected org.ejml.data.CMatrixRMaj |
R |
A, numCols, numRows, stride
Constructor and Description |
---|
LinearSolverQr_CDRM(org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.CMatrixRMaj> decomposer)
Creates a linear solver that uses QR decomposition.
|
Modifier and Type | Method and Description |
---|---|
org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.CMatrixRMaj> |
getDecomposer() |
org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.CMatrixRMaj> |
getDecomposition() |
org.ejml.data.CMatrixRMaj |
getQ() |
org.ejml.data.CMatrixRMaj |
getR() |
boolean |
modifiesA() |
boolean |
modifiesB() |
double |
quality() |
boolean |
setA(org.ejml.data.CMatrixRMaj 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.CMatrixRMaj B,
org.ejml.data.CMatrixRMaj X)
Solves for X using the QR decomposition.
|
_setA, getA, invert
protected int maxRows
protected int maxCols
protected org.ejml.data.CMatrixRMaj Q
protected org.ejml.data.CMatrixRMaj Qt
protected org.ejml.data.CMatrixRMaj R
public LinearSolverQr_CDRM(org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.CMatrixRMaj> 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.CMatrixRMaj A)
A
- not modified.public double quality()
public void solve(org.ejml.data.CMatrixRMaj B, org.ejml.data.CMatrixRMaj 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.CMatrixRMaj> getDecomposition()
public org.ejml.interfaces.decomposition.QRDecomposition<org.ejml.data.CMatrixRMaj> getDecomposer()
public org.ejml.data.CMatrixRMaj getQ()
public org.ejml.data.CMatrixRMaj getR()