Class PositiveSemiDefiniteMatrixNonNegativeDiagonal

All Implemented Interfaces:
Matrix, MatrixAccess, MatrixRing, MatrixTable, Densifiable, AbelianGroup<Matrix>, Monoid<Matrix>, Ring<Matrix>, Table, DeepCopyable

public class PositiveSemiDefiniteMatrixNonNegativeDiagonal extends PositiveDefiniteMatrixByPositiveDiagonal
This class "converts" a matrix into a symmetric, positive semi-definite matrix, if it is not already so, by forcing the negative diagonal entries in the eigen decomposition to 0.
  • Constructor Details

    • PositiveSemiDefiniteMatrixNonNegativeDiagonal

      public PositiveSemiDefiniteMatrixNonNegativeDiagonal(Matrix A, double epsilon)
      Constructs a positive semi-definite matrix by forcing the negative diagonal entries in the eigen decomposition to 0.
      Parameters:
      A - a matrix
      epsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0; used in the eigen decomposition (don't make it 0)