public static NativeMatrix <T> AllocateMatrix <T>(int nx, int ny) where T : struct { var size = NativeMatrix <T> .ElementSize; IntPtr ptr = Fftw.Malloc((IntPtr)(nx * ny * size)); _allPointers.Add(ptr); return(new NativeMatrix <T>(ptr, nx, ny)); }
public static NativeArray <T> AllocateArray <T>(int length) where T : struct { var size = NativeArray <T> .ElementSize; IntPtr ptr = Fftw.Malloc((IntPtr)(length * size)); _allPointers.Add(ptr); return(new NativeArray <T>(ptr, length)); }
private void ReleaseUnmanagedResources() { Fftw.DestroyPlan(_planPtr); }
public override void Execute <T>(NativeArray <T> array) { Fftw.ExecuteDft(PlanPtr, array.Ptr, array.Ptr); }
public override void Execute() { Fftw.Execute(PlanPtr); }
public static Plan Create(NativeArray <SingleComplex> array, Direction direction) { IntPtr ptr = Fftw.PlanDft1D(array.Length, array.Ptr, array.Ptr, (int)direction, (uint)Flags.Estimate); return(new ArrayPlan <SingleComplex>(ptr, array)); }