Search in sources :

Example 11 with Matrix

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

the class DiagonalMatrixTest method testSetGet.

/** */
@Test
public void testSetGet() {
    verifyDiagonal(testMatrix);
    final int size = MathTestConstants.STORAGE_SIZE;
    for (Matrix m : new Matrix[] { new DenseLocalOnHeapMatrix(size + 1, size), new DenseLocalOnHeapMatrix(size, size + 1) }) {
        fillMatrix(m);
        verifyDiagonal(new DiagonalMatrix(m));
    }
    final double[] data = new double[size];
    for (int i = 0; i < size; i++) data[i] = 1 + i;
    final Matrix m = new DiagonalMatrix(new DenseLocalOnHeapVector(data));
    assertEquals("Rows in matrix constructed from vector", size, m.rowSize());
    assertEquals("Cols in matrix constructed from vector", size, m.columnSize());
    for (int i = 0; i < size; i++) assertEquals(UNEXPECTED_VALUE + " at vector index " + i, data[i], m.get(i, i), 0d);
    verifyDiagonal(m);
    final Matrix m1 = new DiagonalMatrix(data);
    assertEquals("Rows in matrix constructed from array", size, m1.rowSize());
    assertEquals("Cols in matrix constructed from array", size, m1.columnSize());
    for (int i = 0; i < size; i++) assertEquals(UNEXPECTED_VALUE + " at array index " + i, data[i], m1.get(i, i), 0d);
    verifyDiagonal(m1);
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix) DenseLocalOnHeapVector(org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector) ExternalizeTest(org.apache.ignite.ml.math.ExternalizeTest) Test(org.junit.Test)

Example 12 with Matrix

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

the class FunctionMatrixConstructorTest method basicTest.

/** */
@Test
public void basicTest() {
    for (int rows : new int[] { 1, 2, 3 }) for (int cols : new int[] { 1, 2, 3 }) basicTest(rows, cols);
    Matrix m = new FunctionMatrix(1, 1, (i, j) -> 1d);
    //noinspection EqualsWithItself
    assertTrue("Matrix is expected to be equal to self.", m.equals(m));
    //noinspection ObjectEqualsNull
    assertFalse("Matrix is expected to be not equal to null.", m.equals(null));
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix) Test(org.junit.Test)

Example 13 with Matrix

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

the class FunctionMatrixConstructorTest method basicTest.

/** */
private void basicTest(int rows, int cols) {
    double[][] data = new double[rows][cols];
    for (int row = 0; row < rows; row++) for (int col = 0; col < cols; col++) data[row][col] = row * cols + row;
    Matrix mReadOnly = new FunctionMatrix(rows, cols, (i, j) -> data[i][j]);
    assertEquals("Rows in matrix.", rows, mReadOnly.rowSize());
    assertEquals("Cols in matrix.", cols, mReadOnly.columnSize());
    for (int row = 0; row < rows; row++) for (int col = 0; col < cols; col++) {
        assertEquals("Unexpected value at " + row + "x" + col, data[row][col], mReadOnly.get(row, col), 0d);
        boolean expECaught = false;
        try {
            mReadOnly.set(row, col, 0.0);
        } catch (UnsupportedOperationException uoe) {
            expECaught = true;
        }
        assertTrue("Expected exception wasn't thrown at " + row + "x" + col, expECaught);
    }
    Matrix m = new FunctionMatrix(rows, cols, (i, j) -> data[i][j], (i, j, val) -> data[i][j] = val);
    assertEquals("Rows in matrix, with setter function.", rows, m.rowSize());
    assertEquals("Cols in matrix, with setter function.", cols, m.columnSize());
    for (int row = 0; row < rows; row++) for (int col = 0; col < cols; col++) {
        assertEquals("Unexpected value at " + row + "x" + col, data[row][col], m.get(row, col), 0d);
        m.set(row, col, -data[row][col]);
    }
    for (int row = 0; row < rows; row++) for (int col = 0; col < cols; col++) assertEquals("Unexpected value set at " + row + "x" + col, -(row * cols + row), m.get(row, col), 0d);
    assertTrue("Incorrect copy for empty matrix.", m.copy().equals(m));
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix) UnsupportedOperationException(org.apache.ignite.ml.math.exceptions.UnsupportedOperationException)

Example 14 with Matrix

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

the class MatrixImplementationsTest method testTimes.

/** */
@Test
public void testTimes() {
    consumeSampleMatrix((m, desc) -> {
        if (readOnly(m))
            return;
        double[][] data = fillAndReturn(m);
        double timeVal = Math.random();
        Matrix times = m.times(timeVal);
        for (int i = 0; i < m.rowSize(); i++) for (int j = 0; j < m.columnSize(); j++) assertEquals("Unexpected value for " + desc + " at (" + i + "," + j + ")", data[i][j] * timeVal, times.get(i, j), 0d);
    });
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix) Test(org.junit.Test) ExternalizeTest(org.apache.ignite.ml.math.ExternalizeTest)

Example 15 with Matrix

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

the class MatrixViewConstructorTest method invalidArgsTest.

/** */
@Test
public void invalidArgsTest() {
    Matrix m = new DenseLocalOnHeapMatrix(1, 1);
    DenseLocalOnHeapMatrixConstructorTest.verifyAssertionError(() -> new MatrixView((Matrix) null, 0, 0, 1, 1), "Null parent matrix.");
    DenseLocalOnHeapMatrixConstructorTest.verifyAssertionError(() -> new MatrixView(m, -1, 0, 1, 1), "Invalid row offset.");
    DenseLocalOnHeapMatrixConstructorTest.verifyAssertionError(() -> new MatrixView(m, 0, -1, 1, 1), "Invalid col offset.");
    DenseLocalOnHeapMatrixConstructorTest.verifyAssertionError(() -> new MatrixView(m, 0, 0, 0, 1), "Invalid rows.");
    DenseLocalOnHeapMatrixConstructorTest.verifyAssertionError(() -> new MatrixView(m, 0, 0, 1, 0), "Invalid cols.");
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix) 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