Package org.ojalgo.matrix.decomposition
Class RawEigenvalue.Symmetric
- java.lang.Object
-
- org.ojalgo.matrix.decomposition.AbstractDecomposition<java.lang.Double>
-
- org.ojalgo.matrix.decomposition.RawDecomposition
-
- org.ojalgo.matrix.decomposition.RawEigenvalue
-
- org.ojalgo.matrix.decomposition.RawEigenvalue.Symmetric
-
- All Implemented Interfaces:
Eigenvalue<java.lang.Double>
,MatrixDecomposition<java.lang.Double>
,MatrixDecomposition.Determinant<java.lang.Double>
,MatrixDecomposition.Hermitian<java.lang.Double>
,MatrixDecomposition.Ordered<java.lang.Double>
,MatrixDecomposition.Solver<java.lang.Double>
,MatrixDecomposition.Values<java.lang.Double>
,Provider2D
,Provider2D.Determinant<java.lang.Double>
,Provider2D.Eigenpairs
,Provider2D.Inverse<java.util.Optional<MatrixStore<java.lang.Double>>>
,Provider2D.Solution<java.util.Optional<MatrixStore<java.lang.Double>>>
,DeterminantTask<java.lang.Double>
,InverterTask<java.lang.Double>
,MatrixTask<java.lang.Double>
,SolverTask<java.lang.Double>
,InvertibleFactor<java.lang.Double>
,Structure1D
,Structure2D
- Enclosing class:
- RawEigenvalue
static final class RawEigenvalue.Symmetric extends RawEigenvalue implements MatrixDecomposition.Solver<java.lang.Double>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.ojalgo.matrix.decomposition.RawEigenvalue
RawEigenvalue.Dynamic, RawEigenvalue.General, RawEigenvalue.Symmetric
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.decomposition.Eigenvalue
Eigenvalue.Eigenpair, Eigenvalue.Factory<N extends java.lang.Comparable<N>>, Eigenvalue.Generalisation, Eigenvalue.Generalised<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.task.InverterTask
InverterTask.Factory<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.transformation.InvertibleFactor
InvertibleFactor.IdentityFactor<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition
MatrixDecomposition.Determinant<N extends java.lang.Comparable<N>>, MatrixDecomposition.EconomySize<N extends java.lang.Comparable<N>>, MatrixDecomposition.Factory<D extends MatrixDecomposition<?>>, MatrixDecomposition.Hermitian<N extends java.lang.Comparable<N>>, MatrixDecomposition.Ordered<N extends java.lang.Comparable<N>>, MatrixDecomposition.Pivoting<N extends java.lang.Comparable<N>>, MatrixDecomposition.RankRevealing<N extends java.lang.Comparable<N>>, MatrixDecomposition.Solver<N extends java.lang.Comparable<N>>, MatrixDecomposition.Values<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.Provider2D
Provider2D.Condition, Provider2D.Determinant<N extends java.lang.Comparable<N>>, Provider2D.Eigenpairs, Provider2D.Hermitian, Provider2D.Inverse<M>, Provider2D.Rank, Provider2D.Solution<M>, Provider2D.Symmetric, Provider2D.Trace<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.task.SolverTask
SolverTask.Factory<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Structure1D
Structure1D.BasicMapper<T>, Structure1D.IndexMapper<T>, Structure1D.IntIndex, Structure1D.LongIndex, Structure1D.LoopCallback
-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Structure2D
Structure2D.IntRowColumn, Structure2D.Logical<S extends Structure2D,B extends Structure2D.Logical<S,B>>, Structure2D.LongRowColumn, Structure2D.ReducibleTo1D<R extends Structure1D>, Structure2D.Reshapable, Structure2D.RowColumnKey<R,C>, Structure2D.RowColumnMapper<R,C>
-
-
Field Summary
-
Fields inherited from interface org.ojalgo.matrix.decomposition.Eigenvalue
C128, DESCENDING_NORM, H256, Q128, R064, R128
-
Fields inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition
TYPICAL
-
-
Constructor Summary
Constructors Constructor Description Symmetric()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
btran(PhysicalStore<java.lang.Double> arg)
Backwards-transformationprotected boolean
doDecompose(double[][] data, boolean valuesOnly)
MatrixStore<java.lang.Double>
getSolution(Access2D.Collectable<java.lang.Double,? super PhysicalStore<java.lang.Double>> rhs)
[A][X]=[B] or [this][return]=[rhs]boolean
isHermitian()
If [A] is hermitian then [V][D][V]-1 becomes [Q][D][Q]H...boolean
isOrdered()
The eigenvalues in D (and the eigenvectors in V) are not necessarily ordered.boolean
isSolvable()
Please note that producing a pseudoinverse and/or a least squares solution is ok! The return value, of this method, is not an indication of if the decomposed matrix is square, has full rank, is postive definite or whatever.protected MatrixStore<java.lang.Double>
makeD(double[] d, double[] e)
PhysicalStore<java.lang.Double>
preallocate(Structure2D template)
Will create a PhysicalStore instance suitable for use withInverterTask.invert(Access2D, PhysicalStore)
.PhysicalStore<java.lang.Double>
preallocate(Structure2D templateBody, Structure2D templateRHS)
Will create a PhysicalStore instance suitable for use withSolverTask.solve(Access2D, Access2D, PhysicalStore)
.-
Methods inherited from class org.ojalgo.matrix.decomposition.RawEigenvalue
calculateDeterminant, checkSolvability, computeValuesOnly, decompose, doGeneral, doSymmetric, getD, getDeterminant, getEigenvalues, getEigenvalues, getImaginaryParts, getInverse, getInverse, getRealParts, getSolution, getTrace, getV, invert, reset, solve, solve
-
Methods inherited from class org.ojalgo.matrix.decomposition.RawDecomposition
allocate, checkSymmetry, collect, function, getColDim, getInternalData, getInternalStore, getRowDim, make, makeDiagonal, newRawStore, reset, scalar, wrap, wrap
-
Methods inherited from class org.ojalgo.matrix.decomposition.AbstractDecomposition
computed, countColumns, countRows, getDimensionalEpsilon, isAspectRatioNormal, isComputed
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.ojalgo.matrix.decomposition.Eigenvalue
getEigenpair, getEigenpairs, getEigenvectors, reconstruct
-
Methods inherited from interface org.ojalgo.matrix.task.InverterTask
invert, invert, preallocate
-
Methods inherited from interface org.ojalgo.matrix.transformation.InvertibleFactor
btran
-
Methods inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition
decompose, isComputed, reset
-
Methods inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition.Determinant
toDeterminantProvider
-
Methods inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition.Hermitian
checkAndDecompose
-
Methods inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition.Solver
compute, ftran, ftran, getInverse, getInverse, getSolution, invert, solve, toInverseProvider, toSolutionProvider
-
Methods inherited from interface org.ojalgo.matrix.task.SolverTask
preallocate, solve, solve
-
Methods inherited from interface org.ojalgo.structure.Structure2D
count, countColumns, countRows, firstInColumn, firstInRow, getColDim, getMaxDim, getMinDim, getRowDim, isEmpty, isFat, isScalar, isSquare, isTall, isVector, limitOfColumn, limitOfRow, size
-
-
-
-
Method Detail
-
btran
public void btran(PhysicalStore<java.lang.Double> arg)
Description copied from interface:InvertibleFactor
Backwards-transformationSolve [x]T[A] = [b]T (equivalent to [A]T[x] = [b]) by transforming [b] into [x] in-place.
- Specified by:
btran
in interfaceInvertibleFactor<java.lang.Double>
- Parameters:
arg
- [b] transformed into [x]
-
getSolution
public MatrixStore<java.lang.Double> getSolution(Access2D.Collectable<java.lang.Double,? super PhysicalStore<java.lang.Double>> rhs)
Description copied from interface:MatrixDecomposition.Solver
[A][X]=[B] or [this][return]=[rhs]- Specified by:
getSolution
in interfaceMatrixDecomposition.Solver<java.lang.Double>
-
isHermitian
public boolean isHermitian()
Description copied from interface:Eigenvalue
If [A] is hermitian then [V][D][V]-1 becomes [Q][D][Q]H...- Specified by:
isHermitian
in interfaceEigenvalue<java.lang.Double>
-
isOrdered
public boolean isOrdered()
Description copied from interface:Eigenvalue
The eigenvalues in D (and the eigenvectors in V) are not necessarily ordered. This is a property of the algorithm/implementation, not the data.- Specified by:
isOrdered
in interfaceEigenvalue<java.lang.Double>
- Specified by:
isOrdered
in interfaceMatrixDecomposition.Ordered<java.lang.Double>
- Returns:
- true if they are ordered
-
isSolvable
public boolean isSolvable()
Description copied from interface:MatrixDecomposition.Solver
Please note that producing a pseudoinverse and/or a least squares solution is ok! The return value, of this method, is not an indication of if the decomposed matrix is square, has full rank, is postive definite or whatever. It's that in combination with the specific decomposition algorithm's capabilities.- Specified by:
isSolvable
in interfaceMatrixDecomposition.Solver<java.lang.Double>
- Overrides:
isSolvable
in classAbstractDecomposition<java.lang.Double>
- Returns:
- true if this matrix decomposition is in a state to be able to deliver an inverse or an equation system solution (with some degree of numerical stability).
-
preallocate
public PhysicalStore<java.lang.Double> preallocate(Structure2D template)
Description copied from interface:InverterTask
Will create a PhysicalStore instance suitable for use with
InverterTask.invert(Access2D, PhysicalStore)
.When inverting a matrix (mxn) the preallocated memory/matrix will typically be nxm (and of course most of the time A is square).
- Specified by:
preallocate
in interfaceInverterTask<java.lang.Double>
-
preallocate
public PhysicalStore<java.lang.Double> preallocate(Structure2D templateBody, Structure2D templateRHS)
Description copied from interface:SolverTask
Will create a PhysicalStore instance suitable for use with
SolverTask.solve(Access2D, Access2D, PhysicalStore)
. The dimensions of the returned instance is not specified by this interface - it is specified by the behaviour/requirements of each implementation.When solving an equation system [A][X]=[B] ([mxn][nxb]=[mxb]) the preallocated memory/matrix will typically be either mxb or nxb.
- Specified by:
preallocate
in interfaceSolverTask<java.lang.Double>
-
doDecompose
protected boolean doDecompose(double[][] data, boolean valuesOnly)
- Specified by:
doDecompose
in classRawEigenvalue
-
makeD
protected MatrixStore<java.lang.Double> makeD(double[] d, double[] e)
- Overrides:
makeD
in classRawEigenvalue
-
-