Class DefaultDeflationCriterion

  • All Implemented Interfaces:
    DeflationCriterion

    public class DefaultDeflationCriterion
    extends Object
    implements DeflationCriterion
    The default deflation criterion is to use eq. 7.5.2 in Golub and van Loan: H[i,j] is negligible when
    | H[i,j] | < tol * (| H[i-1,j] | + | H[i,j+1] |)
    or, when
    | H[i-1,j] | + | H[i,j+1] | == 0
    and to use eq. 2.2 in Matrix Algorithms, Volume II by Steward G. W.
    | H[i,j] | < tol * ||A||F
    • Field Detail

      • DEFAULT_THRESHOLD

        public static final double DEFAULT_THRESHOLD
        The default tolerance parameter tol.
        See Also:
        Constant Field Values
    • Constructor Detail

      • DefaultDeflationCriterion

        public DefaultDeflationCriterion()
        Constructs the default deflation criterion.
      • DefaultDeflationCriterion

        public DefaultDeflationCriterion​(double threshold)
        Constructs the default deflation criterion.
        Parameters:
        threshold - the tolerance in Steward's deflation criterion
      • DefaultDeflationCriterion

        public DefaultDeflationCriterion​(DefaultDeflationCriterion.MatrixNorm matrixNorm)
        Constructs the default deflation criterion, with the algorithm for computing matrix norm for the matrix argument in isNegligible().

        Note: for special types of matrices, a fast implementation of matrix norm can speed up the whole process.

        Parameters:
        matrixNorm - the matrix norm algorithm
      • DefaultDeflationCriterion

        public DefaultDeflationCriterion​(double threshold,
                                         DefaultDeflationCriterion.MatrixNorm matrixNorm)
        Constructs the default deflation criterion, with the algorithm for computing matrix norm for the matrix argument in isNegligible().

        Note: for special types of matrices, a fast implementation of matrix norm can speed up the whole process.

        Parameters:
        threshold - the tolerance in Steward's deflation criterion
        matrixNorm - the matrix norm algorithm
    • Method Detail

      • isNegligible

        public boolean isNegligible​(Matrix H,
                                    int i,
                                    int j,
                                    double epsilon)
        Checks if H[i,j] is negligible by Steward's deflation criterion.
        Specified by:
        isNegligible in interface DeflationCriterion
        Parameters:
        H - a matrix
        i - a row index
        j - a column index
        epsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0
        Returns:
        true if
        | H[i,j] | < tol * (| H[i-1,j] | + | H[i,j+1] |)