Search in sources :

Example 21 with Matrix

use of org.apache.ignite.ml.math.Matrix in project ignite by apache.

the class LUDecompositionTest method getP.

/** */
@Test
public void getP() throws Exception {
    Matrix luDecompositionP = new LUDecomposition(testMatrix).getP();
    assertEquals("Unexpected row size.", testP.rowSize(), luDecompositionP.rowSize());
    assertEquals("Unexpected column size.", testP.columnSize(), luDecompositionP.columnSize());
    for (int i = 0; i < testP.rowSize(); i++) for (int j = 0; j < testP.columnSize(); j++) assertEquals("Unexpected value at (" + i + "," + j + ").", testP.getX(i, j), luDecompositionP.getX(i, j), 0.0000001d);
    luDecompositionP.destroy();
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix) DenseLocalOnHeapMatrix(org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix) Test(org.junit.Test)

Example 22 with Matrix

use of org.apache.ignite.ml.math.Matrix in project ignite by apache.

the class EigenDecompositionTest method test.

/** */
private void test(double[][] mRaw, double[] expRealEigenValues) {
    DenseLocalOnHeapMatrix m = new DenseLocalOnHeapMatrix(mRaw);
    EigenDecomposition decomposition = new EigenDecomposition(m);
    Matrix d = decomposition.getD();
    Matrix v = decomposition.getV();
    assertIsDiagonalNonZero(d);
    // check that d's diagonal consists of eigenvalues of m.
    assertDiagonalConsistsOfEigenvalues(m, d, v);
    // m = v d v^{-1} is equivalent to
    // m v = v d
    assertMatricesAreEqual(m.times(v), v.times(d));
    assertEigenvalues(decomposition, expRealEigenValues);
    decomposition.destroy();
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix) DenseLocalOnHeapMatrix(org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix) DenseLocalOnHeapMatrix(org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix)

Example 23 with Matrix

use of org.apache.ignite.ml.math.Matrix in project ignite by apache.

the class EigenDecompositionTest method testSymmetricMatrix.

/** */
@Test
public void testSymmetricMatrix() {
    EigenDecomposition decomposition = new EigenDecomposition(new DenseLocalOnHeapMatrix(new double[][] { { 1.0d, 0.0d, 0.0d, 1.0d }, { 0.0d, 1.0d, 0.0d, 1.0d }, { 0.0d, 0.0d, 2.0d, 0.0d }, { 1.0d, 1.0d, 0.0d, 2.0d } }));
    Matrix d = decomposition.getD();
    Matrix v = decomposition.getV();
    assertNotNull("Matrix d is expected to be not null.", d);
    assertNotNull("Matrix v is expected to be not null.", v);
    assertEquals("Unexpected rows in d matrix.", 4, d.rowSize());
    assertEquals("Unexpected cols in d matrix.", 4, d.columnSize());
    assertEquals("Unexpected rows in v matrix.", 4, v.rowSize());
    assertEquals("Unexpected cols in v matrix.", 4, v.columnSize());
    assertIsDiagonalNonZero(d);
    decomposition.destroy();
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix) DenseLocalOnHeapMatrix(org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix) DenseLocalOnHeapMatrix(org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix) Test(org.junit.Test)

Example 24 with Matrix

use of org.apache.ignite.ml.math.Matrix in project ignite by apache.

the class EigenDecompositionTest method testNonSquareMatrix.

/** */
@Test
public void testNonSquareMatrix() {
    EigenDecomposition decomposition = new EigenDecomposition(new DenseLocalOnHeapMatrix(new double[][] { { 1.0d, 0.0d, 0.0d }, { 0.0d, 1.0d, 0.0d }, { 0.0d, 0.0d, 2.0d }, { 1.0d, 1.0d, 0.0d } }));
    // todo find out why decomposition of 3X4 matrix throws row index exception
    Matrix d = decomposition.getD();
    Matrix v = decomposition.getV();
    assertNotNull("Matrix d is expected to be not null.", d);
    assertNotNull("Matrix v is expected to be not null.", v);
    assertEquals("Unexpected rows in d matrix.", 4, d.rowSize());
    assertEquals("Unexpected cols in d matrix.", 4, d.columnSize());
    assertEquals("Unexpected rows in v matrix.", 4, v.rowSize());
    assertEquals("Unexpected cols in v matrix.", 3, v.columnSize());
    assertIsDiagonal(d, true);
    decomposition.destroy();
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix) DenseLocalOnHeapMatrix(org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix) DenseLocalOnHeapMatrix(org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix) Test(org.junit.Test)

Example 25 with Matrix

use of org.apache.ignite.ml.math.Matrix in project ignite by apache.

the class LUDecompositionTest method matrixUtilTest.

/**
     * Test for {@link MatrixUtil} features (more specifically, we test matrix which does not have
     * a native like/copy methods support).
     */
@Test
public void matrixUtilTest() {
    LUDecomposition dec = new LUDecomposition(new PivotedMatrixView(testMatrix));
    Matrix luDecompositionL = dec.getL();
    assertEquals("Unexpected L row size.", testL.rowSize(), luDecompositionL.rowSize());
    assertEquals("Unexpected L column size.", testL.columnSize(), luDecompositionL.columnSize());
    for (int i = 0; i < testL.rowSize(); i++) for (int j = 0; j < testL.columnSize(); j++) assertEquals("Unexpected L value at (" + i + "," + j + ").", testL.getX(i, j), luDecompositionL.getX(i, j), 0.0000001d);
    Matrix luDecompositionU = dec.getU();
    assertEquals("Unexpected U row size.", testU.rowSize(), luDecompositionU.rowSize());
    assertEquals("Unexpected U column size.", testU.columnSize(), luDecompositionU.columnSize());
    for (int i = 0; i < testU.rowSize(); i++) for (int j = 0; j < testU.columnSize(); j++) assertEquals("Unexpected U value at (" + i + "," + j + ").", testU.getX(i, j), luDecompositionU.getX(i, j), 0.0000001d);
    Matrix luDecompositionP = dec.getP();
    assertEquals("Unexpected P row size.", testP.rowSize(), luDecompositionP.rowSize());
    assertEquals("Unexpected P column size.", testP.columnSize(), luDecompositionP.columnSize());
    for (int i = 0; i < testP.rowSize(); i++) for (int j = 0; j < testP.columnSize(); j++) assertEquals("Unexpected P value at (" + i + "," + j + ").", testP.getX(i, j), luDecompositionP.getX(i, j), 0.0000001d);
    dec.destroy();
}
Also used : PivotedMatrixView(org.apache.ignite.ml.math.impls.matrix.PivotedMatrixView) Matrix(org.apache.ignite.ml.math.Matrix) DenseLocalOnHeapMatrix(org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix) Test(org.junit.Test)

Aggregations

Matrix (org.apache.ignite.ml.math.Matrix)78 Test (org.junit.Test)38 DenseLocalOnHeapMatrix (org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix)25 ExternalizeTest (org.apache.ignite.ml.math.ExternalizeTest)17 Vector (org.apache.ignite.ml.math.Vector)7 DenseLocalOffHeapMatrix (org.apache.ignite.ml.math.impls.matrix.DenseLocalOffHeapMatrix)6 SparseLocalOnHeapMatrix (org.apache.ignite.ml.math.impls.matrix.SparseLocalOnHeapMatrix)6 RandomMatrix (org.apache.ignite.ml.math.impls.matrix.RandomMatrix)5 DenseLocalOnHeapVector (org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector)4 CardinalityException (org.apache.ignite.ml.math.exceptions.CardinalityException)3 UnsupportedOperationException (org.apache.ignite.ml.math.exceptions.UnsupportedOperationException)3 LUDecomposition (org.apache.ignite.ml.math.decompositions.LUDecomposition)2 PivotedMatrixView (org.apache.ignite.ml.math.impls.matrix.PivotedMatrixView)2 CholeskyDecomposition (org.apache.ignite.ml.math.decompositions.CholeskyDecomposition)1 ColumnIndexException (org.apache.ignite.ml.math.exceptions.ColumnIndexException)1 IndexException (org.apache.ignite.ml.math.exceptions.IndexException)1 RowIndexException (org.apache.ignite.ml.math.exceptions.RowIndexException)1 AbstractMatrix (org.apache.ignite.ml.math.impls.matrix.AbstractMatrix)1 MatrixView (org.apache.ignite.ml.math.impls.matrix.MatrixView)1 MatrixDelegateStorage (org.apache.ignite.ml.math.impls.storage.matrix.MatrixDelegateStorage)1