public class SparseMatrix extends Object implements Matrix
1.0 0.0 4.0
0.0 3.0 5.0
2.0 0.0 6.0
is stored as values: [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
,
rowIndices=[0, 2, 1, 0, 1, 2]
, colPointers=[0, 2, 3, 6]
.
Constructor and Description |
---|
SparseMatrix(int numRows,
int numCols,
int[] colPtrs,
int[] rowIndices,
double[] values)
Column-major sparse matrix.
|
SparseMatrix(int numRows,
int numCols,
int[] colPtrs,
int[] rowIndices,
double[] values,
boolean isTransposed) |
Modifier and Type | Method and Description |
---|---|
double |
apply(int i,
int j)
Gets the (i, j)-th element.
|
int[] |
colPtrs() |
SparseMatrix |
copy()
Get a deep copy of the matrix.
|
void |
foreachActive(scala.Function3<Object,Object,Object,scala.runtime.BoxedUnit> f)
Applies a function
f to all the active elements of dense and sparse matrix. |
static SparseMatrix |
fromCOO(int numRows,
int numCols,
scala.collection.Iterable<scala.Tuple3<Object,Object,Object>> entries)
Generate a
SparseMatrix from Coordinate List (COO) format. |
int |
index(int i,
int j)
Return the index for the (i, j)-th element in the backing array.
|
boolean |
isTransposed()
Flag that keeps track whether the matrix is transposed or not.
|
SparseMatrix |
map(scala.Function1<Object,Object> f)
Map the values of this matrix using a function.
|
int |
numCols()
Number of columns.
|
int |
numRows()
Number of rows.
|
int[] |
rowIndices() |
static SparseMatrix |
spdiag(Vector vector)
Generate a diagonal matrix in
SparseMatrix format from the supplied values. |
static SparseMatrix |
speye(int n)
Generate an Identity Matrix in
SparseMatrix format. |
static SparseMatrix |
sprand(int numRows,
int numCols,
double density,
java.util.Random rng)
Generate a
SparseMatrix consisting of i.i.d . |
static SparseMatrix |
sprandn(int numRows,
int numCols,
double density,
java.util.Random rng)
Generate a
SparseMatrix consisting of i.i.d . |
breeze.linalg.Matrix<Object> |
toBreeze()
Converts to a breeze matrix.
|
DenseMatrix |
toDense()
Generate a
DenseMatrix from the given SparseMatrix . |
SparseMatrix |
transpose()
Transpose the Matrix.
|
SparseMatrix |
update(scala.Function1<Object,Object> f)
Update all the values of this matrix using the function f.
|
void |
update(int i,
int j,
double v)
Update element at (i, j)
|
double[] |
values() |
public SparseMatrix(int numRows, int numCols, int[] colPtrs, int[] rowIndices, double[] values, boolean isTransposed)
public SparseMatrix(int numRows, int numCols, int[] colPtrs, int[] rowIndices, double[] values)
1.0 0.0 4.0
0.0 3.0 5.0
2.0 0.0 6.0
is stored as values: [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
,
rowIndices=[0, 2, 1, 0, 1, 2]
, colPointers=[0, 2, 3, 6]
.
numRows
- number of rowsnumCols
- number of columnscolPtrs
- the index corresponding to the start of a new columnrowIndices
- the row index of the entry. They must be in strictly increasing
order for each columnvalues
- non-zero matrix entries in column majorpublic static SparseMatrix fromCOO(int numRows, int numCols, scala.collection.Iterable<scala.Tuple3<Object,Object,Object>> entries)
SparseMatrix
from Coordinate List (COO) format. Input must be an array of
(i, j, value) tuples. Entries that have duplicate values of i and j are
added together. Tuples where value is equal to zero will be omitted.numRows
- number of rows of the matrixnumCols
- number of columns of the matrixentries
- Array of (i, j, value) tuplesSparseMatrix
public static SparseMatrix speye(int n)
SparseMatrix
format.n
- number of rows and columns of the matrixSparseMatrix
with size n
x n
and values of ones on the diagonalpublic static SparseMatrix sprand(int numRows, int numCols, double density, java.util.Random rng)
SparseMatrix
consisting of i.i.d
. uniform random numbers. The number of non-zero
elements equal the ceiling of numRows
x numCols
x density
numRows
- number of rows of the matrixnumCols
- number of columns of the matrixdensity
- the desired density for the matrixrng
- a random number generatorSparseMatrix
with size numRows
x numCols
and values in U(0, 1)public static SparseMatrix sprandn(int numRows, int numCols, double density, java.util.Random rng)
SparseMatrix
consisting of i.i.d
. gaussian random numbers.numRows
- number of rows of the matrixnumCols
- number of columns of the matrixdensity
- the desired density for the matrixrng
- a random number generatorSparseMatrix
with size numRows
x numCols
and values in N(0, 1)public static SparseMatrix spdiag(Vector vector)
SparseMatrix
format from the supplied values.vector
- a Vector
that will form the values on the diagonal of the matrixSparseMatrix
with size values.length
x values.length
and non-zero
values
on the diagonalpublic int numRows()
Matrix
public int numCols()
Matrix
public int[] colPtrs()
public int[] rowIndices()
public double[] values()
public boolean isTransposed()
Matrix
isTransposed
in interface Matrix
public breeze.linalg.Matrix<Object> toBreeze()
Matrix
public double apply(int i, int j)
Matrix
public int index(int i, int j)
Matrix
public void update(int i, int j, double v)
Matrix
public SparseMatrix copy()
Matrix
public SparseMatrix map(scala.Function1<Object,Object> f)
Matrix
SparseMatrix
.public SparseMatrix update(scala.Function1<Object,Object> f)
Matrix
SparseMatrix
.public SparseMatrix transpose()
Matrix
public void foreachActive(scala.Function3<Object,Object,Object,scala.runtime.BoxedUnit> f)
Matrix
f
to all the active elements of dense and sparse matrix. The ordering
of the elements are not defined.
foreachActive
in interface Matrix
f
- the function takes three parameters where the first two parameters are the row
and column indices respectively with the type Int
, and the final parameter is the
corresponding value in the matrix with type Double
.public DenseMatrix toDense()
DenseMatrix
from the given SparseMatrix
. The new matrix will have isTransposed
set to false.