private static void TestReorderingCamdSuiteSparse()
        {
            Skip.IfNot(TestSettings.TestSuiteSparse, TestSettings.MessageWhenSkippingSuiteSparse);

            int n           = SparsePosDef10by10.Order;
            var pattern     = SparsityPatternSymmetric.CreateFromDense(Matrix.CreateFromArray(SparsePosDef10by10.Matrix));
            var orderingAlg = new OrderingCamdSuiteSparse();

            (int[] permutation, ReorderingStatistics stats) =
                orderingAlg.FindPermutation(pattern, SparsePosDef10by10.ConstraintsCAMD);

            var originalDiagonal = new double[n];
            var permutedDiagonal = new double[n];

            for (int i = 0; i < n; ++i)
            {
                originalDiagonal[i] = SparsePosDef10by10.Matrix[i, i];
            }
            for (int i = 0; i < n; ++i)
            {
                permutedDiagonal[i] = originalDiagonal[permutation[i]];
            }

            var writer = new Array1DWriter();

            Console.Write("Permutation (new-to-old): ");
            writer.WriteToConsole(permutation);
            Console.Write("Original diagonal: ");
            writer.WriteToConsole(originalDiagonal);
            Console.Write("Permuted diagonal: ");
            writer.WriteToConsole(permutedDiagonal);

            comparer.AssertEqual(SparsePosDef10by10.PermutationCAMD, permutation);
        }
        private static void TestReorderingAmdCSparseNet()
        {
            var pattern     = SparsityPatternSymmetric.CreateFromDense(Matrix.CreateFromArray(SparsePosDef10by10.Matrix));
            var orderingAlg = new OrderingAmdCSparseNet();

            (int[] permutation, bool oldToNew) = orderingAlg.FindPermutation(pattern);
            comparer.AssertEqual(SparsePosDef10by10.MatlabPermutationAMD, permutation);
        }
        private static void TestReorderingAmdSuiteSparse()
        {
            Skip.IfNot(TestSettings.TestSuiteSparse, TestSettings.MessageWhenSkippingSuiteSparse);

            var pattern     = SparsityPatternSymmetric.CreateFromDense(Matrix.CreateFromArray(SparsePosDef10by10.Matrix));
            var orderingAlg = new OrderingAmdSuiteSparse();

            (int[] permutation, bool oldToNew) = orderingAlg.FindPermutation(pattern);
            comparer.AssertEqual(SparsePosDef10by10.MatlabPermutationAMD, permutation);
        }