Search in sources :

Example 46 with Matrix

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

the class MatrixImplementationsTest method testSwapRows.

/**
 */
@Test
public void testSwapRows() {
    consumeSampleMatrix((m, desc) -> {
        if (readOnly(m))
            return;
        double[][] doubles = fillAndReturn(m);
        final int swap_i = m.rowSize() == 1 ? 0 : 1;
        final int swap_j = 0;
        Matrix swap = m.swapRows(swap_i, swap_j);
        for (int col = 0; col < m.columnSize(); col++) {
            assertEquals("Unexpected value for " + desc + " at col " + col + ", swap_i " + swap_i, swap.get(swap_i, col), doubles[swap_j][col], 0d);
            assertEquals("Unexpected value for " + desc + " at col " + col + ", swap_j " + swap_j, swap.get(swap_j, col), doubles[swap_i][col], 0d);
        }
        testInvalidRowIndex(() -> m.swapRows(-1, 0), desc + " negative first swap index");
        testInvalidRowIndex(() -> m.swapRows(0, -1), desc + " negative second swap index");
        testInvalidRowIndex(() -> m.swapRows(m.rowSize(), 0), desc + " too large first swap index");
        testInvalidRowIndex(() -> m.swapRows(0, m.rowSize()), desc + " too large second swap index");
    });
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix) Test(org.junit.Test) ExternalizeTest(org.apache.ignite.ml.math.ExternalizeTest)

Example 47 with Matrix

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

the class MatrixImplementationsTest method testPlus.

/**
 */
@Test
public void testPlus() {
    consumeSampleMatrix((m, desc) -> {
        if (readOnly(m))
            return;
        double[][] data = fillAndReturn(m);
        double plusVal = Math.random();
        Matrix plus = m.plus(plusVal);
        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] + plusVal, plus.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 48 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 49 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)

Example 50 with Matrix

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

the class SparseDistributedMatrixTest method testMatrixTimes.

/**
 */
public void testMatrixTimes() {
    IgniteUtils.setCurrentIgniteName(ignite.configuration().getIgniteInstanceName());
    int size = MATRIX_SIZE;
    SparseDistributedMatrix cacheMatrix1 = new SparseDistributedMatrix(size, size, StorageConstants.ROW_STORAGE_MODE, StorageConstants.RANDOM_ACCESS_MODE);
    SparseDistributedMatrix cacheMatrix2 = new SparseDistributedMatrix(size, size, StorageConstants.ROW_STORAGE_MODE, StorageConstants.RANDOM_ACCESS_MODE);
    for (int i = 0; i < size; i++) {
        cacheMatrix1.setX(i, i, i);
        cacheMatrix2.setX(i, i, i);
    }
    Matrix res = cacheMatrix1.times(cacheMatrix2);
    for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) if (i == j)
        assertEquals(UNEXPECTED_VAL, i * i, res.get(i, j), PRECISION);
    else
        assertEquals(UNEXPECTED_VAL, 0, res.get(i, j), PRECISION);
}
Also used : Matrix(org.apache.ignite.ml.math.Matrix)

Aggregations

Matrix (org.apache.ignite.ml.math.Matrix)131 DenseLocalOnHeapMatrix (org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix)51 Test (org.junit.Test)48 Vector (org.apache.ignite.ml.math.Vector)30 DenseLocalOnHeapVector (org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector)18 ExternalizeTest (org.apache.ignite.ml.math.ExternalizeTest)17 MLPArchitecture (org.apache.ignite.ml.nn.architecture.MLPArchitecture)10 Random (java.util.Random)6 DenseLocalOffHeapMatrix (org.apache.ignite.ml.math.impls.matrix.DenseLocalOffHeapMatrix)6 SparseDistributedMatrix (org.apache.ignite.ml.math.impls.matrix.SparseDistributedMatrix)6 SparseLocalOnHeapMatrix (org.apache.ignite.ml.math.impls.matrix.SparseLocalOnHeapMatrix)6 Ignite (org.apache.ignite.Ignite)5 RandomMatrix (org.apache.ignite.ml.math.impls.matrix.RandomMatrix)5 FunctionVector (org.apache.ignite.ml.math.impls.vector.FunctionVector)5 CardinalityException (org.apache.ignite.ml.math.exceptions.CardinalityException)4 LabeledVector (org.apache.ignite.ml.structures.LabeledVector)4 IgniteThread (org.apache.ignite.thread.IgniteThread)4 IgniteBiTuple (org.apache.ignite.lang.IgniteBiTuple)3 LUDecomposition (org.apache.ignite.ml.math.decompositions.LUDecomposition)3 QRDecomposition (org.apache.ignite.ml.math.decompositions.QRDecomposition)3