예제 #1
0
    private static void test01()

    //****************************************************************************80
    //
    //  Purpose:
    //
    //    TEST01 tests ccs_TO_ST using a 1-based matrix.
    //
    //  Discussion:
    //
    //    This test uses a trivial matrix whose full representation is:
    //
    //          2  3  0  0  0
    //          3  0  4  0  6
    //      A = 0 -1 -3  2  0
    //          0  0  1  0  0
    //          0  4  2  0  1
    //
    //    The 1-based CCS representation is
    //
    //      #  ICC  CCC  ACC
    //     --  ---  ---  ---
    //      1    1    1    2
    //      2    2         3
    //
    //      3    1    3    3
    //      4    3        -1
    //      5    5         4
    //
    //      6    2    6    4
    //      7    3        -3
    //      8    4         1
    //      9    5         2
    //
    //     10    3   10    2
    //
    //     11    2   11    6
    //     12    5         1
    //
    //     13    *   13
    //
    //  Licensing:
    //
    //    This code is distributed under the GNU LGPL license.
    //
    //  Modified:
    //
    //    23 July 2014
    //
    //  Author:
    //
    //    John Burkardt
    //
    {
        const int N   = 5;
        const int NCC = 12;

        double[] acc =
        {
            2.0,  3.0,
            3.0, -1.0, 4.0,
            4.0, -3.0, 1.0, 2.0,
            2.0,
            6.0, 1.0
        }

        ;
        int[] ccc =
        {
            1, 3, 6, 10, 11, 13
        }

        ;
        int[] icc =
        {
            1, 2,
            1, 3, 5,
            2, 3, 4, 5,
            3,
            2, 5
        }

        ;
        const int m   = 5;
        int       nst = 0;

        Console.WriteLine("");
        Console.WriteLine("TEST01");
        Console.WriteLine("  Convert a 1-based CCS matrix to ST format.");
        //
        //  Print the CCS matrix.
        //
        CompressedColumnStorage.ccs_print(m, N, NCC, icc, ccc, acc, "  The CCS matrix:");
        //
        //  Convert it.
        //
        int[]    ist = new int[NCC];
        int[]    jst = new int[NCC];
        double[] ast = new double[NCC];

        CompressedColumnStorage.ccs_to_st(m, N, NCC, icc, ccc, acc, ref nst, ref ist, ref jst, ref ast);
        //
        //  Print the ST matrix.
        //
        SparseTriplet.st_print(m, N, nst, ist, jst, ast, "  The ST matrix:");
    }