//Real->Complex transforms
        public static fftwf_plan dft_r2c_1d(int n, fftwf_complexarray input, fftwf_complexarray output, fftw_flags flags)
        {
            fftwf_plan p = new fftwf_plan();

            p.handle = fftwf.dft_r2c_1d(n, input.Handle, output.Handle, flags);
            return(p);
        }
        public static fftwf_plan dft(int rank, int[] n, fftwf_complexarray input, fftwf_complexarray output, fftw_direction direction, fftw_flags flags)
        {
            fftwf_plan p = new fftwf_plan();

            p.handle = fftwf.dft(rank, n, input.Handle, output.Handle, direction, flags);
            return(p);
        }
        public static fftwf_plan dft_3d(int nx, int ny, int nz, fftwf_complexarray input, fftwf_complexarray output, fftw_direction direction, fftw_flags flags)
        {
            fftwf_plan p = new fftwf_plan();

            p.handle = fftwf.dft_3d(nx, ny, nz, input.Handle, output.Handle, direction, flags);
            return(p);
        }
示例#4
0
        public static fftwf_plan r2r_2d(int nx, int ny, fftwf_complexarray input, fftwf_complexarray output, fftw_kind kindx, fftw_kind kindy, fftw_flags flags)
        {
            fftwf_plan p = new fftwf_plan();

            p.handle = fftwf.r2r_2d(nx, ny, input.Handle, output.Handle, kindx, kindy, flags);
            return(p);
        }
示例#5
0
        public static fftwf_plan r2r(int rank, int[] n, fftwf_complexarray input, fftwf_complexarray output,
                                     fftw_kind[] kind, fftw_flags flags)
        {
            fftwf_plan p = new fftwf_plan();

            p.handle = fftwf.r2r(rank, n, input.Handle, output.Handle,
                                 kind, flags);
            return(p);
        }
示例#6
0
文件: Managed.cs 项目: vladshup/CANFI
        public static fftwf_plan r2r_2d(int nx, int ny, fftwf_complexarray input, fftwf_complexarray output, fftw_kind kindx, fftw_kind kindy, fftw_flags flags)
        {
            FFTW_Lock.WaitOne();
            fftwf_plan p = new fftwf_plan();

            p.handle = fftwf.r2r_2d(nx, ny, input.Handle, output.Handle, kindx, kindy, flags);
            FFTW_Lock.ReleaseMutex();

            return(p);
        }
示例#7
0
文件: Managed.cs 项目: vladshup/CANFI
        public static fftwf_plan dft_c2r(int rank, int[] n, fftwf_complexarray input, fftwf_complexarray output, fftw_direction direction, fftw_flags flags)
        {
            FFTW_Lock.WaitOne();
            fftwf_plan p = new fftwf_plan();

            p.handle = fftwf.dft_c2r(rank, n, input.Handle, output.Handle, flags);
            FFTW_Lock.ReleaseMutex();

            return(p);
        }
示例#8
0
文件: Managed.cs 项目: vladshup/CANFI
        public static fftwf_plan dft_r2c_3d(int nx, int ny, int nz, fftwf_complexarray input, fftwf_complexarray output, fftw_flags flags)
        {
            FFTW_Lock.WaitOne();
            fftwf_plan p = new fftwf_plan();

            p.handle = fftwf.dft_r2c_3d(nx, ny, nz, input.Handle, output.Handle, flags);
            FFTW_Lock.ReleaseMutex();

            return(p);
        }
示例#9
0
    public FFT(int n)
    {
        this.N = n;

        var size = n * n;
        _fftIn = new ComplexArray(size);
        _fftOut = new ComplexArray(size);
        _fftPlan = fftwf_plan.dft_2d(n, n, _fftIn, _fftOut, fftw_direction.Backward, fftw_flags.Estimate);
        _spaceDomain = new float[2 * size];
    }
示例#10
0
 public static fftwf_plan dft_r2c(int rank, int[] n, fftwf_complexarray input, fftwf_complexarray output, fftw_flags flags)
 {
     fftwf_plan p = new fftwf_plan();
     p.handle = fftwf.dft_r2c(rank, n, input.Handle, output.Handle, flags);
     return p;
 }
示例#11
0
 public static fftwf_plan dft_c2r_2d(int nx, int ny, fftwf_complexarray input, fftwf_complexarray output, fftw_direction direction, fftw_flags flags)
 {
     fftwf_plan p = new fftwf_plan();
     p.handle = fftwf.dft_c2r_2d(nx, ny, input.Handle, output.Handle, flags);
     return p;
 }
示例#12
0
 //Real<->Real
 public static fftwf_plan r2r_1d(int n, fftwf_complexarray input, fftwf_complexarray output, fftw_kind kind, fftw_flags flags)
 {
     fftwf_plan p = new fftwf_plan();
     p.handle = fftwf.r2r_1d(n, input.Handle, output.Handle, kind, flags);
     return p;
 }
示例#13
0
        public static fftwf_plan dft_r2c_2d(int nx, int ny, fftwf_complexarray input, fftwf_complexarray output, fftw_flags flags)
        {
            FFTW_Lock.WaitOne();
            fftwf_plan p = new fftwf_plan();
            p.handle = fftwf.dft_r2c_2d(nx, ny, input.Handle, output.Handle, flags);
            FFTW_Lock.ReleaseMutex();

            return p;
        }
示例#14
0
        //Complex->Real
        public static fftwf_plan dft_c2r_1d(int n, fftwf_complexarray input, fftwf_complexarray output, fftw_direction direction, fftw_flags flags)
        {
            FFTW_Lock.WaitOne();
            fftwf_plan p = new fftwf_plan();
            p.handle = fftwf.dft_c2r_1d(n, input.Handle, output.Handle, flags);
            FFTW_Lock.ReleaseMutex();

            return p;
        }
示例#15
0
 public static fftwf_plan dft_r2c_3d(int nx, int ny, int nz, fftwf_complexarray input, fftwf_complexarray output, fftw_flags flags)
 {
     fftwf_plan p = new fftwf_plan();
     p.handle = fftwf.dft_r2c_3d(nx, ny, nz, input.Handle, output.Handle, flags);
     return p;
 }
示例#16
0
 public static fftwf_plan r2r(int rank, int[] n, fftwf_complexarray input, fftwf_complexarray output,
     fftw_kind[] kind, fftw_flags flags)
 {
     fftwf_plan p = new fftwf_plan();
     p.handle = fftwf.r2r(rank, n, input.Handle, output.Handle,
         kind, flags);
     return p;
 }
示例#17
0
        public static fftwf_plan r2r(int rank, int[] n, fftwf_complexarray input, fftwf_complexarray output,
            fftw_kind[] kind, fftw_flags flags)
        {
            FFTW_Lock.WaitOne();
            fftwf_plan p = new fftwf_plan();
            p.handle = fftwf.r2r(rank, n, input.Handle, output.Handle,
                kind, flags);
            FFTW_Lock.ReleaseMutex();

            return p;
        }
示例#18
0
        public static fftwf_plan r2r_3d(int nx, int ny, int nz, fftwf_complexarray input, fftwf_complexarray output, 
			fftw_kind kindx, fftw_kind kindy, fftw_kind kindz, fftw_flags flags)
        {
            fftwf_plan p = new fftwf_plan();
            p.handle = fftwf.r2r_3d(nx, ny, nz, input.Handle, output.Handle,
                kindx, kindy, kindz, flags);
            return p;
        }
示例#19
0
        public static fftwf_plan r2r_3d(int nx, int ny, int nz, fftwf_complexarray input, fftwf_complexarray output,
            fftw_kind kindx, fftw_kind kindy, fftw_kind kindz, fftw_flags flags)
        {
            FFTW_Lock.WaitOne();
            fftwf_plan p = new fftwf_plan();
            p.handle = fftwf.r2r_3d(nx, ny, nz, input.Handle, output.Handle,
                kindx, kindy, kindz, flags);
            FFTW_Lock.ReleaseMutex();

            return p;
        }