Class LU.LUMatrix

  • Enclosing interface:
    LU<T>

    public static final class LU.LUMatrix
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private double[][] LU
      Array for internal storage of decomposition.
      private int m
      Row and column dimensions, and pivot sign.
      private int n
      Row and column dimensions, and pivot sign.
      private int[] piv
      Internal storage of pivot vector.
      private int pivsign  
    • Constructor Summary

      Constructors 
      Constructor Description
      LUMatrix​(Matrix A)
      LU Decomposition
    • Field Detail

      • LU

        private final double[][] LU
        Array for internal storage of decomposition.
      • m

        private final int m
        Row and column dimensions, and pivot sign.
      • n

        private final int n
        Row and column dimensions, and pivot sign.
      • pivsign

        private int pivsign
      • piv

        private final int[] piv
        Internal storage of pivot vector.
    • Constructor Detail

      • LUMatrix

        public LUMatrix​(Matrix A)
        LU Decomposition
        Parameters:
        A - Rectangular matrix
    • Method Detail

      • isNonsingular

        public final boolean isNonsingular()
        Is the matrix nonsingular?
        Returns:
        true if U, and hence A, is nonsingular.
      • getPivot

        public final int[] getPivot()
        Return pivot permutation vector
        Returns:
        piv
      • getP

        public final Matrix getP()
      • getDoublePivot

        public final double[] getDoublePivot()
        Return pivot permutation vector as a one-dimensional double array
        Returns:
        (double) piv
      • det

        public final double det()
        Determinant
        Returns:
        det(A)
        Throws:
        java.lang.IllegalArgumentException - Matrix must be square
      • solve

        public final DenseDoubleMatrix2D solve​(Matrix B)
        Solve A*X = B
        Parameters:
        B - A Matrix with as many rows as A and any number of columns.
        Returns:
        X so that L*U*X = B(piv,:)
        Throws:
        java.lang.IllegalArgumentException - Matrix row dimensions must agree.
        java.lang.RuntimeException - Matrix is singular.