Safe Haskell | None |
---|---|
Language | Haskell2010 |
Functions used internally by the SDR.Filter module. Most of these are not actually used but exist for benchmarking purposes to determine the fastest filter implementation.
Documentation
filterHighLevel :: (PrimMonad m, Functor m, Num a, Mult a b, Vector v a, Vector v b, MVector vm a) => v b -> Int -> v a -> vm (PrimState m) a -> m () Source #
filterImperative1 :: (PrimMonad m, Functor m, Num a, Mult a b, Vector v a, Vector v b, MVector vm a) => v b -> Int -> v a -> vm (PrimState m) a -> m () Source #
filterImperative2 :: (PrimMonad m, Functor m, Num a, Mult a b, Vector v a, Vector v b, MVector vm a) => v b -> Int -> v a -> vm (PrimState m) a -> m () Source #
type FilterRC = Vector Float -> Int -> Vector (Complex Float) -> MVector RealWorld (Complex Float) -> IO () Source #
filterFFIR :: FilterCRR -> FilterRR Source #
filterFFIC :: FilterCRR -> FilterRC Source #
decimateHighLevel :: (PrimMonad m, Functor m, Num a, Mult a b, Vector v a, Vector v b, MVector vm a) => Int -> v b -> Int -> v a -> vm (PrimState m) a -> m () Source #
type DecimateRR = Int -> Vector Float -> Int -> Vector Float -> MVector RealWorld Float -> IO () Source #
type DecimateRC = Int -> Vector Float -> Int -> Vector (Complex Float) -> MVector RealWorld (Complex Float) -> IO () Source #
decimateFFIR :: DecimateCRR -> DecimateRR Source #
decimateFFIC :: DecimateCRR -> DecimateRC Source #
decimateSSERC2_c :: CInt -> CInt -> CInt -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO () Source #
decimateAVXRC2_c :: CInt -> CInt -> CInt -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO () Source #
decimateSSESymmetricRR_c :: CInt -> CInt -> CInt -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO () Source #
decimateAVXSymmetricRR_c :: CInt -> CInt -> CInt -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO () Source #
decimateSSESymmetricRC_c :: CInt -> CInt -> CInt -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO () Source #
decimateAVXSymmetricRC_c :: CInt -> CInt -> CInt -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO () Source #
resampleHighLevel :: (PrimMonad m, Num a, Mult a b, Vector v a, Vector v b, MVector vm a) => Int -> Int -> v b -> Int -> Int -> v a -> vm (PrimState m) a -> m Int Source #
resample_c :: CInt -> CInt -> CInt -> CInt -> CInt -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO () Source #
resampleCRR :: Int -> Int -> Int -> Int -> Vector Float -> Vector Float -> MVector RealWorld Float -> IO () Source #
strideList :: Int -> [a] -> [a] Source #
resampleFFIR :: (Ptr CFloat -> Ptr CFloat -> IO CInt) -> Vector Float -> MVector RealWorld Float -> IO Int Source #
resampleFFIC :: (Ptr CFloat -> Ptr CFloat -> IO CInt) -> Vector (Complex Float) -> MVector RealWorld (Complex Float) -> IO Int Source #
type ResampleR = CInt -> CInt -> CInt -> CInt -> Ptr CInt -> Ptr (Ptr CFloat) -> Ptr CFloat -> Ptr CFloat -> IO CInt Source #
mkResampler :: ResampleR -> Int -> Int -> Int -> [Float] -> IO (Int -> Int -> Vector Float -> MVector RealWorld Float -> IO Int) Source #
type ResampleRR = Int -> Int -> [Float] -> IO (Int -> Int -> Vector Float -> MVector RealWorld Float -> IO Int) Source #
resample2_c :: CInt -> CInt -> CInt -> CInt -> Ptr CInt -> Ptr (Ptr CFloat) -> Ptr CFloat -> Ptr CFloat -> IO CInt Source #
resampleCSSERR_c :: CInt -> CInt -> CInt -> CInt -> Ptr CInt -> Ptr (Ptr CFloat) -> Ptr CFloat -> Ptr CFloat -> IO CInt Source #
resampleAVXRR_c :: CInt -> CInt -> CInt -> CInt -> Ptr CInt -> Ptr (Ptr CFloat) -> Ptr CFloat -> Ptr CFloat -> IO CInt Source #
type ResampleRC = Int -> Int -> [Float] -> IO (Int -> Int -> Vector (Complex Float) -> MVector RealWorld (Complex Float) -> IO Int) Source #
mkResamplerC :: ResampleR -> Int -> Int -> Int -> [Float] -> IO (Int -> Int -> Vector (Complex Float) -> MVector RealWorld (Complex Float) -> IO Int) Source #
resample2RC_c :: CInt -> CInt -> CInt -> CInt -> Ptr CInt -> Ptr (Ptr CFloat) -> Ptr CFloat -> Ptr CFloat -> IO CInt Source #
resampleCSSERC_c :: CInt -> CInt -> CInt -> CInt -> Ptr CInt -> Ptr (Ptr CFloat) -> Ptr CFloat -> Ptr CFloat -> IO CInt Source #
resampleAVXRC_c :: CInt -> CInt -> CInt -> CInt -> Ptr CInt -> Ptr (Ptr CFloat) -> Ptr CFloat -> Ptr CFloat -> IO CInt Source #
decimateCrossHighLevel :: (PrimMonad m, Functor m, Num a, Mult a b, Vector v a, Vector v b, MVector vm a) => Int -> v b -> Int -> v a -> v a -> vm (PrimState m) a -> m () Source #
filterCrossHighLevel :: (PrimMonad m, Functor m, Num a, Mult a b, Vector v a, Vector v b, MVector vm a) => v b -> Int -> v a -> v a -> vm (PrimState m) a -> m () Source #
resampleCrossHighLevel :: (PrimMonad m, Num a, Mult a b, Vector v a, Vector v b, MVector vm a) => Int -> Int -> v b -> Int -> Int -> v a -> v a -> vm (PrimState m) a -> m Int Source #