@Deprecated public abstract class SingularValueDecomposition<N extends java.lang.Number & java.lang.Comparable<N>> extends java.lang.Object implements SingularValue<N>
InverterTask.Factory<N extends java.lang.Number>
SolverTask.Factory<N extends java.lang.Number>
BIG, COMPLEX, PRIMITIVE
BIG, COMPLEX, PRIMITIVE
Modifier and Type | Method and Description |
---|---|
boolean |
compute(Access2D<?> matrix)
Deprecated.
|
boolean |
compute(Access2D<?> matrix,
boolean singularValuesOnly,
boolean fullSize)
Deprecated.
|
boolean |
equals(java.lang.Object someObj) |
double |
getCondition()
Deprecated.
The condition number.
|
MatrixStore<N> |
getD()
Deprecated.
|
double |
getFrobeniusNorm()
Deprecated.
Sometimes also called the Schatten 2-norm or Hilbert-Schmidt norm.
|
MatrixStore<N> |
getInverse()
Deprecated.
The output must be a "right inverse" and a "generalised inverse".
|
MatrixStore<N> |
getInverse(DecompositionStore<N> preallocated)
Deprecated.
Implementiong this method is optional.
|
double |
getKyFanNorm(int k)
Deprecated.
Ky Fan k-norm.
|
double |
getOperatorNorm()
Deprecated.
|
MatrixStore<N> |
getQ1()
Deprecated.
If [A] is m-by-n and its rank is r, then:
The first r columns of [Q1] span the column space, range or image of [A].
The last m-r columns of [Q1] span the left nullspace or cokernel of [A].
Calculating the QR decomposition of [A] is a faster alternative.
|
MatrixStore<N> |
getQ2()
Deprecated.
If [A] is m-by-n and its rank is r, then:
The first r columns of [Q2] span the row space or coimage of [A].
The last n-r columns of [Q2] span the nullspace or kernel of [A].
Calculating the QR decomposition of [A]T is a faster alternative.
|
int |
getRank()
Deprecated.
Effective numerical matrix rank.
|
Array1D<java.lang.Double> |
getSingularValues()
Deprecated.
|
double |
getTraceNorm()
Deprecated.
|
MatrixStore<N> |
invert(MatrixStore<N> original)
The output must be a "right inverse" and a "generalised inverse".
|
MatrixStore<N> |
invert(MatrixStore<N> original,
DecompositionStore<N> preallocated)
Implementiong this method is optional.
|
boolean |
isComputed() |
boolean |
isFullSize()
Deprecated.
|
static <N extends java.lang.Number> |
make(Access2D<N> aTypical)
Deprecated.
v38 Use
SingularValue.make(Access2D) instead |
static SingularValue<java.lang.Double> |
makeAlternative()
Deprecated.
v38 Use
SingularValue.make(Access2D) instead |
static SingularValue<java.math.BigDecimal> |
makeBig()
Deprecated.
v38 Use
SingularValue.makeBig() instead |
static SingularValue<ComplexNumber> |
makeComplex()
Deprecated.
v38 Use
SingularValue.makeComplex() instead |
static SingularValue<java.lang.Double> |
makeJama()
Deprecated.
v38 Use
SingularValue.makePrimitive() instead |
static SingularValue<java.lang.Double> |
makePrimitive()
Deprecated.
v38 Use
SingularValue.makePrimitive() instead |
DecompositionStore<N> |
preallocate(Access2D<N> template)
Implementiong this method is optional.
|
DecompositionStore<N> |
preallocate(Access2D<N> templateBody,
Access2D<N> templateRHS)
Implementiong this method is optional.
|
void |
reset()
Deprecated.
Delete computed results, and resets attributes to default values
|
MatrixStore<N> |
solve(Access2D<N> rhs)
Deprecated.
[A][X]=[B] or [this][return]=[rhs]
|
MatrixStore<N> |
solve(Access2D<N> body,
Access2D<N> rhs)
[A][X]=[B] or [body][return]=[rhs]
|
MatrixStore<N> |
solve(Access2D<N> body,
Access2D<N> rhs,
DecompositionStore<N> preallocated)
Implementiong this method is optional.
|
MatrixStore<N> |
solve(Access2D<N> rhs,
DecompositionStore<N> preallocated)
Deprecated.
Implementiong this method is optional.
|
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
isOrdered, reconstruct
equals, equals, isComputed, isSolvable
invert, invert, preallocate
preallocate, solve, solve
@Deprecated public static final <N extends java.lang.Number> SingularValue<N> make(Access2D<N> aTypical)
SingularValue.make(Access2D)
insteadmake
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
@Deprecated public static final SingularValue<java.lang.Double> makeAlternative()
SingularValue.make(Access2D)
instead@Deprecated public static final SingularValue<java.math.BigDecimal> makeBig()
SingularValue.makeBig()
insteadmakeBig
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
@Deprecated public static final SingularValue<ComplexNumber> makeComplex()
SingularValue.makeComplex()
insteadmakeComplex
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
@Deprecated public static final SingularValue<java.lang.Double> makeJama()
SingularValue.makePrimitive()
instead@Deprecated public static final SingularValue<java.lang.Double> makePrimitive()
SingularValue.makePrimitive()
insteadmakePrimitive
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
public final boolean compute(Access2D<?> matrix)
compute
in interface MatrixDecomposition<N extends java.lang.Number & java.lang.Comparable<N>>
matrix
- A matrix to decomposepublic boolean compute(Access2D<?> matrix, boolean singularValuesOnly, boolean fullSize)
compute
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
matrix
- A matrix to decomposesingularValuesOnly
- No need to calculate eigenvectorsfullSize
- TODOpublic final double getCondition()
SingularValue
getCondition
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
public final MatrixStore<N> getD()
getD
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
public final double getFrobeniusNorm()
SingularValue
getFrobeniusNorm
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
public final MatrixStore<N> getInverse()
MatrixDecomposition
getInverse
in interface MatrixDecomposition<N extends java.lang.Number & java.lang.Comparable<N>>
BasicMatrix.invert()
public final MatrixStore<N> getInverse(DecompositionStore<N> preallocated)
MatrixDecomposition
Implementiong this method is optional.
Exactly how a specific implementation makes use of preallocated
is not specified by this
interface. It must be documented for each implementation.
Should produce the same results as calling MatrixDecomposition.getInverse()
.
getInverse
in interface MatrixDecomposition<N extends java.lang.Number & java.lang.Comparable<N>>
preallocated
- Preallocated memory for the results, possibly some intermediate results. You must
assume this is modified, but you cannot assume it will contain the full/final/correct solution.public final double getKyFanNorm(int k)
SingularValue
Ky Fan k-norm.
The first Ky Fan k-norm is the operator norm (the largest singular value), and the last is called the trace norm (the sum of all singular values).
getKyFanNorm
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
k
- The number of singular values to add up.public final double getOperatorNorm()
getOperatorNorm
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
public final MatrixStore<N> getQ1()
SingularValue
getQ1
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
public final MatrixStore<N> getQ2()
SingularValue
getQ2
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
public final int getRank()
SingularValue
getRank
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
public final Array1D<java.lang.Double> getSingularValues()
getSingularValues
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
public final double getTraceNorm()
getTraceNorm
in interface SingularValue<N extends java.lang.Number & java.lang.Comparable<N>>
public final boolean isFullSize()
isFullSize
in interface MatrixDecomposition<N extends java.lang.Number & java.lang.Comparable<N>>
public void reset()
MatrixDecomposition
reset
in interface MatrixDecomposition<N extends java.lang.Number & java.lang.Comparable<N>>
public MatrixStore<N> solve(Access2D<N> rhs)
MatrixDecomposition
solve
in interface MatrixDecomposition<N extends java.lang.Number & java.lang.Comparable<N>>
public MatrixStore<N> solve(Access2D<N> rhs, DecompositionStore<N> preallocated)
MatrixDecomposition
Implementiong this method is optional.
Exactly how a specific implementation makes use of preallocated
is not specified by this
interface. It must be documented for each implementation.
Should produce the same results as calling MatrixDecomposition.solve(Access2D)
.
solve
in interface MatrixDecomposition<N extends java.lang.Number & java.lang.Comparable<N>>
rhs
- The Right Hand Side, wont be modfiedpreallocated
- Preallocated memory for the results, possibly some intermediate results. You must
assume this is modified, but you cannot assume it will contain the full/final/correct solution.public boolean equals(java.lang.Object someObj)
equals
in class java.lang.Object
public final MatrixStore<N> invert(MatrixStore<N> original)
InverterTask
BasicMatrix.invert()
public final MatrixStore<N> invert(MatrixStore<N> original, DecompositionStore<N> preallocated)
InverterTask
Implementiong this method is optional.
Exactly how a specific implementation makes use of preallocated
is not specified by this
interface. It must be documented for each implementation.
Should produce the same results as calling InverterTask.invert(MatrixStore)
.
preallocated
- Preallocated memory for the results, possibly some intermediate results. You must
assume this is modified, but you cannot assume it will contain the full/final/correct solution.public final MatrixStore<N> solve(Access2D<N> body, Access2D<N> rhs)
SolverTask
public final MatrixStore<N> solve(Access2D<N> body, Access2D<N> rhs, DecompositionStore<N> preallocated)
SolverTask
Implementiong this method is optional.
Exactly how a specific implementation makes use of preallocated
is not specified by this
interface. It must be documented for each implementation.
Should produce the same results as calling SolverTask.solve(Access2D, Access2D)
.
rhs
- The Right Hand Side, wont be modfiedpreallocated
- Preallocated memory for the results, possibly some intermediate results. You must
assume this is modified, but you cannot assume it will contain the full/final/correct solution.public final DecompositionStore<N> preallocate(Access2D<N> template)
InverterTask
Implementiong this method is optional.
Will create a DecompositionStore instance suitable for use withInverterTask.invert(MatrixStore, DecompositionStore)
. When solving an equation system [A][X]=[B]
([mxn][nxb]=[mxb]) the preallocated memory/matrix will typically be either mxb or nxb (if A is square
then there is no doubt).preallocate
in interface InverterTask<N extends java.lang.Number>
public final DecompositionStore<N> preallocate(Access2D<N> templateBody, Access2D<N> templateRHS)
SolverTask
Implementiong this method is optional.
Will create a DecompositionStore instance suitable for use withSolverTask.solve(Access2D, Access2D, DecompositionStore)
. When solving an equation system [A][X]=[B]
([mxn][nxb]=[mxb]) the preallocated memory/matrix will typically be either mxb or nxb (if A is square
then there is no doubt).preallocate
in interface SolverTask<N extends java.lang.Number>
public final boolean isComputed()
isComputed
in interface MatrixDecomposition<N extends java.lang.Number>
MatrixDecomposition.compute(Access2D)
,
MatrixDecomposition.isSolvable()