From c99b8fd6e3f8a2fb365ec12baf838f864b118ece Mon Sep 17 00:00:00 2001 From: Alberto Ruiz Date: Mon, 1 Oct 2007 15:04:16 +0000 Subject: LinearAlgebra and GSL moved to Numeric --- lib/Numeric/GSL/Special/Trig.hs | 164 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 lib/Numeric/GSL/Special/Trig.hs (limited to 'lib/Numeric/GSL/Special/Trig.hs') diff --git a/lib/Numeric/GSL/Special/Trig.hs b/lib/Numeric/GSL/Special/Trig.hs new file mode 100644 index 0000000..b846c1d --- /dev/null +++ b/lib/Numeric/GSL/Special/Trig.hs @@ -0,0 +1,164 @@ +------------------------------------------------------------ +{- | +Module : Numeric.GSL.Special.Trig +Copyright : (c) Alberto Ruiz 2006 +License : GPL-style +Maintainer : Alberto Ruiz (aruiz at um dot es) +Stability : provisional +Portability : uses ffi + +Wrappers for selected functions described at: + + + +-} +------------------------------------------------------------ + +module Numeric.GSL.Special.Trig( + sin_e +, Numeric.GSL.Special.Trig.sin +, cos_e +, Numeric.GSL.Special.Trig.cos +, hypot_e +, hypot +, sinc_e +, sinc +, lnsinh_e +, lnsinh +, lncosh_e +, lncosh +, sin_err_e +, cos_err_e +, angle_restrict_symm +, angle_restrict_pos +, angle_restrict_symm_err_e +, angle_restrict_pos_err_e +) where + +import Foreign(Ptr) +import Numeric.GSL.Special.Internal + +-- | wrapper for int gsl_sf_sin_e(double x,gsl_sf_result* result); +sin_e :: Double -> (Double,Double) +sin_e x = createSFR "sin_e" $ gsl_sf_sin_e x +foreign import ccall "trig.h gsl_sf_sin_e" gsl_sf_sin_e :: Double -> Ptr Double -> IO(Int) + +-- | wrapper for double gsl_sf_sin(double x); +sin :: Double -> Double +sin = gsl_sf_sin +foreign import ccall "trig.h gsl_sf_sin" gsl_sf_sin :: Double -> Double + +-- | wrapper for int gsl_sf_cos_e(double x,gsl_sf_result* result); +cos_e :: Double -> (Double,Double) +cos_e x = createSFR "cos_e" $ gsl_sf_cos_e x +foreign import ccall "trig.h gsl_sf_cos_e" gsl_sf_cos_e :: Double -> Ptr Double -> IO(Int) + +-- | wrapper for double gsl_sf_cos(double x); +cos :: Double -> Double +cos = gsl_sf_cos +foreign import ccall "trig.h gsl_sf_cos" gsl_sf_cos :: Double -> Double + +-- | wrapper for int gsl_sf_hypot_e(double x,double y,gsl_sf_result* result); +hypot_e :: Double -> Double -> (Double,Double) +hypot_e x y = createSFR "hypot_e" $ gsl_sf_hypot_e x y +foreign import ccall "trig.h gsl_sf_hypot_e" gsl_sf_hypot_e :: Double -> Double -> Ptr Double -> IO(Int) + +-- | wrapper for double gsl_sf_hypot(double x,double y); +hypot :: Double -> Double -> Double +hypot = gsl_sf_hypot +foreign import ccall "trig.h gsl_sf_hypot" gsl_sf_hypot :: Double -> Double -> Double + +-- | wrapper for int gsl_sf_complex_sin_e(double zr,double zi,gsl_sf_result* szr,gsl_sf_result* szi); +complex_sin_e :: Double -> Double -> Ptr Double -> (Double,Double) +complex_sin_e zr zi szr = createSFR "complex_sin_e" $ gsl_sf_complex_sin_e zr zi szr +foreign import ccall "trig.h gsl_sf_complex_sin_e" gsl_sf_complex_sin_e :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int) + +-- | wrapper for int gsl_sf_complex_cos_e(double zr,double zi,gsl_sf_result* czr,gsl_sf_result* czi); +complex_cos_e :: Double -> Double -> Ptr Double -> (Double,Double) +complex_cos_e zr zi czr = createSFR "complex_cos_e" $ gsl_sf_complex_cos_e zr zi czr +foreign import ccall "trig.h gsl_sf_complex_cos_e" gsl_sf_complex_cos_e :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int) + +-- | wrapper for int gsl_sf_complex_logsin_e(double zr,double zi,gsl_sf_result* lszr,gsl_sf_result* lszi); +complex_logsin_e :: Double -> Double -> Ptr Double -> (Double,Double) +complex_logsin_e zr zi lszr = createSFR "complex_logsin_e" $ gsl_sf_complex_logsin_e zr zi lszr +foreign import ccall "trig.h gsl_sf_complex_logsin_e" gsl_sf_complex_logsin_e :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int) + +-- | wrapper for int gsl_sf_sinc_e(double x,gsl_sf_result* result); +sinc_e :: Double -> (Double,Double) +sinc_e x = createSFR "sinc_e" $ gsl_sf_sinc_e x +foreign import ccall "trig.h gsl_sf_sinc_e" gsl_sf_sinc_e :: Double -> Ptr Double -> IO(Int) + +-- | wrapper for double gsl_sf_sinc(double x); +sinc :: Double -> Double +sinc = gsl_sf_sinc +foreign import ccall "trig.h gsl_sf_sinc" gsl_sf_sinc :: Double -> Double + +-- | wrapper for int gsl_sf_lnsinh_e(double x,gsl_sf_result* result); +lnsinh_e :: Double -> (Double,Double) +lnsinh_e x = createSFR "lnsinh_e" $ gsl_sf_lnsinh_e x +foreign import ccall "trig.h gsl_sf_lnsinh_e" gsl_sf_lnsinh_e :: Double -> Ptr Double -> IO(Int) + +-- | wrapper for double gsl_sf_lnsinh(double x); +lnsinh :: Double -> Double +lnsinh = gsl_sf_lnsinh +foreign import ccall "trig.h gsl_sf_lnsinh" gsl_sf_lnsinh :: Double -> Double + +-- | wrapper for int gsl_sf_lncosh_e(double x,gsl_sf_result* result); +lncosh_e :: Double -> (Double,Double) +lncosh_e x = createSFR "lncosh_e" $ gsl_sf_lncosh_e x +foreign import ccall "trig.h gsl_sf_lncosh_e" gsl_sf_lncosh_e :: Double -> Ptr Double -> IO(Int) + +-- | wrapper for double gsl_sf_lncosh(double x); +lncosh :: Double -> Double +lncosh = gsl_sf_lncosh +foreign import ccall "trig.h gsl_sf_lncosh" gsl_sf_lncosh :: Double -> Double + +-- | wrapper for int gsl_sf_polar_to_rect(double r,double theta,gsl_sf_result* x,gsl_sf_result* y); +polar_to_rect :: Double -> Double -> Ptr Double -> (Double,Double) +polar_to_rect r theta x = createSFR "polar_to_rect" $ gsl_sf_polar_to_rect r theta x +foreign import ccall "trig.h gsl_sf_polar_to_rect" gsl_sf_polar_to_rect :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int) + +-- | wrapper for int gsl_sf_rect_to_polar(double x,double y,gsl_sf_result* r,gsl_sf_result* theta); +rect_to_polar :: Double -> Double -> Ptr Double -> (Double,Double) +rect_to_polar x y r = createSFR "rect_to_polar" $ gsl_sf_rect_to_polar x y r +foreign import ccall "trig.h gsl_sf_rect_to_polar" gsl_sf_rect_to_polar :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int) + +-- | wrapper for int gsl_sf_sin_err_e(double x,double dx,gsl_sf_result* result); +sin_err_e :: Double -> Double -> (Double,Double) +sin_err_e x dx = createSFR "sin_err_e" $ gsl_sf_sin_err_e x dx +foreign import ccall "trig.h gsl_sf_sin_err_e" gsl_sf_sin_err_e :: Double -> Double -> Ptr Double -> IO(Int) + +-- | wrapper for int gsl_sf_cos_err_e(double x,double dx,gsl_sf_result* result); +cos_err_e :: Double -> Double -> (Double,Double) +cos_err_e x dx = createSFR "cos_err_e" $ gsl_sf_cos_err_e x dx +foreign import ccall "trig.h gsl_sf_cos_err_e" gsl_sf_cos_err_e :: Double -> Double -> Ptr Double -> IO(Int) + +-- | wrapper for int gsl_sf_angle_restrict_symm_e(double* theta); +angle_restrict_symm_e :: Ptr Double -> Int +angle_restrict_symm_e = gsl_sf_angle_restrict_symm_e +foreign import ccall "trig.h gsl_sf_angle_restrict_symm_e" gsl_sf_angle_restrict_symm_e :: Ptr Double -> Int + +-- | wrapper for double gsl_sf_angle_restrict_symm(double theta); +angle_restrict_symm :: Double -> Double +angle_restrict_symm = gsl_sf_angle_restrict_symm +foreign import ccall "trig.h gsl_sf_angle_restrict_symm" gsl_sf_angle_restrict_symm :: Double -> Double + +-- | wrapper for int gsl_sf_angle_restrict_pos_e(double* theta); +angle_restrict_pos_e :: Ptr Double -> Int +angle_restrict_pos_e = gsl_sf_angle_restrict_pos_e +foreign import ccall "trig.h gsl_sf_angle_restrict_pos_e" gsl_sf_angle_restrict_pos_e :: Ptr Double -> Int + +-- | wrapper for double gsl_sf_angle_restrict_pos(double theta); +angle_restrict_pos :: Double -> Double +angle_restrict_pos = gsl_sf_angle_restrict_pos +foreign import ccall "trig.h gsl_sf_angle_restrict_pos" gsl_sf_angle_restrict_pos :: Double -> Double + +-- | wrapper for int gsl_sf_angle_restrict_symm_err_e(double theta,gsl_sf_result* result); +angle_restrict_symm_err_e :: Double -> (Double,Double) +angle_restrict_symm_err_e theta = createSFR "angle_restrict_symm_err_e" $ gsl_sf_angle_restrict_symm_err_e theta +foreign import ccall "trig.h gsl_sf_angle_restrict_symm_err_e" gsl_sf_angle_restrict_symm_err_e :: Double -> Ptr Double -> IO(Int) + +-- | wrapper for int gsl_sf_angle_restrict_pos_err_e(double theta,gsl_sf_result* result); +angle_restrict_pos_err_e :: Double -> (Double,Double) +angle_restrict_pos_err_e theta = createSFR "angle_restrict_pos_err_e" $ gsl_sf_angle_restrict_pos_err_e theta +foreign import ccall "trig.h gsl_sf_angle_restrict_pos_err_e" gsl_sf_angle_restrict_pos_err_e :: Double -> Ptr Double -> IO(Int) -- cgit v1.2.3