/// <summary>
        /// TEST02 tests HAAR_2D and HAAR_2D_INVERSE.
        /// </summary>
        public static void test02()
        {
            int m = 16;
            int n = 4;
            int seed;

            double[] u;
            double[] v;
            double[] w;

            Console.Write("\n");
            Console.Write("TEST02\n");
            Console.Write("  HAAR_2D computes the Haar transform of an array.\n");
            Console.Write("  HAAR_2D_INVERSE inverts the transform.\n");

            //
            //  Demonstrate successful inversion.
            //
            seed = 123456789;
            u    = HaarTransform.r8mat_uniform_01_new(m, n, ref seed);

            HaarTransform.r8mat_print(m, n, u, "  Input array U:");

            v = HaarTransform.r8mat_copy_new(m, n, u);

            HaarTransform.haar_2d(m, n, v);

            HaarTransform.r8mat_print(m, n, v, "  Transformed array V:");

            w = HaarTransform.r8mat_copy_new(m, n, v);

            HaarTransform.haar_2d_inverse(m, n, w);

            HaarTransform.r8mat_print(m, n, w, "  Recovered array W:");

            u = null;
            v = null;
            w = null;

            return;
        }
Esempio n. 2
0
        public static void TestHaarTransform()
        {
            double[][] mat    = Get2DTestData();
            Matrix     matrix = new Matrix(mat);

            //matrix.Print();

            double[] packed = matrix.GetColumnPackedCopy();
            HaarTransform.r8mat_print(matrix.Rows, matrix.Columns, packed, "  Input array packed:");

            HaarTransform.haar_2d(matrix.Rows, matrix.Columns, packed);
            HaarTransform.r8mat_print(matrix.Rows, matrix.Columns, packed, "  Transformed array packed:");

            double[] w = HaarTransform.r8mat_copy_new(matrix.Rows, matrix.Columns, packed);

            HaarTransform.haar_2d_inverse(matrix.Rows, matrix.Columns, w);
            HaarTransform.r8mat_print(matrix.Rows, matrix.Columns, w, "  Recovered array W:");

            Matrix m = new Matrix(w, matrix.Rows);
            //m.Print();
        }