コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }