/// <summary> /// Creates plan.. /// </summary> /// <param name="fftType">Type of fft.</param> /// <param name="n">The n.</param> /// <param name="input">The input.</param> /// <param name="output">The output.</param> /// <param name="direction">The direction.</param> /// <param name="flags">The flags.</param> /// <returns></returns> public static fftwf_plan dft_1d(eFFTType fftType, int n, IntPtr input, IntPtr output, fftw_direction direction, fftw_flags flags) { fftwf_plan p = new fftwf_plan(); if (fftType == eFFTType.Complex2Complex) p._handle = fftwf.dft_1d(n, input, output, direction, flags); else if (fftType == eFFTType.Real2Complex) p._handle = fftwf.dft_r2c_1d(n, input, output, flags); else if (fftType == eFFTType.Complex2Real) p._handle = fftwf.dft_c2r_1d(n, input, output, flags); p.Input = input; p.Output = output; return p; }
public static extern IntPtr r2r_1d(int n, IntPtr input, IntPtr output, fftw_kind kind, fftw_flags flags);
public static extern IntPtr dft_r2c_3d(int nx, int ny, int nz, IntPtr input, IntPtr output, fftw_flags flags);
public static extern IntPtr dft_r2c(int rank, int[] n, IntPtr input, IntPtr output, fftw_flags flags);
public static extern IntPtr dft_3d(int nx, int ny, int nz, IntPtr input, IntPtr output, fftw_direction direction, fftw_flags flags);
public static extern IntPtr dft(int rank, int[] n, IntPtr input, IntPtr output, fftw_direction direction, fftw_flags flags);
//Real<->Real public static fftw_plan r2r_1d(int n, fftw_complexarray input, fftw_complexarray output, fftw_kind kind, fftw_flags flags) { fftw_plan p = new fftw_plan(); p.handle = fftw.r2r_1d(n, input.Handle, output.Handle, kind, flags); return p; }
public static fftw_plan dft_r2c_3d(int nx, int ny, int nz, fftw_complexarray input, fftw_complexarray output, fftw_flags flags) { fftw_plan p = new fftw_plan(); p.handle = fftw.dft_r2c_3d(nx, ny, nz, input.Handle, output.Handle, flags); return p; }
public static fftwf_plan dft_r2c(int rank, int[] n, fftwf_complexarray input, fftwf_complexarray output, fftw_flags flags) { FFTW_Lock.WaitOne(); fftwf_plan p = new fftwf_plan(); p.handle = fftwf.dft_r2c(rank, n, input.Handle, output.Handle, flags); FFTW_Lock.ReleaseMutex(); 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) { FFTW_Lock.WaitOne(); fftwf_plan p = new fftwf_plan(); p.handle = fftwf.dft_3d(nx, ny, nz, input.Handle, output.Handle, direction, flags); FFTW_Lock.ReleaseMutex(); return p; }
public static extern IntPtr many_dft_c2r(int rank, int[] n, int howmany, IntPtr input, int[] inembed, int istride, int idist, IntPtr output, int[] onembed, int ostride, int odist, fftw_flags flags);
public static fftw_plan dft_2d(int nx, int ny, fftw_complexarray input, fftw_complexarray output, fftw_direction direction, fftw_flags flags) { FFTW_Semaphore.WaitOne(); fftw_plan p = new fftw_plan(); p.handle = fftw.dft_2d(nx, ny, input.Handle, output.Handle, direction,flags); FFTW_Semaphore.Release(); return p; }
public static fftwf_plan dft_many(eFFTType fftType, int rank, int[] n, int batch, IntPtr input, int[] inembed, int istride, int idist, IntPtr output, int[] onembed, int ostride, int odist, fftw_direction sign, fftw_flags flags) { fftwf_plan p = new fftwf_plan(); if (fftType == eFFTType.Complex2Complex) p._handle = fftwf.many_dft(rank, n, batch, input, inembed, istride, idist, output, onembed, ostride, odist, sign, flags); else if (fftType == eFFTType.Real2Complex) p._handle = fftwf.many_dft_r2c(rank, n, batch, input, inembed, istride, idist, output, onembed, ostride, odist, flags); else if (fftType == eFFTType.Complex2Real) p._handle = fftwf.many_dft_c2r(rank, n, batch, input, inembed, istride, idist, output, onembed, ostride, odist, flags); p.Input = input; p.Output = output; return p; }
public static fftwf_plan dft_c2r_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_c2r_3d(nx, ny, nz, input.Handle, output.Handle, (uint)flags); return p; }
public static extern IntPtr dft_3d(int nx, int ny, int nz, IntPtr input, IntPtr output, fftw_direction direction, fftw_flags flags);
//Real<->Real public static fftwf_plan r2r_1d(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_1d(n, input.Handle, output.Handle, kind, flags); FFTW_Lock.ReleaseMutex(); return p; }
public static fftw_plan dft_r2c(int rank, int[] n, fftw_complexarray input, fftw_complexarray output, fftw_flags flags) { fftw_plan p = new fftw_plan(); p.handle = fftw.dft_r2c(rank, n, input.Handle, output.Handle, flags); return p; }
//Complex->Real public static fftw_plan dft_c2r_1d(int n, fftw_complexarray input, fftw_complexarray output, fftw_direction direction, fftw_flags flags) { FFTW_Lock.WaitOne(); fftw_plan p = new fftw_plan(); p.handle = fftw.dft_c2r_1d(n, input.Handle, output.Handle, flags); FFTW_Lock.ReleaseMutex(); return p; }
public static fftw_plan r2r(int rank, int[] n, fftw_complexarray input, fftw_complexarray output, fftw_kind[] kind, fftw_flags flags) { fftw_plan p = new fftw_plan(); p.handle = fftw.r2r(rank, n, input.Handle, output.Handle, kind, flags); return p; }
public static fftw_plan dft_r2c_2d(int nx, int ny, fftw_complexarray input, fftw_complexarray output, fftw_flags flags) { FFTW_Lock.WaitOne(); fftw_plan p = new fftw_plan(); p.handle = fftw.dft_r2c_2d(nx, ny, input.Handle, output.Handle, flags); FFTW_Lock.ReleaseMutex(); return p; }
public static fftw_plan r2r_3d(int nx, int ny, int nz, fftw_complexarray input, fftw_complexarray output, fftw_kind kindx, fftw_kind kindy, fftw_kind kindz, fftw_flags flags) { fftw_plan p = new fftw_plan(); p.handle = fftw.r2r_3d(nx, ny, nz, input.Handle, output.Handle, kindx, kindy, kindz, flags); return p; }
public static fftw_plan r2r(int rank, int[] n, fftw_complexarray input, fftw_complexarray output, fftw_kind[] kind, fftw_flags flags) { FFTW_Lock.WaitOne(); fftw_plan p = new fftw_plan(); p.handle = fftw.r2r(rank, n, input.Handle, output.Handle, kind, flags); FFTW_Lock.ReleaseMutex(); return p; }
public static extern IntPtr dft_1d(int n, IntPtr input, IntPtr output, fftw_direction direction, fftw_flags flags);
public static fftw_plan r2r_3d(int nx, int ny, int nz, fftw_complexarray input, fftw_complexarray output, fftw_kind kindx, fftw_kind kindy, fftw_kind kindz, fftw_flags flags) { FFTW_Lock.WaitOne(); fftw_plan p = new fftw_plan(); p.handle = fftw.r2r_3d(nx, ny, nz, input.Handle, output.Handle, kindx, kindy, kindz, flags); FFTW_Lock.ReleaseMutex(); return p; }
public static extern IntPtr dft_c2r_2d(int nx, int ny, IntPtr input, IntPtr output, fftw_flags flags);
public static fftwf_plan dft_c2r(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_c2r(rank, n, input.Handle, output.Handle, flags); return p; }
public static extern IntPtr dft_r2c_1d(int n, IntPtr input, IntPtr output, fftw_flags flags);
//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 extern IntPtr r2r(int rank, int[] n, IntPtr input, IntPtr output, fftw_kind[] kind, fftw_flags flags);
public static fftw_plan dft_c2r_2d(int nx, int ny, fftw_complexarray input, fftw_complexarray output, fftw_direction direction, fftw_flags flags) { fftw_plan p = new fftw_plan(); p.handle = fftw.dft_c2r_2d(nx, ny, input.Handle, output.Handle, flags); return p; }
public static extern IntPtr r2r_3d(int nx, int ny, int nz, IntPtr input, IntPtr output, fftw_kind kindx, fftw_kind kindy, fftw_kind kindz, fftw_flags flags);
public static extern IntPtr dft_1d(int n, IntPtr input, IntPtr output, fftw_direction direction, fftw_flags flags);