Class CompDiagMatrix

  • All Implemented Interfaces:
    java.lang.Iterable<MatrixEntry>, Matrix

    public class CompDiagMatrix
    extends AbstractMatrix
    Compressed diagonal storage (CDS) matrix
    • Constructor Detail

      • CompDiagMatrix

        public CompDiagMatrix​(MatrixVectorReader r)
                       throws java.io.IOException
        Constructor for CompDiagMatrix
        Parameters:
        r - Reader to get sparse matrix from
        Throws:
        java.io.IOException
      • CompDiagMatrix

        public CompDiagMatrix​(int numRows,
                              int numColumns,
                              int[] diagonal)
        Creates a new sparse matrix with the given diagonals preallocated. A negative index is a subdiagonal, positive is superdiagonal
      • CompDiagMatrix

        public CompDiagMatrix​(int numRows,
                              int numColumns)
        Creates a new sparse matrix without preallocation
      • CompDiagMatrix

        public CompDiagMatrix​(Matrix A,
                              int[] diagonal,
                              boolean deep)
        Creates a new sparse matrix copied from the given matrix. Can take a deep copy or a shallow copy. For the latter, the supplied matrix must be a CompDiagMatrix. Preallocation is also possible, but is only used for the deep copy.
      • CompDiagMatrix

        public CompDiagMatrix​(Matrix A,
                              int[] diagonal)
        Creates a new sparse matrix copied from the given matrix. Takes a deep copy, with possibility to specify preallocation
      • CompDiagMatrix

        public CompDiagMatrix​(Matrix A,
                              boolean deep)
        Creates a new sparse matrix copied from the given matrix. Can take a deep copy or a shallow copy. For the latter, the supplied matrix must be a CompDiagMatrix. No preallocation is done
      • CompDiagMatrix

        public CompDiagMatrix​(Matrix A)
        Creates a new sparse matrix copied from the given matrix. Takes a deep copy without preallocation
    • Method Detail

      • getDiagonals

        public double[][] getDiagonals()
        Returns the internal diagonal storage
      • getIndex

        public int[] getIndex()
        Returns the diagonal offsets
      • add

        public void add​(int row,
                        int column,
                        double value)
        Description copied from interface: Matrix
        A(row,column) += value
        Specified by:
        add in interface Matrix
        Overrides:
        add in class AbstractMatrix
      • get

        public double get​(int row,
                          int column)
        Description copied from interface: Matrix
        Returns A(row,column)
        Specified by:
        get in interface Matrix
        Overrides:
        get in class AbstractMatrix
      • set

        public void set​(int row,
                        int column,
                        double value)
        Description copied from interface: Matrix
        A(row,column) = value
        Specified by:
        set in interface Matrix
        Overrides:
        set in class AbstractMatrix
      • copy

        public Matrix copy()
        Description copied from interface: Matrix
        Creates a deep copy of the matrix
        Specified by:
        copy in interface Matrix
        Overrides:
        copy in class AbstractMatrix
        Returns:
        A
      • zero

        public Matrix zero()
        Description copied from interface: Matrix
        Zeros all the entries in the matrix, while preserving any underlying structure. Useful for general, unstructured matrices.
        Specified by:
        zero in interface Matrix
        Overrides:
        zero in class AbstractMatrix
        Returns:
        A
      • mult

        public Vector mult​(Vector x,
                           Vector y)
        Description copied from interface: Matrix
        y = A*x
        Specified by:
        mult in interface Matrix
        Overrides:
        mult in class AbstractMatrix
        Parameters:
        x - Vector of size A.numColumns()
        y - Vector of size A.numRows()
        Returns:
        y
      • multAdd

        public Vector multAdd​(double alpha,
                              Vector x,
                              Vector y)
        Description copied from interface: Matrix
        y = alpha*A*x + y
        Specified by:
        multAdd in interface Matrix
        Overrides:
        multAdd in class AbstractMatrix
        x - Vector of size A.numColumns()
        y - Vector of size A.numRows()
        Returns:
        y