public static void checkAccuracyRealFFT_1D() {
        System.out.println("Checking accuracy of 1D real FFT...");
        for (int i = 0; i < sizes1D.length; i++) {
            FloatFFT_1D fft = new FloatFFT_1D(sizes1D[i]);
            double err = 0.0;
            float[] a = new float[sizes1D[i]];
            IOUtils.fillMatrix_1D(sizes1D[i], a);
            float[] b = new float[sizes1D[i]];
            IOUtils.fillMatrix_1D(sizes1D[i], b);
            fft.realForward(a);
            fft.realInverse(a, true);
            err = computeRMSE(a, b);
            if (err > eps) {
                System.err.println("\tsize = " + sizes1D[i] + ";\terror = " + err);
            } else {
                System.out.println("\tsize = " + sizes1D[i] + ";\terror = " + err);
            }
            a = null;
            b = null;
            fft = null;
            System.gc();
        }
        System.out.println("Checking accuracy of on 1D real forward full FFT...");
        for (int i = 0; i < sizes1D.length; i++) {
            FloatFFT_1D fft = new FloatFFT_1D(sizes1D[i]);
            double err = 0.0;
            float[] a = new float[2 * sizes1D[i]];
            IOUtils.fillMatrix_1D(sizes1D[i], a);
            float[] b = new float[2 * sizes1D[i]];
            for (int j = 0; j < sizes1D[i]; j++) {
                b[2 * j] = a[j];
            }
            fft.realForwardFull(a);
            fft.complexInverse(a, true);
            err = computeRMSE(a, b);
            if (err > eps) {
                System.err.println("\tsize = " + sizes1D[i] + ";\terror = " + err);
            } else {
                System.out.println("\tsize = " + sizes1D[i] + ";\terror = " + err);
            }
            a = null;
            b = null;
            fft = null;
            System.gc();
        }
        System.out.println("Checking accuracy of 1D real inverse full FFT...");
        for (int i = 0; i < sizes1D.length; i++) {
            FloatFFT_1D fft = new FloatFFT_1D(sizes1D[i]);
            double err = 0.0;
            float[] a = new float[2 * sizes1D[i]];
            IOUtils.fillMatrix_1D(sizes1D[i], a);
            float[] b = new float[2 * sizes1D[i]];
            for (int j = 0; j < sizes1D[i]; j++) {
                b[2 * j] = a[j];
            }
            fft.realInverseFull(a, true);
            fft.complexForward(a);
            err = computeRMSE(a, b);
            if (err > eps) {
                System.err.println("\tsize = " + sizes1D[i] + ";\terror = " + err);
            } else {
                System.out.println("\tsize = " + sizes1D[i] + ";\terror = " + err);
            }
            a = null;
            b = null;
            fft = null;
            System.gc();
        }

    }