{-# LANGUAGE ForeignFunctionInterface #-}
module Numeric.FFTW.FFI.Float where
import qualified Numeric.FFTW.FFI.Function as FFT
import qualified Numeric.FFTW.FFI.Type as Type
import qualified Data.EnumBitSet as EnumSet
import qualified Foreign.C.Types as C
import Foreign.ForeignPtr (FinalizerPtr)
import Foreign.Ptr (Ptr)
import Foreign.C.String (CString)
foreign import ccall unsafe "fftw3.h fftwf_export_wisdom_to_string"
exportWisdomString :: IO CString
foreign import ccall unsafe "fftw3.h fftwf_import_wisdom_from_string"
importWisdomString :: CString -> IO C.CInt
foreign import ccall unsafe "fftw3.h fftwf_import_system_wisdom"
importWisdomSystem :: IO C.CInt
foreign import ccall safe "fftw3.h &fftwf_destroy_plan"
ptrDestroyPlan :: FinalizerPtr (Type.Plan Float)
foreign import ccall unsafe "fftw3.h &fftwf_free"
ptrFree :: FinalizerPtr (Ptr Float)
foreign import ccall safe "fftw3.h fftwf_plan_dft_1d"
planDFT1d :: FFT.PlanDFT1d Float
foreign import ccall safe "fftw3.h fftwf_plan_dft_2d"
planDFT2d :: FFT.PlanDFT2d Float
foreign import ccall safe "fftw3.h fftwf_plan_dft_3d"
planDFT3d :: FFT.PlanDFT3d Float
foreign import ccall safe "fftw3.h fftwf_plan_dft"
planDFT :: FFT.PlanDFT Float
foreign import ccall safe "fftw3.h fftwf_plan_dft_r2c_1d"
planDFTr2c1d :: FFT.PlanDFTr2c1d Float
foreign import ccall safe "fftw3.h fftwf_plan_dft_r2c_2d"
planDFTr2c2d :: FFT.PlanDFTr2c2d Float
foreign import ccall safe "fftw3.h fftwf_plan_dft_r2c_3d"
planDFTr2c3d :: FFT.PlanDFTr2c3d Float
foreign import ccall safe "fftw3.h fftwf_plan_dft_r2c"
planDFTr2c :: FFT.PlanDFTr2c Float
foreign import ccall safe "fftw3.h fftwf_plan_dft_c2r_1d"
planDFTc2r1d :: FFT.PlanDFTc2r1d Float
foreign import ccall safe "fftw3.h fftwf_plan_dft_c2r_2d"
planDFTc2r2d :: FFT.PlanDFTc2r2d Float
foreign import ccall safe "fftw3.h fftwf_plan_dft_c2r_3d"
planDFTc2r3d :: FFT.PlanDFTc2r3d Float
foreign import ccall safe "fftw3.h fftwf_plan_dft_c2r"
planDFTc2r :: FFT.PlanDFTc2r Float
foreign import ccall safe "fftw3.h fftwf_plan_r2r_1d"
planR2r1d :: FFT.PlanR2r1d Float
foreign import ccall safe "fftw3.h fftwf_plan_r2r_2d"
planR2r2d :: FFT.PlanR2r2d Float
foreign import ccall safe "fftw3.h fftwf_plan_r2r_3d"
planR2r3d :: FFT.PlanR2r3d Float
foreign import ccall safe "fftw3.h fftwf_plan_r2r"
planR2r :: FFT.PlanR2r Float
foreign import ccall safe "fftw3.h fftwf_plan_many_dft"
planManyDFT :: FFT.PlanManyDFT Float
foreign import ccall safe "fftw3.h fftwf_plan_many_dft_r2c"
planManyDFTr2c :: FFT.PlanManyDFTr2c Float
foreign import ccall safe "fftw3.h fftwf_plan_many_dft_c2r"
planManyDFTc2r :: FFT.PlanManyDFTc2r Float
foreign import ccall safe "fftw3.h fftwf_plan_many_r2r"
planManyR2r :: FFT.PlanManyR2r Float
foreign import ccall safe "fftw3.h fftwf_plan_guru_dft"
planGuruDFT :: FFT.PlanGuruDFT Float
foreign import ccall safe "fftw3.h fftwf_plan_guru_dft_r2c"
planGuruDFTr2c :: FFT.PlanGuruDFTr2c Float
foreign import ccall safe "fftw3.h fftwf_plan_guru_dft_c2r"
planGuruDFTc2r :: FFT.PlanGuruDFTc2r Float
foreign import ccall safe "fftw3.h fftwf_plan_guru_r2r"
planGuruR2r :: FFT.PlanGuruR2r Float
foreign import ccall safe "fftw3.h fftwf_plan_guru_split_dft"
planGuruSplitDFT :: FFT.PlanGuruSplitDFT Float
foreign import ccall safe "fftw3.h fftwf_plan_guru_split_dft_r2c"
planGuruSplitDFTr2c :: FFT.PlanGuruSplitDFTr2c Float
foreign import ccall safe "fftw3.h fftwf_plan_guru_split_dft_c2r"
planGuruSplitDFTc2r :: FFT.PlanGuruSplitDFTc2r Float
foreign import ccall safe "fftw3.h fftwf_destroy_plan"
destroyPlan :: FFT.DestroyPlan Float
foreign import ccall safe "fftw3.h fftwf_execute"
execute :: FFT.Execute Float
foreign import ccall safe "fftw3.h fftwf_execute_dft"
executeDFT :: FFT.ExecuteDFT Float
foreign import ccall safe "fftw3.h fftwf_execute_dft_r2c"
executeDFTr2c :: FFT.ExecuteDFTr2c Float
foreign import ccall safe "fftw3.h fftwf_execute_dft_c2r"
executeDFTc2r :: FFT.ExecuteDFTc2r Float
foreign import ccall safe "fftw3.h fftwf_execute_r2r"
executeR2r :: FFT.ExecuteR2r Float
foreign import ccall safe "fftw3.h fftwf_execute_split_dft"
executeSplitDFT :: FFT.ExecuteSplitDFT Float
foreign import ccall safe "fftw3.h fftwf_execute_split_dft_r2c"
executeSplitDFTr2c :: FFT.ExecuteSplitDFTr2c Float
foreign import ccall safe "fftw3.h fftwf_execute_split_dft_c2r"
executeSplitDFTc2r :: FFT.ExecuteSplitDFTc2r Float
foreign import ccall unsafe "fftw3.h fftwf_malloc"
malloc :: FFT.Malloc Float
foreign import ccall unsafe "fftw3.h fftwf_free"
free :: FFT.Free Float
foreign import ccall unsafe "fftw3.h fftwf_alloc_real"
allocReal :: FFT.AllocReal Float
foreign import ccall unsafe "fftw3.h fftwf_alloc_complex"
allocComplex :: FFT.AllocComplex Float
foreign import ccall unsafe "fftw3.h fftwf_free"
freeComplex :: FFT.FreeComplex Float