示例#1
0
    private static void test02()

    //****************************************************************************80
    //
    //  Purpose:
    //
    //    TEST02 tests VAN_DER_CORPUT_SEQUENCE.
    //
    //  Licensing:
    //
    //    This code is distributed under the GNU LGPL license.
    //
    //  Modified:
    //
    //    09 August 2016
    //
    //  Author:
    //
    //    John Burkardt
    //
    {
        const int N = 1;

        int i;

        double[] r = Array.Empty <double>();

        Console.WriteLine("");
        Console.WriteLine("TEST02");
        Console.WriteLine("  VAN_DER_CORPUT_SEQUENCE computes several elements of");
        Console.WriteLine("  a van der Corput sequence on a single call.");
        Console.WriteLine("");
        Console.WriteLine("  In this test, we call VAN_DER_CORPUT_SEQUENCE once.");

        const int base_ = 2;

        VanDerCorput.van_der_corput_base_set(base_);

        const int seed = 0;

        VanDerCorput.van_der_corput_seed_set(seed);

        VanDerCorput.van_der_corput_sequence(N, ref r);

        Console.WriteLine("");
        Console.WriteLine("  Element   van der Corput");
        Console.WriteLine("");

        for (i = 0; i < N; i++)
        {
            Console.WriteLine(i.ToString(CultureInfo.InvariantCulture).PadLeft(6) + "  "
                              + r[i].ToString(CultureInfo.InvariantCulture).PadLeft(10) + "");
        }
    }
示例#2
0
    private static void test03()

    //****************************************************************************80
    //
    //  Purpose:
    //
    //    TEST03 tests VAN_DER_CORPUT_SEQUENCE, VAN_DER_CORPUT_SEED_GET, VAN_DER_CORPUT_SEED_SET.
    //
    //  Licensing:
    //
    //    This code is distributed under the GNU LGPL license.
    //
    //  Modified:
    //
    //    09 August 2016
    //
    //  Author:
    //
    //    John Burkardt
    //
    {
        const int NMAX = 10;

        int i;

        double[] r = new double[NMAX];

        Console.WriteLine("");
        Console.WriteLine("TEST03");
        Console.WriteLine("  VAN_DER_CORPUT_SEED_SET specifies the next element of");
        Console.WriteLine("    the van der Corput sequence to compute.");
        Console.WriteLine("  VAN_DER_CORPUT_SEED_GET reports the next element of the");
        Console.WriteLine("    van der Corput sequence that will be computed.");
        Console.WriteLine("");
        Console.WriteLine("  By default, the sequence starts at element 1.");
        Console.WriteLine("");
        Console.WriteLine("  In this test, we demonstrate computing elements");
        Console.WriteLine("  affects the seed, and how resetting the seed determines");
        Console.WriteLine("  the next element computed.");
        Console.WriteLine("");
        Console.WriteLine("  We start at element 0 and compute 10 elements.");
        Console.WriteLine("");

        int seed = 0;

        VanDerCorput.van_der_corput_seed_set(seed);

        int n = NMAX;

        VanDerCorput.van_der_corput_sequence(n, ref r);

        for (i = 0; i < n; i++)
        {
            Console.WriteLine((seed + i).ToString(CultureInfo.InvariantCulture).PadLeft(6) + " "
                              + r[i].ToString(CultureInfo.InvariantCulture).PadLeft(10) + "");
        }

        seed = VanDerCorput.van_der_corput_seed_get();

        Console.WriteLine("");
        Console.WriteLine("  The current seed is " + seed + "");

        Console.WriteLine("");
        Console.WriteLine("  We jump back to element 6 and compute 10 elements.");
        Console.WriteLine("");

        seed = 6;
        VanDerCorput.van_der_corput_seed_set(seed);

        n = NMAX;
        VanDerCorput.van_der_corput_sequence(n, ref r);

        for (i = 0; i < n; i++)
        {
            Console.WriteLine((seed + i).ToString(CultureInfo.InvariantCulture).PadLeft(6) + " "
                              + r[i].ToString(CultureInfo.InvariantCulture).PadLeft(10) + "");
        }

        seed = VanDerCorput.van_der_corput_seed_get();

        Console.WriteLine("");
        Console.WriteLine("  The current seed is " + seed + "");

        Console.WriteLine("");
        Console.WriteLine("  We restart at element 0 and compute 6 elements.");
        Console.WriteLine("");

        seed = 0;
        VanDerCorput.van_der_corput_seed_set(seed);

        n = 6;
        VanDerCorput.van_der_corput_sequence(n, ref r);

        for (i = 0; i < n; i++)
        {
            Console.WriteLine((seed + i).ToString(CultureInfo.InvariantCulture).PadLeft(6) + " "
                              + r[i].ToString(CultureInfo.InvariantCulture).PadLeft(10) + "");
        }

        seed = VanDerCorput.van_der_corput_seed_get();

        Console.WriteLine("");
        Console.WriteLine("  The current seed is " + seed + "");

        Console.WriteLine("");
        Console.WriteLine("  We jump to element 100 and compute 5 elements.");
        Console.WriteLine("");

        seed = 100;
        VanDerCorput.van_der_corput_seed_set(seed);

        n = 5;
        VanDerCorput.van_der_corput_sequence(n, ref r);

        for (i = 0; i < n; i++)
        {
            Console.WriteLine((seed + i).ToString(CultureInfo.InvariantCulture).PadLeft(6) + " "
                              + r[i].ToString(CultureInfo.InvariantCulture).PadLeft(10) + "");
        }

        seed = VanDerCorput.van_der_corput_seed_get();

        Console.WriteLine("");
        Console.WriteLine("  The current seed is " + seed + "");
    }