@Test public void testBasics() { DiagonalMatrix a = new DiagonalMatrix(new double[]{1, 2, 3, 4}); assertEquals(0, a.viewDiagonal().minus(new DenseVector(new double[]{1, 2, 3, 4})).norm(1), 1.0e-10); assertEquals(0, a.viewPart(0, 3, 0, 3).viewDiagonal().minus( new DenseVector(new double[]{1, 2, 3})).norm(1), 1.0e-10); assertEquals(4, a.get(3, 3), 1.0e-10); Matrix m = new DenseMatrix(4, 4); m.assign(a); assertEquals(0, m.minus(a).aggregate(Functions.PLUS, Functions.ABS), 1.0e-10); assertEquals(0, m.transpose().times(m).minus(a.transpose().times(a)).aggregate( Functions.PLUS, Functions.ABS), 1.0e-10); assertEquals(0, m.plus(m).minus(a.plus(a)).aggregate(Functions.PLUS, Functions.ABS), 1.0e-10); m = new DenseMatrix(new double[][]{{1, 2, 3, 4}, {5, 6, 7, 8}}); assertEquals(100, a.timesLeft(m).aggregate(Functions.PLUS, Functions.ABS), 1.0e-10); assertEquals(100, a.times(m.transpose()).aggregate(Functions.PLUS, Functions.ABS), 1.0e-10); }