org.jutil.math.matrix
Class  SchurEigenvalueDecomposer
java.lang.Object
  |
  +--org.jutil.math.matrix.SchurEigenvalueDecomposer
- All Implemented Interfaces: 
- EigenvalueDecomposer
- public class SchurEigenvalueDecomposer- extends java.lang.Object- implements EigenvalueDecomposer
A class of eigenvalue decomposers using an explict shift algorithm.
 
 
 
| Methods inherited from class java.lang.Object | 
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
CVS_REVISION
public static final java.lang.String CVS_REVISION
SchurEigenvalueDecomposer
public SchurEigenvalueDecomposer(SchurDecomposer decomposer,
                                 LinSolver linSolver)
- Initialize a new SchurEigenvalueDecomposer with the given
 HessenbergReducer
 
- 
- Parameters:
- decomposer- The SchurDecomposer to be used by this SchurEigenvalueDecomposer.
- linSolver- The LinSolver to be used by this SchurEigenvalueDecomposer.
 
- 
- Specifications:
- 
 public behavior
 requires decomposer != null;
 requires linSolver != null;
 ensures getSchurDecomposer() == decomposer;
 ensures getLinSolver() == linSolver;
 
 
getSchurDecomposer
public SchurDecomposer getSchurDecomposer()
- Return the SchurDecomposer used by this SchurEigenvalueDecomposer
 to calculate eigenvalue decompositions.
- 
- Specifications:
- 
 public behavior
 ensures \result  != null;
 
 
getLinSolver
public LinSolver getLinSolver()
- Return the LinSolver used by this SchurEigenvalueDecomposer
 to calculate eigenvalue decompositions.
- 
- Specifications:
- 
 public behavior
 ensures \result  != null;
 
 
decompose
public EigenvalueDecomposition decompose(Matrix matrix)
- See superclass
- 
- Specifications inherited from overridden method in interface EigenvalueDecomposer:
- 
 public behavior
 requires matrix != null;
 requires matrix.getNbRows() == matrix.getNbColumns();
 requires (* matrix is not singular *);
 ensures \result  != null;
 ensures (* \result.getEigenvectors().times(\result.lambda()).equals(matrix) *);
 ensures (* (\forall int i; i>=1 && i<= matrix.getNbRows();            \result.getEigenvectors().times(\result.getEigenvector(i)).equals(\result.getEigenvector(i).times(\result.getEigenvalue(i))) *);
 ensures \result .getEigenvectors().getNbRows() == matrix.getNbRows();
 ensures \result .getEigenvectors().getNbColumns() == matrix.getNbColumns();