public static FftwPlan DftC2r3D(int n0, int n1, int n2, out FftwArray inArray, out FftwArray outArray, FftwFlags flags = FftwFlags.FFTW_MEASURE) { inArray = new FftwArray(DftComplexLength(n0, n1, n2)); outArray = new FftwArray(DftRealLength(n0, n1, n2)); return(DftC2r3D(n0, n1, n2, inArray, outArray, flags)); }
public static FftwPlan DftC2r(int[] n, out FftwArray inArray, out FftwArray outArray, FftwFlags flags = FftwFlags.FFTW_MEASURE) { inArray = new FftwArray(DftComplexLength(n)); outArray = new FftwArray(DftRealLength(n)); return(DftC2r(n, inArray, outArray, flags)); }
public static FftwPlan DftR2r2D(int n0, int n1, out FftwArray inArray, out FftwArray outArray, FftwR2rKind kind0, FftwR2rKind kind1, FftwFlags flags = FftwFlags.FFTW_MEASURE) { int length = R2rLength(n0, n1, kind0, kind1); inArray = new FftwArray(length); outArray = new FftwArray(length); return(DftR2r2D(n0, n1, inArray, outArray, kind0, kind1, flags)); }
public static FftwPlan Dft(int[] n, out FftwArray inArray, out FftwArray outArray, FftwSign sign = FftwSign.FFTW_FORWARD, FftwFlags flags = FftwFlags.FFTW_MEASURE) { int length = DftLength(n); inArray = new FftwArray(length); outArray = new FftwArray(length); return(Dft(n, inArray, outArray, sign, flags)); }
public static FftwPlan DftR2r(int[] n, out FftwArray inArray, out FftwArray outArray, FftwR2rKind[] kind, FftwFlags flags = FftwFlags.FFTW_MEASURE) { int length = R2rLength(n, kind); inArray = new FftwArray(length); outArray = new FftwArray(length); return(DftR2r(n, inArray, outArray, kind, flags)); }
public static FftwPlan DftR2r(int[] n, FftwArray inArray, FftwArray outArray, FftwR2rKind[] kind, FftwFlags flags = FftwFlags.FFTW_MEASURE) { int length = R2rLength(n, kind); ValidateArray(inArray, length, nameof(inArray)); ValidateArray(outArray, length, nameof(outArray)); return(new FftwPlan(flags, fftw_plan_r2r(n.Length, n, inArray.Pointer, outArray.Pointer, kind, (uint_t)flags), inArray, outArray)); }
public static FftwPlan DftR2r2D(int n0, int n1, FftwArray inArray, FftwArray outArray, FftwR2rKind kind0, FftwR2rKind kind1, FftwFlags flags = FftwFlags.FFTW_MEASURE) { int length = R2rLength(n0, n1, kind0, kind1); ValidateArray(inArray, length, nameof(inArray)); ValidateArray(outArray, length, nameof(outArray)); return(new FftwPlan(flags, fftw_plan_r2r_2d(n0, n1, inArray.Pointer, outArray.Pointer, kind0, kind1, (uint_t)flags), inArray, outArray)); }
public static FftwPlan Dft(int[] n, FftwArray inArray, FftwArray outArray, FftwSign sign = FftwSign.FFTW_FORWARD, FftwFlags flags = FftwFlags.FFTW_MEASURE) { int length = DftLength(n); ValidateSign(sign); ValidateArray(inArray, length, nameof(inArray)); ValidateArray(outArray, length, nameof(outArray)); return(new FftwPlan(flags, fftw_plan_dft(n.Length, n, inArray.Pointer, outArray.Pointer, (int_t)sign, (uint_t)flags), inArray, outArray)); }
public static FftwPlan DftR2c3D(int n0, int n1, int n2, FftwArray inArray, FftwArray outArray, FftwFlags flags = FftwFlags.FFTW_MEASURE) { int outLength = DftComplexLength(n0, n1, n2); int inLength = IsInPlace(inArray, outArray) ? outLength : DftRealLength(n0, n1, n2); ValidateArray(inArray, inLength, nameof(inArray)); ValidateArray(outArray, outLength, nameof(outArray)); return(new FftwPlan(flags, fftw_plan_dft_r2c_3d(n0, n1, n2, inArray.Pointer, outArray.Pointer, (uint_t)flags), inArray, outArray)); }
private FftwPlan(FftwFlags flags, IntPtr pointer, params FftwArray[] arrays) { if (pointer == IntPtr.Zero) { throw new ArgumentException("A NULL plan was returned by the FFTW planner method. " + "This is probably due to a bad flag. Please check the FFTW documentation for details."); } this.pointer = pointer; mustAlign = (flags & FftwFlags.FFTW_UNALIGNED) == 0; foreach (var array in arrays) { mustAlign = mustAlign && array.FftwAllocated; } }
public static FftwPlan DftC2r(int[] n, FftwArray inArray, FftwArray outArray, FftwFlags flags = FftwFlags.FFTW_MEASURE) { int inLength = DftComplexLength(n); int outLength = IsInPlace(inArray, outArray) ? inLength : DftRealLength(n); ValidateArray(inArray, outLength, nameof(inArray)); ValidateArray(outArray, inLength, nameof(outArray)); return(new FftwPlan(flags, fftw_plan_dft_c2r(n.Length, n, inArray.Pointer, outArray.Pointer, (uint_t)flags), inArray, outArray)); }
public static FftwPlan DftR2r3D(int n0, int n1, int n2, out FftwArray ioArray, FftwR2rKind kind0, FftwR2rKind kind1, FftwR2rKind kind2, FftwFlags flags = FftwFlags.FFTW_MEASURE) { ioArray = new FftwArray(R2rLength(n0, n1, n2, kind0, kind1, kind2)); return(DftR2r3D(n0, n1, n2, ioArray, ioArray, kind0, kind1, kind2, flags)); }
public static FftwPlan DftR2r1D(int n0, out FftwArray ioArray, FftwR2rKind kind0, FftwFlags flags = FftwFlags.FFTW_MEASURE) { ioArray = new FftwArray(R2rLength(n0, kind0)); return(DftR2r1D(n0, ioArray, ioArray, kind0, flags)); }
public static FftwPlan DftC2r2D(int n0, int n1, out FftwArray ioArray, FftwFlags flags = FftwFlags.FFTW_MEASURE) { ioArray = new FftwArray(DftComplexLength(n0, n1)); return(DftC2r2D(n0, n1, ioArray, ioArray, flags)); }
public static FftwPlan DftR2c(int[] n, out FftwArray ioArray, FftwFlags flags = FftwFlags.FFTW_MEASURE) { ioArray = new FftwArray(DftComplexLength(n)); return(DftR2c(n, ioArray, ioArray, flags)); }
public static FftwPlan Dft(int[] n, out FftwArray ioArray, FftwSign sign = FftwSign.FFTW_FORWARD, FftwFlags flags = FftwFlags.FFTW_MEASURE) { ioArray = new FftwArray(DftLength(n)); return(Dft(n, ioArray, ioArray, sign, flags)); }
public static FftwPlan DftR2r(int[] n, out FftwArray ioArray, FftwR2rKind[] kind, FftwFlags flags = FftwFlags.FFTW_MEASURE) { ioArray = new FftwArray(R2rLength(n, kind)); return(DftR2r(n, ioArray, ioArray, kind, flags)); }
public static FftwPlan Dft3D(int n0, int n1, int n2, out FftwArray ioArray, FftwSign sign = FftwSign.FFTW_FORWARD, FftwFlags flags = FftwFlags.FFTW_MEASURE) { ioArray = new FftwArray(DftLength(n0, n1, n2)); return(Dft3D(n0, n1, n2, ioArray, ioArray, sign, flags)); }