@CodeReview(reviewer="Jonathan McClain",date="2006-05-16",changesNeeded=true,comments={"Comments indicated by triple slashes","Some refactoring needed here.","Another review needed after refactoring."},response={@CodeReviewResponse(respondent="Kevin R. Dixon",date="2006-05-17",moreChangesNeeded=true,comments="Fixes from J.T.\'s code review"),@CodeReviewResponse(respondent="Jonathan McClain",date="2006-05-17",moreChangesNeeded=false,comments="Rechecking after changes were made. Looks good now.")}) public abstract class AbstractEigenDecomposition extends java.lang.Object implements EigenDecomposition
| Modifier | Constructor and Description | 
|---|---|
| protected  | AbstractEigenDecomposition(ComplexNumber[] eigenValues,
                          Matrix eigenVectorsRealPart,
                          Matrix eigenVectorsImaginaryPart)Stores the given eigenvalues and eigenvectors internally, the eigenvalues
 and eigenvectors will not be sorted. | 
| protected  | AbstractEigenDecomposition(ComplexNumber[] eigenValues,
                          Matrix eigenVectorsRealPart,
                          Matrix eigenVectorsImaginaryPart,
                          boolean sort)Creates a new eigendecomposition using the given eigenvalues and
 eigenvectors... | 
| Modifier and Type | Method and Description | 
|---|---|
| ComplexNumber | getEigenValue(int index)gets the indexed eigenvalue | 
| ComplexNumber[] | getEigenValues()Getter for eigenValues | 
| Matrix | getEigenVectorsImaginaryPart()gets the imaginary part of the eienvector, where the ith eigenvector is the
 ith column | 
| Matrix | getEigenVectorsRealPart()getter for eigenvectorsrealPart | 
| ComplexNumber | getLogDeterminant()Computes the natural logarithm determinant from the collection of
 eigenvalues | 
| protected void | setEigenDecomposition(ComplexNumber[] eigenValues,
                     Matrix eigenVectorsRealPart,
                     Matrix eigenVectorsImaginaryPart,
                     boolean sort)Sets the eigen decomposition for this | 
| protected void | setEigenValues(ComplexNumber[] eigenValues)setter for eigenValues | 
| void | setEigenVectorsImaginaryPart(Matrix eigenVectorsImaginaryPart)setter for the imaginary part of the eienvector, where the ith eigenvector is
 the ith column | 
| protected void | setEigenVectorsRealPart(Matrix eigenVectorsRealPart)setter for eigenVectorsRealPart, where the ith eigenvector is the ith column | 
| protected void | setUnsortedEigenDecomposition(ComplexNumber[] eigenValues,
                             Matrix eigenVectorsRealPart,
                             Matrix eigenVectorsImaginaryPart)Creates a new eigendecomposition using the given eigenvalues and
 eigenvectors... | 
| protected void | sortAndSetEigenDecomposition(ComplexNumber[] eigenValues,
                            Matrix eigenVectorsRealPart,
                            Matrix eigenVectorsImaginaryPart)Sorts the eigendecomposition in descending order of the value of the
 magnitudes of the eigenvalues | 
protected AbstractEigenDecomposition(ComplexNumber[] eigenValues, Matrix eigenVectorsRealPart, Matrix eigenVectorsImaginaryPart)
eigenValues - array of complex-valued eigenvalueeigenVectorsRealPart - matrix of the real parts of the eigenvectorseigenVectorsImaginaryPart - matrix of the imaginary parts of the eigenvectorsprotected AbstractEigenDecomposition(ComplexNumber[] eigenValues, Matrix eigenVectorsRealPart, Matrix eigenVectorsImaginaryPart, boolean sort)
eigenValues - array of complex-valued eigenvalues to storeeigenVectorsRealPart - matrix where the ith column of the matrix
          contains the real part of the ith eigenvector of the
          underlying matrixeigenVectorsImaginaryPart - matrix where the ith column of the
          matrix contains the real part of the ith eigenvector of the
          underlying matrixsort - if true, then the constructor will sort the eigenvectors and
          eigenvectors by descending magnitude of the eigenvalue.  In
          this case, eigenValues[0] will be the largest magnitude and
          eigenVectors(:,0) is its corresponding eigenvector.protected void setEigenDecomposition(ComplexNumber[] eigenValues, Matrix eigenVectorsRealPart, Matrix eigenVectorsImaginaryPart, boolean sort)
eigenValues - array of eigenvalues for the underlying matrixeigenVectorsRealPart - real part of the eigenvectors for the underlying matrixeigenVectorsImaginaryPart - imaginary part of the eigenvalues for the underlying matrixsort - true to sort eigen values/vectors by descending order of magnitude of the
 eigenvaluesprotected void sortAndSetEigenDecomposition(ComplexNumber[] eigenValues, Matrix eigenVectorsRealPart, Matrix eigenVectorsImaginaryPart)
eigenValues - array of eigenvalues for the underlying matrixeigenVectorsRealPart - real part of the eigenvectors for the underlying matrixeigenVectorsImaginaryPart - imaginary part of the eigenvalues for the underlying matrixprotected void setUnsortedEigenDecomposition(ComplexNumber[] eigenValues, Matrix eigenVectorsRealPart, Matrix eigenVectorsImaginaryPart)
eigenValues - array of eigenvalues for the underlying matrixeigenVectorsRealPart - real part of the eigenvectors for the underlying matrixeigenVectorsImaginaryPart - imaginary part of the eigenvalues for the underlying matrixpublic ComplexNumber[] getEigenValues()
getEigenValues in interface EigenDecompositionprotected void setEigenValues(ComplexNumber[] eigenValues)
eigenValues - eigenvalues to setpublic ComplexNumber getEigenValue(int index)
getEigenValue in interface EigenDecompositionindex - zero-based index into the eigenvalue arraypublic Matrix getEigenVectorsRealPart()
getEigenVectorsRealPart in interface EigenDecompositionprotected void setEigenVectorsRealPart(Matrix eigenVectorsRealPart)
eigenVectorsRealPart - real part of the eienvector, where the ith eigenvector is the ith columnpublic Matrix getEigenVectorsImaginaryPart()
getEigenVectorsImaginaryPart in interface EigenDecompositionpublic void setEigenVectorsImaginaryPart(Matrix eigenVectorsImaginaryPart)
eigenVectorsImaginaryPart - imaginary part of the eienvector, where the ith eigenvector is the ith columnpublic ComplexNumber getLogDeterminant()
getLogDeterminant in interface EigenDecomposition