|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.ejml.alg.dense.decomposition.qr.QRDecompositionHouseholderColumn
org.ejml.alg.dense.decomposition.qr.QRColPivDecompositionHouseholderColumn
public class QRColPivDecompositionHouseholderColumn
Performs QR decomposition with column pivoting. To prevent overflow/underflow the whole matrix
is normalized by the max value, but columns are not normalized individually any more. To enable
code reuse it extends QRDecompositionHouseholderColumn and functions from that class
are used whenever possible. Columns are transposed into single arrays, which allow for
fast pivots.
Decomposition: A*P = Q*R
Based off the description in "Fundamentals of Matrix Computations", 2nd by David S. Watkins.
| Field Summary | |
|---|---|
protected double |
maxAbs
|
protected double[] |
normsCol
|
protected int[] |
pivots
|
protected int |
rank
|
protected double |
singularThreshold
|
| Fields inherited from class org.ejml.alg.dense.decomposition.qr.QRDecompositionHouseholderColumn |
|---|
dataQR, error, gamma, gammas, minLength, numCols, numRows, tau, v |
| Constructor Summary | |
|---|---|
QRColPivDecompositionHouseholderColumn()
|
|
QRColPivDecompositionHouseholderColumn(double singularThreshold)
Configure parameters. |
|
| Method Summary | |
|---|---|
boolean |
decompose(DenseMatrix64F A)
To decompose the matrix 'A' it must have full rank. |
DenseMatrix64F |
getPivotMatrix(DenseMatrix64F P)
|
int[] |
getPivots()
|
DenseMatrix64F |
getQ(DenseMatrix64F Q,
boolean compact)
Computes the Q matrix from the information stored in the QR matrix. |
int |
getRank()
Returns the rank as determined by the algorithm. |
protected boolean |
householderPivot(int j)
Computes the householder vector "u" for the first column of submatrix j. |
void |
setExpectedMaxSize(int numRows,
int numCols)
|
| Methods inherited from class org.ejml.alg.dense.decomposition.qr.QRDecompositionHouseholderColumn |
|---|
convertToColumnMajor, getGammas, getQR, getR, householder, inputModified, updateA |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.ejml.alg.dense.decomposition.QRDecomposition |
|---|
getR |
| Methods inherited from interface org.ejml.alg.dense.decomposition.DecompositionInterface |
|---|
inputModified |
| Field Detail |
|---|
protected int[] pivots
protected double[] normsCol
protected double maxAbs
protected double singularThreshold
protected int rank
| Constructor Detail |
|---|
public QRColPivDecompositionHouseholderColumn(double singularThreshold)
singularThreshold - Specify the threshold that selects if column is singular or not. Typically around EPSpublic QRColPivDecompositionHouseholderColumn()
| Method Detail |
|---|
public void setExpectedMaxSize(int numRows,
int numCols)
setExpectedMaxSize in class QRDecompositionHouseholderColumn
public DenseMatrix64F getQ(DenseMatrix64F Q,
boolean compact)
getQ in interface QRDecomposition<DenseMatrix64F>getQ in class QRDecompositionHouseholderColumnQ - The orthogonal Q matrix.compact - If true an m by n matrix is created, otherwise n by n.
public boolean decompose(DenseMatrix64F A)
To decompose the matrix 'A' it must have full rank. 'A' is a 'm' by 'n' matrix. It requires about 2n*m2-2m2/3 flops.
The matrix provided here can be of different dimension than the one specified in the constructor. It just has to be smaller than or equal to it.
decompose in interface DecompositionInterface<DenseMatrix64F>decompose in class QRDecompositionHouseholderColumnA - The matrix which is being decomposed. Modification is implementation dependent.
protected boolean householderPivot(int j)
Computes the householder vector "u" for the first column of submatrix j. The already computed norm is used and checks to see if the matrix is singular at this point.
Q = I - γuuT
This function finds the values of 'u' and 'γ'.
j - Which submatrix to work off of.
public int getRank()
QRPDecomposition
getRank in interface QRPDecomposition<DenseMatrix64F>public int[] getPivots()
getPivots in interface QRPDecomposition<DenseMatrix64F>public DenseMatrix64F getPivotMatrix(DenseMatrix64F P)
getPivotMatrix in interface QRPDecomposition<DenseMatrix64F>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||