public void TimesTest() { const int N = 50; const int M = 30; var A = SparseDoubleMatrix.Identity(M, N); for (int i = 0; i < M; i++) { if (i < N) { A[i, i] = i % 5 == 0 ? 1.0 : 0.0; } } var b = new DoubleVector(N); for (int i = 0; i < N; i++) { b[i] = 2.0; } var B = new DoubleVector(M); for (int i = 0; i < M; i++) { B[i] = i % 5 == 0 ? 2.0 : 0.0; } var C = A.times(b); AssertVectorEqualsEps(B, C); }
public void minusTest() { const int N = 50; var A = SparseDoubleMatrix.Identity(N, N); for (int i = 0; i < N; i++) { A[i, i] = i % 5 == 0 ? 1.0 : 0.0; } var A1 = A.Clone(); var Zeros = SparseDoubleMatrix.Identity(N, N); for (int i = 0; i < N; i++) { Zeros[i, i] = 0.0; } var B = SparseDoubleMatrix.Identity(N, N); for (int i = 0; i < N; i++) { B[i, i] = i % 5 == 0 ? 1.0 : 0.0; } var C = A.minus(B); AssertMatrixEqualsEps(C, Zeros); C = A - B; AssertMatrixEqualsEps(C, Zeros); }
public void isLowerTriangularTest() { const int N = 50; var A = SparseDoubleMatrix.Identity(N, N); for (int i = 0; i < N; i++) { A[i, i] = i % 5 == 0 ? 1.0 : 0.0; } Assert.AreEqual(A.IsLowerTriangular(), true); A[45, 40] = 1.0; Assert.AreEqual(A.IsLowerTriangular(), true); A[40, 45] = 1.0; Assert.AreEqual(A.IsLowerTriangular(), false); }
public void TimesEqualsTest() { const int N = 50; var A = SparseDoubleMatrix.Identity(N, N); for (int i = 0; i < N; i++) { A[i, i] = i % 5 == 0 ? 1.0 : 0.0; } SparseDoubleMatrix AInit = A.Clone(); SparseDoubleMatrix B = A.Clone(); for (int i = 0; i < N; i++) { B[i, i] = i % 5 == 0 ? 2.0 : 0.0; } var C = A.Mul(2.0); AssertMatrixEqualsEps(B, C); var D = AInit * 2.0; AssertMatrixEqualsEps(B, D); }