Package com.powsybl.math.matrix
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
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
Matrix.Element
An element of the matrix.static interface
Matrix.ElementHandler
Handler used to iterate a matrix and get values.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description void
add(int i, int j, double value)
Add value at rowi
and columnj
.Matrix.Element
addAndGetElement(int i, int j, double value)
Add value at rowi
and columnj
and get an#Element
to later update the element.default void
addValue(int i, int j, double value)
Deprecated.Useadd(int, int, double)
instead.Matrix
copy(MatrixFactory factory)
Copy this matrix using another implementation.static Matrix
createFromColumn(double[] c, MatrixFactory matrixFactory)
Utility method for creating a single column matrix from a java array.static Matrix
createFromRow(double[] r, MatrixFactory matrixFactory)
Utility method for creating a single row matrix from a java array.LUDecomposition
decomposeLU()
Get LU decomposition utility class for this matrix.int
getColumnCount()
Get column count.default int
getM()
Deprecated.UsegetRowCount()
instead.default int
getN()
Deprecated.UsegetColumnCount()
instead.int
getRowCount()
Get row count.void
iterateNonZeroValue(Matrix.ElementHandler handler)
Iterate over non zero values of the matrix.void
iterateNonZeroValueOfColumn(int j, Matrix.ElementHandler handler)
Iterate over non zero values of thej
column of the matrix.void
print(PrintStream out)
Print the matrix to a stream.void
print(PrintStream out, List<String> rowNames, List<String> columnNames)
Print the matrix to a stream.void
reset()
Fill matrix with zeros.void
set(int i, int j, double value)
Set value at rowi
and columnj
.default void
setValue(int i, int j, double value)
Deprecated.Useset(int, int, double)
instead.Matrix
times(Matrix other)
Multiply the matrix by another one (this*other).Matrix
to(MatrixFactory factory)
Copy this matrix using another implementation.DenseMatrix
toDense()
Copy this matrix using a dense implementation.com.powsybl.math.matrix.SparseMatrix
toSparse()
Copy this matrix using a sparse implementation.
-
-
-
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 arraymatrixFactory
- matrix factory to allow creating the matrix with different implementations.- Returns:
- the single column matrix
-
createFromRow
static Matrix createFromRow(double[] r, MatrixFactory matrixFactory)
Utility method for creating a single row matrix from a java array.- Parameters:
r
- a row arraymatrixFactory
- matrix factory to allow creating the matrix with different implementations.- Returns:
- the single row matrix
-
getRowCount
int getRowCount()
Get row count.- Returns:
- row count
-
getM
@Deprecated default int getM()
Deprecated.UsegetRowCount()
instead.
-
getColumnCount
int getColumnCount()
Get column count.- Returns:
- column count
-
getN
@Deprecated default int getN()
Deprecated.UsegetColumnCount()
instead.
-
set
void set(int i, int j, double value)
Set value at rowi
and columnj
.- Parameters:
i
- row indexj
- column indexvalue
- the value to set at rowi
and columnj
-
setValue
@Deprecated default void setValue(int i, int j, double value)
Deprecated.Useset(int, int, double)
instead.
-
add
void add(int i, int j, double value)
Add value at rowi
and columnj
.- Parameters:
i
- row indexj
- column indexvalue
- the value to add at rowi
and columnj
-
addAndGetElement
Matrix.Element addAndGetElement(int i, int j, double value)
Add value at rowi
and columnj
and get an#Element
to later update the element.- Parameters:
i
- row indexj
- column indexvalue
- the value to add at rowi
and columnj
- Returns:
- an element at row
i
and columnj
-
addValue
@Deprecated default void addValue(int i, int j, double value)
Deprecated.Useadd(int, int, double)
instead.
-
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
-
iterateNonZeroValue
void iterateNonZeroValue(Matrix.ElementHandler handler)
Iterate over non zero values of the matrix. At each non zero valueMatrix.ElementHandler.onElement(int, int, double)
is called.- Parameters:
handler
- the element handler
-
iterateNonZeroValueOfColumn
void iterateNonZeroValueOfColumn(int j, Matrix.ElementHandler handler)
Iterate over non zero values of thej
column of the matrix. At each non zero valueMatrix.ElementHandler.onElement(int, int, double)
is called.- Parameters:
j
- column indexhandler
- the element handler
-
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 streamrowNames
- row namescolumnNames
- column names
-
print
void print(PrintStream out)
Print the matrix to a stream.- Parameters:
out
- the stream
-
-