public void testSum() { DenseMatrix A = new DenseMatrix(new double[][] {{1, 9}, {7, 3}}); assertTrue(new DenseMatrix(new double[][] {{8, 12}}).equals(A.sumOverRows())); assertTrue(new DenseMatrix(new double[][] {{10}, {10}}).equals(A.sumOverCols())); SparseMatrixLil B = A.toSparseLil(); assertTrue(new DenseMatrix(new double[][] {{8, 12}}).toSparseLil().equals(B.sumOverRows())); assertTrue(new DenseMatrix(new double[][] {{10}, {10}}).toSparseLil().equals(B.sumOverCols())); assertTrue(B.sumOverRows().equals(A.sumOverRows())); assertTrue(B.sumOverCols().equals(A.sumOverCols())); assertEquals(B.sum().sum().s(), A.sum().sum().s()); SparseMatrixLil C = spzeros(4, 5); C.append(1, 2, 5); C.append(3, 1, 3); C.append(3, 2, 7); C.append(1, 4, 11); System.out.println(C.sumOverRows()); assertTrue(new DenseMatrix(new double[][] {{0, 3, 12, 0, 11}}).equals(C.sumOverRows())); System.out.println(C.sumOverCols()); assertTrue(new DenseMatrix(new double[][] {{0}, {16}, {0}, {10}}).equals(C.sumOverCols())); assertEquals(26.0, C.sumOverCols().sumOverRows().s()); assertEquals(26.0, C.sumOverRows().sumOverCols().s()); }
public static final DenseMatrix varOverCols(SparseMatrixLil mat) { return mat.pow(2).sumOverCols().sub(mat.sumOverCols().pow(2).div(mat.cols)).div(mat.cols - 1); }
public static final DenseMatrix meanOverCols(SparseMatrixLil mat) { return mat.sumOverCols().div(mat.cols); }