public class BidiagonalDecompositionRow extends Object implements BidiagonalDecomposition<DenseMatrix64F>
Performs a BidiagonalDecomposition using
householder reflectors. This is efficient on wide or square matrices.
| Constructor and Description |
|---|
BidiagonalDecompositionRow() |
BidiagonalDecompositionRow(int numElements)
Creates a decompose that defines the specified amount of memory.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
computeU(int k) |
protected void |
computeV(int k) |
boolean |
decompose(DenseMatrix64F A)
Computes the decomposition of the provided matrix.
|
DenseMatrix64F |
getB(DenseMatrix64F B,
boolean compact)
Returns the bidiagonal matrix.
|
void |
getDiagonal(double[] diag,
double[] off)
Extracts the diagonal and off diagonal elements from the decomposition.
|
double[] |
getGammasU()
Returns gammas from the householder operations for the U matrix.
|
double[] |
getGammasV()
Returns gammas from the householder operations for the V matrix.
|
DenseMatrix64F |
getU(DenseMatrix64F U,
boolean transpose,
boolean compact)
Returns the orthogonal U matrix.
|
DenseMatrix64F |
getUBV()
The raw UBV matrix that is stored internally.
|
DenseMatrix64F |
getV(DenseMatrix64F V,
boolean transpose,
boolean compact)
Returns the orthogonal V matrix.
|
static DenseMatrix64F |
handleB(DenseMatrix64F B,
boolean compact,
int m,
int n,
int min) |
static DenseMatrix64F |
handleU(DenseMatrix64F U,
boolean transpose,
boolean compact,
int m,
int n,
int min) |
static DenseMatrix64F |
handleV(DenseMatrix64F V,
boolean transpose,
boolean compact,
int m,
int n,
int min) |
protected void |
init(DenseMatrix64F A)
Sets up internal data structures and creates a copy of the input matrix.
|
boolean |
inputModified()
Is the input matrix to
DecompositionInterface.decompose(org.ejml.data.Matrix64F) is modified during
the decomposition process. |
public BidiagonalDecompositionRow(int numElements)
numElements - number of elements in the matrix.public BidiagonalDecompositionRow()
public boolean decompose(DenseMatrix64F A)
decompose in interface DecompositionInterface<DenseMatrix64F>A - The matrix that is being decomposed. Not modified.protected void init(DenseMatrix64F A)
A - The input matrix. Not modified.public DenseMatrix64F getUBV()
public void getDiagonal(double[] diag,
double[] off)
BidiagonalDecompositiongetDiagonal in interface BidiagonalDecomposition<DenseMatrix64F>diag - diagonal elements from B.off - off diagonal elements form B.public DenseMatrix64F getB(DenseMatrix64F B, boolean compact)
getB in interface BidiagonalDecomposition<DenseMatrix64F>B - If not null the results are stored here, if null a new matrix is created.public static DenseMatrix64F handleB(DenseMatrix64F B, boolean compact, int m, int n, int min)
public DenseMatrix64F getU(DenseMatrix64F U, boolean transpose, boolean compact)
getU in interface BidiagonalDecomposition<DenseMatrix64F>U - If not null then the results will be stored here. Otherwise a new matrix will be created.public static DenseMatrix64F handleU(DenseMatrix64F U, boolean transpose, boolean compact, int m, int n, int min)
public DenseMatrix64F getV(DenseMatrix64F V, boolean transpose, boolean compact)
getV in interface BidiagonalDecomposition<DenseMatrix64F>V - If not null then the results will be stored here. Otherwise a new matrix will be created.public static DenseMatrix64F handleV(DenseMatrix64F V, boolean transpose, boolean compact, int m, int n, int min)
protected void computeU(int k)
protected void computeV(int k)
public double[] getGammasU()
public double[] getGammasV()
public boolean inputModified()
DecompositionInterfaceDecompositionInterface.decompose(org.ejml.data.Matrix64F) is modified during
the decomposition process.inputModified in interface DecompositionInterface<DenseMatrix64F>Copyright © 2013. All Rights Reserved.