public void Add_SquareMatrixAndSymmetricMatrix_CorrectResult(int order, int[] squareValues, int[] SymmetricValues)
        {
            var squareMatrix = new SquareMatrix <int>(order);

            squareMatrix.Copy(squareValues);

            var symmetricValues = new SymmetricMatrix <int>(order);

            symmetricValues.Copy(SymmetricValues);

            int[] values = new int[symmetricValues.Lenght];
            int   i      = 0;

            foreach (var element in symmetricValues)
            {
                values[i++] = element;
            }

            var actual = squareMatrix.Add(symmetricValues);

            i = 0;
            foreach (var element in actual)
            {
                Assert.AreEqual(squareValues[i] + values[i], element);
                i++;
            }
        }
예제 #2
0
        public void Indexator_SymmetricSequenceOfElements_CorrectResult(int order, int[] values)
        {
            var matrix = new SymmetricMatrix <int>(order);

            matrix.Copy(values);

            int i = 0;

            foreach (var element in matrix)
            {
                Assert.AreEqual(values[i++], element);
            }
        }
예제 #3
0
        public void SymmetricMatrixAccess()
        {
            SymmetricMatrix M = CreateSymmetricRandomMatrix(4, 1);

            // check column
            ColumnVector c = M.Column(1);

            Assert.IsTrue(c.Dimension == M.Dimension);
            for (int i = 0; i < c.Dimension; i++)
            {
                Assert.IsTrue(c[i] == M[i, 1]);
            }

            // check row
            RowVector r = M.Row(1);

            Assert.IsTrue(r.Dimension == M.Dimension);
            for (int i = 0; i < r.Dimension; i++)
            {
                Assert.IsTrue(r[i] == c[i]);
            }

            // check clone
            SymmetricMatrix MC = M.Copy();

            Assert.IsTrue(MC == M);
            Assert.IsFalse(MC != M);

            // check independence of clone
            MC[0, 1] += 1.0;
            Assert.IsFalse(MC == M);
            Assert.IsTrue(MC != M);

            // check that update was symmetric
            Assert.IsTrue(M[0, 1] == M[1, 0]);
        }
 /// <summary>
 /// Gets the curvature matrix at the extremum.
 /// </summary>
 /// <returns>The curvature matrix.</returns>
 public SymmetricMatrix Curvature()
 {
     return(f2.Copy());
 }