Interface Matrix

  • All Known Implementing Classes:
    AbstractMatrix, DenseMatrix

    public interface Matrix
    Interface for all double typed matrix implementation. It has been designed to be generic enough to allow dense and sparse matrix implementations. In the case of sparse matrix additional usage constraint could be added and specified in the javadoc for instance in the order a matrix has to be filled.
    Author:
    Geoffroy Jamgotchian
    • Method Detail

      • createFromColumn

        static Matrix createFromColumn​(double[] c,
                                       MatrixFactory matrixFactory)
        Utility method for creating a single column matrix from a java array.
        Parameters:
        c - a column array
        matrixFactory - matrix factory to allow creating the matrix with different implementations.
        Returns:
        the single column matrix
      • getRowCount

        int getRowCount()
        Get row count.
        Returns:
        row count
      • getColumnCount

        int getColumnCount()
        Get column count.
        Returns:
        column count
      • set

        void set​(int i,
                 int j,
                 double value)
        Set value at row i and column j.
        Parameters:
        i - row index
        j - column index
        value - the value to set at row i and column j
      • add

        void add​(int i,
                 int j,
                 double value)
        Add value at row i and column j.
        Parameters:
        i - row index
        j - column index
        value - the value to add at row i and column j
      • addAndGetElement

        Matrix.Element addAndGetElement​(int i,
                                        int j,
                                        double value)
        Add value at row i and column j and get an #Element to later update the element.
        Parameters:
        i - row index
        j - column index
        value - the value to add at row i and column j
        Returns:
        an element at row i and column j
      • reset

        void reset()
        Fill matrix with zeros.
      • decomposeLU

        LUDecomposition decomposeLU()
        Get LU decomposition utility class for this matrix.
        Returns:
        LU decomposition utility class for this matrix
      • times

        Matrix times​(Matrix other)
        Multiply the matrix by another one (this*other).
        Parameters:
        other - the other matrix
        Returns:
        the result of the multiplication of this matrix by the other one
      • toDense

        DenseMatrix toDense()
        Copy this matrix using a dense implementation. If already a dense matrix, this method is allowed to return this.
        Returns:
        a copy of the matrix with a dense implementation.
      • toSparse

        com.powsybl.math.matrix.SparseMatrix toSparse()
        Copy this matrix using a sparse implementation. If already a sparse matrix, this method is allowed to return this.
        Returns:
        a copy of the matrix with a sparse implementation.
      • to

        Matrix to​(MatrixFactory factory)
        Copy this matrix using another implementation. If already with the right implementation, this method is allowed to return this.
        Parameters:
        factory - a matrix factory to create the copy.
        Returns:
        a copy of the matrix
      • copy

        Matrix copy​(MatrixFactory factory)
        Copy this matrix using another implementation. This method is not allowed to return this.
        Parameters:
        factory - a matrix factory to create the copy.
        Returns:
        a copy of the matrix
      • print

        void print​(PrintStream out,
                   List<String> rowNames,
                   List<String> columnNames)
        Print the matrix to a stream. Row and column names are also printed to facilitate debugging.
        Parameters:
        out - the stream
        rowNames - row names
        columnNames - column names
      • print

        void print​(PrintStream out)
        Print the matrix to a stream.
        Parameters:
        out - the stream