saphWrapper :: (Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> CInt -> IO ())-> ( Ptr Double -> Ptr Double -> Ptr Double -> Int -> IO ())
saphWrapper f = (\c a b  n -> f (castPtr c ) (castPtr a) (castPtr c )  (CInt  $ fromIntegral n ))
saphWrapper :: (Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> CInt -> IO ())-> ( Ptr Double -> Ptr Double -> Ptr Double -> Int -> IO ())
saphWrapper f = (\c a b  n -> f (castPtr c ) (castPtr a) (castPtr c )  (CInt  $ fromIntegral n ))
saphWrapper f = (\c a b  n -> f (castPtr c ) (castPtr a) (castPtr c )  (CInt  $ fromIntegral n ))