public class DComplexFactory2D extends PersistentObject
Construction | Use idioms like ComplexFactory2D.dense.make(4,4) to construct dense matrices, ComplexFactory2D.sparse.make(4,4) to construct sparse matrices. |
Construction with initial values | Use other make methods to construct matrices with given initial values. |
Appending rows and columns | Use methods appendColumns , appendRows and repeat to append
rows and columns. |
General block matrices | Use methods compose and
decompose to work
with general block matrices. |
Diagonal matrices | Use methods diagonal(vector) ,
diagonal(matrix) and
identity to work with diagonal matrices. |
Diagonal block matrices | Use method
composeDiagonal to work with diagonal block matrices. |
Random | Use methods random and
sample to construct random matrices.
|
If the factory is used frequently it might be useful to streamline the notation. For example by aliasing:
ComplexFactory2D F = ComplexFactory2D.dense; F.make(4,4); F.random(4,4); ... |
Modifier and Type | Field and Description |
---|---|
static DComplexFactory2D |
dense
A factory producing dense matrices.
|
static DComplexFactory2D |
sparse
A factory producing sparse hash matrices.
|
Modifier and Type | Method and Description |
---|---|
DComplexMatrix2D |
appendColumn(DComplexMatrix2D A,
DComplexMatrix1D b)
C = A||b; Constructs a new matrix which is the column-wise concatenation
of two other matrices.
|
DComplexMatrix2D |
appendColumns(DComplexMatrix2D A,
DComplexMatrix2D B)
C = A||B; Constructs a new matrix which is the column-wise concatenation
of two other matrices.
|
DComplexMatrix2D |
appendRow(DComplexMatrix2D A,
DComplexMatrix1D b)
C = A||b; Constructs a new matrix which is the row-wise concatenation of
two other matrices.
|
DComplexMatrix2D |
appendRows(DComplexMatrix2D A,
DComplexMatrix2D B)
C = A||B; Constructs a new matrix which is the row-wise concatenation of
two other matrices.
|
DComplexMatrix2D |
compose(DComplexMatrix2D[][] parts)
Constructs a block matrix made from the given parts.
|
DComplexMatrix2D |
composeBidiagonal(DComplexMatrix2D A,
DComplexMatrix2D B)
Constructs a bidiagonal block matrix from the given parts.
|
DComplexMatrix2D |
composeDiagonal(DComplexMatrix2D A,
DComplexMatrix2D B)
Constructs a diagonal block matrix from the given parts (the direct
sum of two matrices).
|
DComplexMatrix2D |
composeDiagonal(DComplexMatrix2D A,
DComplexMatrix2D B,
DComplexMatrix2D C)
Constructs a diagonal block matrix from the given parts.
|
void |
decompose(DComplexMatrix2D[][] parts,
DComplexMatrix2D matrix)
Splits a block matrix into its constituent blocks; Copies blocks of a
matrix into the given parts.
|
void |
demo1()
Demonstrates usage of this class.
|
void |
demo2()
Demonstrates usage of this class.
|
DComplexMatrix2D |
diagonal(DComplexMatrix1D vector)
Constructs a new diagonal matrix whose diagonal elements are the elements
of vector.
|
DComplexMatrix1D |
diagonal(DComplexMatrix2D A)
Constructs a new vector consisting of the diagonal elements of A
.
|
DComplexMatrix2D |
identity(int rowsAndColumns)
Constructs an identity matrix (having ones on the diagonal and zeros
elsewhere).
|
DComplexMatrix2D |
make(double[][] values)
Constructs a matrix with the given cell values.
|
DComplexMatrix2D |
make(int rows,
int columns)
Constructs a matrix with the given shape, each cell initialized with
zero.
|
DComplexMatrix2D |
make(int rows,
int columns,
double[] initialValue)
Constructs a matrix with the given shape, each cell initialized with the
given value.
|
DComplexMatrix2D |
random(int rows,
int columns)
Constructs a matrix with uniformly distributed values in (0,1)
(exclusive).
|
DComplexMatrix2D |
repeat(DComplexMatrix2D A,
int rowRepeat,
int columnRepeat)
C = A||A||..||A; Constructs a new matrix which is duplicated both along
the row and column dimension.
|
DComplexMatrix2D |
sample(DComplexMatrix2D matrix,
double[] value,
double nonZeroFraction)
Modifies the given matrix to be a randomly sampled matrix.
|
DComplexMatrix2D |
sample(int rows,
int columns,
double[] value,
double nonZeroFraction)
Constructs a randomly sampled matrix with the given shape.
|
clone
public static final DComplexFactory2D dense
public static final DComplexFactory2D sparse
public DComplexMatrix2D appendColumns(DComplexMatrix2D A, DComplexMatrix2D B)
0 1 2 3 4 5 appendColumns 6 7 8 9 --> 0 1 2 6 7 3 4 5 8 9
public DComplexMatrix2D appendColumn(DComplexMatrix2D A, DComplexMatrix1D b)
0 1 2 3 4 5 appendColumn 6 8 --> 0 1 2 6 3 4 5 8
public DComplexMatrix2D appendRows(DComplexMatrix2D A, DComplexMatrix2D B)
public DComplexMatrix2D appendRow(DComplexMatrix2D A, DComplexMatrix1D b)
public DComplexMatrix2D compose(DComplexMatrix2D[][] parts)
decompose(DComplexMatrix2D[][], DComplexMatrix2D)
.
All matrices of a given column within parts must have the same number of columns. All matrices of a given row within parts must have the same number of rows. Otherwise an IllegalArgumentException is thrown. Note that nulls within parts[row,col] are an exception to this rule: they are ignored. Cells are copied.
IllegalArgumentException
- subject to the conditions outlined above.public DComplexMatrix2D composeDiagonal(DComplexMatrix2D A, DComplexMatrix2D B)
A 0 0 B(The direct sum has A.rows()+B.rows() rows and A.columns()+B.columns() columns). Cells are copied.
public DComplexMatrix2D composeDiagonal(DComplexMatrix2D A, DComplexMatrix2D B, DComplexMatrix2D C)
A 0 0 0 B 0 0 0 Cfrom the given parts. Cells are copied.
public DComplexMatrix2D composeBidiagonal(DComplexMatrix2D A, DComplexMatrix2D B)
public void decompose(DComplexMatrix2D[][] parts, DComplexMatrix2D matrix)
compose(DComplexMatrix2D[][])
.
All matrices of a given column within parts must have the same number of columns. All matrices of a given row within parts must have the same number of rows. Otherwise an IllegalArgumentException is thrown. Note that nulls within parts[row,col] are an exception to this rule: they are ignored. Cells are copied.
IllegalArgumentException
- subject to the conditions outlined above.public void demo1()
public void demo2()
public DComplexMatrix2D diagonal(DComplexMatrix1D vector)
public DComplexMatrix1D diagonal(DComplexMatrix2D A)
A
- the matrix, need not be square.public DComplexMatrix2D identity(int rowsAndColumns)
public DComplexMatrix2D make(double[][] values)
The values are copied. So subsequent changes in values are not reflected in the matrix, and vice-versa.
values
- The values to be filled into the new matrix.IllegalArgumentException
- if
for any 1 <= row < values.length: values[row].length != values[row-1].length
.public DComplexMatrix2D make(int rows, int columns)
public DComplexMatrix2D make(int rows, int columns, double[] initialValue)
public DComplexMatrix2D random(int rows, int columns)
public DComplexMatrix2D repeat(DComplexMatrix2D A, int rowRepeat, int columnRepeat)
public DComplexMatrix2D sample(int rows, int columns, double[] value, double nonZeroFraction)
IllegalArgumentException
- if nonZeroFraction < 0 || nonZeroFraction > 1.DoubleRandomSampler
public DComplexMatrix2D sample(DComplexMatrix2D matrix, double[] value, double nonZeroFraction)
IllegalArgumentException
- if nonZeroFraction < 0 || nonZeroFraction > 1.DoubleRandomSampler
Jump to the Parallel Colt Homepage