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. 
 | 
clonepublic 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 C
 
 
 
 from 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.DoubleRandomSamplerpublic DComplexMatrix2D sample(DComplexMatrix2D matrix, double[] value, double nonZeroFraction)
IllegalArgumentException - if nonZeroFraction < 0 || nonZeroFraction > 1.DoubleRandomSamplerJump to the Parallel Colt Homepage