L      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !!!""""""""""""""""""""""""""""""""""""""""""""""     ############$ $!%"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3&4&5&6&7&8&9':';'<'='>'?'@ABCDEFGHIJKL(M(N(O(P(Q(R(S(T(U(V)W)X)Y)Z)[)\)])^)_)`)a)b)c)d)e)f)g)h)i)j)k)l)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*|*}*~****+5,portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es> description of GSL error codes  debug x = trace (show x) xuseful for expressions like sortBy (compare `on` length)  partit 3 [1..9] == [[1,2,3],[4,5,6],[7,8,9]]1obtains the common value of a property of a list postfix function application (flip ($)) specialized fromIntegral Aerror codes for the auxiliary functions required by the wrappers check the error code 3,-portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es>HA one-dimensional array of objects stored in a contiguous memory block. number of elements $foreign pointer to the memory block "allocates memory for a new vector creates a Vector from a list: > fromList [2,3,5,7] 4 |> [2.0,3.0,5.0,7.0]'extracts the Vector elements to a list > toList (linspace 5 (1,10)) [1.0,3.25,5.5,7.75,10.0]an alternative to J with explicit dimension, used also in the instances for Show (Vector a). 1access to Vector elements without range checking /access to Vector elements with range checking. 5takes a number of consecutive elements from a Vector  > subVector 2 3 (fromList [1..10]) 3 |> [3.0,4.0,5.0]Reads a vector position: > fromList [0..9] @> 7 7.02creates a new Vector by joining a list of Vectors > join [fromList [1..5], constant 1 3] %8 |> [1.0,2.0,3.0,4.0,5.0,1.0,1.0,1.0]Ztransforms a complex vector into a real vector with alternating real and imaginary parts Ytransforms a real vector into a complex vector with alternating real and imaginary parts map on Vectors zipWith for Vectors   .portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es> NOptimized matrix computations are provided for elements in the Element class. @Matrix representation suitable for GSL and LAPACK computations. Matrix transpose. *Creates a vector by concatenation of rows > flatten (ident 3) )9 |> [1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0]the inverse of Data.Packed.Matrix.fromLists (creates a Matrix from a list of vectors 3extracts the rows of a matrix as a list of vectors 4Creates a matrix from a list of vectors, as columns 7Creates a list of vectors from the columns of a matrix Reads a matrix position. Creates a matrix from a vector by grouping the elements in rows with the desired number of columns. (GNU-Octave groups by columns. To do it you can define reshapeF r = trans . reshape r (where r is the desired number of rows.) > reshape 4 ( [1..12]) (3><4)  [ 1.0, 2.0, 3.0, 4.0  , 5.0, 6.0, 7.0, 8.0  , 9.0, 10.0, 11.0, 12.0 ]Bapplication of a vector function on the flattened matrix elements Dapplication of a vector function on the flattened matrices elements matrix product -extraction of a submatrix from a real matrix 0extraction of a submatrix from a complex matrix $Extracts a submatrix from a matrix. #diagonal matrix from a real vector #diagonal matrix from a real vector 0creates a square matrix with the given diagonal :creates a vector with a given number of equal components: > constant 2 7 !7 |> [2.0,2.0,2.0,2.0,2.0,2.0,2.0]2obtains the complex conjugate of a complex vector Dcreates a complex vector from vectors with real and imaginary parts the inverse of  Qconverts a real vector into a complex representation (with zero imaginary parts) uloads a matrix efficiently from formatted ASCII text file (the number of rows and columns must be known in advance). H   9     /portable provisionalAlberto Ruiz <aruiz@um.es>    0uses ffi provisional!Alberto Ruiz (aruiz at um dot es)access to a sf_result access to sf_result_e10  ! !  !uses ffi provisional!Alberto Ruiz (aruiz at um dot es),"Lwrapper for int gsl_sf_legendre_Pl_e(int l,double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_legendre_Pl_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky #7wrapper for double gsl_sf_legendre_Pl(int l,double x);  jhttp://www.google.com/search?q=gsl_sf_legendre_Pl&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Rwrapper for int gsl_sf_legendre_Pl_array(int lmax,double x,double* result_array);  phttp://www.google.com/search?q=gsl_sf_legendre_Pl_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky swrapper for int gsl_sf_legendre_Pl_deriv_array(int lmax,double x,double* result_array,double* result_deriv_array);  vhttp://www.google.com/search?q=gsl_sf_legendre_Pl_deriv_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky $Fwrapper for int gsl_sf_legendre_P1_e(double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_legendre_P1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky %Fwrapper for int gsl_sf_legendre_P2_e(double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_legendre_P2_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky &Fwrapper for int gsl_sf_legendre_P3_e(double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_legendre_P3_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky '1wrapper for double gsl_sf_legendre_P1(double x);  jhttp://www.google.com/search?q=gsl_sf_legendre_P1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky (1wrapper for double gsl_sf_legendre_P2(double x);  jhttp://www.google.com/search?q=gsl_sf_legendre_P2&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky )1wrapper for double gsl_sf_legendre_P3(double x);  jhttp://www.google.com/search?q=gsl_sf_legendre_P3&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky *Fwrapper for int gsl_sf_legendre_Q0_e(double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_legendre_Q0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky +1wrapper for double gsl_sf_legendre_Q0(double x);  jhttp://www.google.com/search?q=gsl_sf_legendre_Q0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ,Fwrapper for int gsl_sf_legendre_Q1_e(double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_legendre_Q1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -1wrapper for double gsl_sf_legendre_Q1(double x);  jhttp://www.google.com/search?q=gsl_sf_legendre_Q1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky .Lwrapper for int gsl_sf_legendre_Ql_e(int l,double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_legendre_Ql_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /7wrapper for double gsl_sf_legendre_Ql(int l,double x);  jhttp://www.google.com/search?q=gsl_sf_legendre_Ql&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 0Swrapper for int gsl_sf_legendre_Plm_e(int l,int m,double x,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_legendre_Plm_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 1>wrapper for double gsl_sf_legendre_Plm(int l,int m,double x);  khttp://www.google.com/search?q=gsl_sf_legendre_Plm&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Ywrapper for int gsl_sf_legendre_Plm_array(int lmax,int m,double x,double* result_array);  qhttp://www.google.com/search?q=gsl_sf_legendre_Plm_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky zwrapper for int gsl_sf_legendre_Plm_deriv_array(int lmax,int m,double x,double* result_array,double* result_deriv_array);  whttp://www.google.com/search?q=gsl_sf_legendre_Plm_deriv_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 2Vwrapper for int gsl_sf_legendre_sphPlm_e(int l,int m,double x,gsl_sf_result* result);  phttp://www.google.com/search?q=gsl_sf_legendre_sphPlm_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 3Awrapper for double gsl_sf_legendre_sphPlm(int l,int m,double x);  nhttp://www.google.com/search?q=gsl_sf_legendre_sphPlm&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky \wrapper for int gsl_sf_legendre_sphPlm_array(int lmax,int m,double x,double* result_array);  thttp://www.google.com/search?q=gsl_sf_legendre_sphPlm_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky }wrapper for int gsl_sf_legendre_sphPlm_deriv_array(int lmax,int m,double x,double* result_array,double* result_deriv_array);  zhttp://www.google.com/search?q=gsl_sf_legendre_sphPlm_deriv_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 4<wrapper for int gsl_sf_legendre_array_size(int lmax,int m);  rhttp://www.google.com/search?q=gsl_sf_legendre_array_size&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 5Vwrapper for int gsl_sf_conicalP_half_e(double lambda,double x,gsl_sf_result* result);  nhttp://www.google.com/search?q=gsl_sf_conicalP_half_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 6Awrapper for double gsl_sf_conicalP_half(double lambda,double x);  lhttp://www.google.com/search?q=gsl_sf_conicalP_half&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 7Wwrapper for int gsl_sf_conicalP_mhalf_e(double lambda,double x,gsl_sf_result* result);  ohttp://www.google.com/search?q=gsl_sf_conicalP_mhalf_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 8Bwrapper for double gsl_sf_conicalP_mhalf(double lambda,double x);  mhttp://www.google.com/search?q=gsl_sf_conicalP_mhalf&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 9Swrapper for int gsl_sf_conicalP_0_e(double lambda,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_conicalP_0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky :>wrapper for double gsl_sf_conicalP_0(double lambda,double x);  ihttp://www.google.com/search?q=gsl_sf_conicalP_0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ;Swrapper for int gsl_sf_conicalP_1_e(double lambda,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_conicalP_1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky <>wrapper for double gsl_sf_conicalP_1(double lambda,double x);  ihttp://www.google.com/search?q=gsl_sf_conicalP_1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky =_wrapper for int gsl_sf_conicalP_sph_reg_e(int l,double lambda,double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_conicalP_sph_reg_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky >Jwrapper for double gsl_sf_conicalP_sph_reg(int l,double lambda,double x);  ohttp://www.google.com/search?q=gsl_sf_conicalP_sph_reg&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ?_wrapper for int gsl_sf_conicalP_cyl_reg_e(int m,double lambda,double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_conicalP_cyl_reg_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky @Jwrapper for double gsl_sf_conicalP_cyl_reg(int m,double lambda,double x);  ohttp://www.google.com/search?q=gsl_sf_conicalP_cyl_reg&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky AYwrapper for int gsl_sf_legendre_H3d_0_e(double lambda,double eta,gsl_sf_result* result);  ohttp://www.google.com/search?q=gsl_sf_legendre_H3d_0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky BDwrapper for double gsl_sf_legendre_H3d_0(double lambda,double eta);  mhttp://www.google.com/search?q=gsl_sf_legendre_H3d_0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky CYwrapper for int gsl_sf_legendre_H3d_1_e(double lambda,double eta,gsl_sf_result* result);  ohttp://www.google.com/search?q=gsl_sf_legendre_H3d_1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky DDwrapper for double gsl_sf_legendre_H3d_1(double lambda,double eta);  mhttp://www.google.com/search?q=gsl_sf_legendre_H3d_1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky E]wrapper for int gsl_sf_legendre_H3d_e(int l,double lambda,double eta,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_legendre_H3d_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky FHwrapper for double gsl_sf_legendre_H3d(int l,double lambda,double eta);  khttp://www.google.com/search?q=gsl_sf_legendre_H3d&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky cwrapper for int gsl_sf_legendre_H3d_array(int lmax,double lambda,double eta,double* result_array);  qhttp://www.google.com/search?q=gsl_sf_legendre_H3d_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky %"#$%&'()*+,-./0123456789:;<=>?@ABCDEF%"#$%&'()*+,-./0123456789:;<=>?@ABCDEF%"#$%&'()*+,-./0123456789:;<=>?@ABCDEFuses ffi provisional!Alberto Ruiz (aruiz at um dot es) G>wrapper for int gsl_sf_log_e(double x,gsl_sf_result* result);  dhttp://www.google.com/search?q=gsl_sf_log_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky H)wrapper for double gsl_sf_log(double x);  bhttp://www.google.com/search?q=gsl_sf_log&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky IBwrapper for int gsl_sf_log_abs_e(double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_log_abs_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky J-wrapper for double gsl_sf_log_abs(double x);  fhttp://www.google.com/search?q=gsl_sf_log_abs&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky cwrapper for int gsl_sf_complex_log_e(double zr,double zi,gsl_sf_result* lnr,gsl_sf_result* theta);  lhttp://www.google.com/search?q=gsl_sf_complex_log_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky KEwrapper for int gsl_sf_log_1plusx_e(double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_log_1plusx_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky L0wrapper for double gsl_sf_log_1plusx(double x);  ihttp://www.google.com/search?q=gsl_sf_log_1plusx&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky MHwrapper for int gsl_sf_log_1plusx_mx_e(double x,gsl_sf_result* result);  nhttp://www.google.com/search?q=gsl_sf_log_1plusx_mx_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky N3wrapper for double gsl_sf_log_1plusx_mx(double x);  lhttp://www.google.com/search?q=gsl_sf_log_1plusx_mx&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky GHIJKLMNGHIJKLMNGHIJKLMNuses ffi provisional!Alberto Ruiz (aruiz at um dot es)O@wrapper for int gsl_sf_zeta_int_e(int n,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_zeta_int_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky P+wrapper for double gsl_sf_zeta_int(int n);  ghttp://www.google.com/search?q=gsl_sf_zeta_int&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Q?wrapper for int gsl_sf_zeta_e(double s,gsl_sf_result* result);  ehttp://www.google.com/search?q=gsl_sf_zeta_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky R*wrapper for double gsl_sf_zeta(double s);  chttp://www.google.com/search?q=gsl_sf_zeta&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky SAwrapper for int gsl_sf_zetam1_e(double s,gsl_sf_result* result);  ghttp://www.google.com/search?q=gsl_sf_zetam1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky T,wrapper for double gsl_sf_zetam1(double s);  ehttp://www.google.com/search?q=gsl_sf_zetam1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky UBwrapper for int gsl_sf_zetam1_int_e(int s,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_zetam1_int_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky V-wrapper for double gsl_sf_zetam1_int(int s);  ihttp://www.google.com/search?q=gsl_sf_zetam1_int&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky WIwrapper for int gsl_sf_hzeta_e(double s,double q,gsl_sf_result* result);  fhttp://www.google.com/search?q=gsl_sf_hzeta_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky X4wrapper for double gsl_sf_hzeta(double s,double q);  dhttp://www.google.com/search?q=gsl_sf_hzeta&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Y?wrapper for int gsl_sf_eta_int_e(int n,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_eta_int_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Z*wrapper for double gsl_sf_eta_int(int n);  fhttp://www.google.com/search?q=gsl_sf_eta_int&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky [>wrapper for int gsl_sf_eta_e(double s,gsl_sf_result* result);  dhttp://www.google.com/search?q=gsl_sf_eta_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky \)wrapper for double gsl_sf_eta(double s);  bhttp://www.google.com/search?q=gsl_sf_eta&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky OPQRSTUVWXYZ[\OPQRSTUVWXYZ[\OPQRSTUVWXYZ[\uses ffi provisional!Alberto Ruiz (aruiz at um dot es)]>wrapper for int gsl_sf_sin_e(double x,gsl_sf_result* result);  dhttp://www.google.com/search?q=gsl_sf_sin_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ^)wrapper for double gsl_sf_sin(double x);  bhttp://www.google.com/search?q=gsl_sf_sin&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky _>wrapper for int gsl_sf_cos_e(double x,gsl_sf_result* result);  dhttp://www.google.com/search?q=gsl_sf_cos_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky `)wrapper for double gsl_sf_cos(double x);  bhttp://www.google.com/search?q=gsl_sf_cos&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky aIwrapper for int gsl_sf_hypot_e(double x,double y,gsl_sf_result* result);  fhttp://www.google.com/search?q=gsl_sf_hypot_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky b4wrapper for double gsl_sf_hypot(double x,double y);  dhttp://www.google.com/search?q=gsl_sf_hypot&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky awrapper for int gsl_sf_complex_sin_e(double zr,double zi,gsl_sf_result* szr,gsl_sf_result* szi);  lhttp://www.google.com/search?q=gsl_sf_complex_sin_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky awrapper for int gsl_sf_complex_cos_e(double zr,double zi,gsl_sf_result* czr,gsl_sf_result* czi);  lhttp://www.google.com/search?q=gsl_sf_complex_cos_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky fwrapper for int gsl_sf_complex_logsin_e(double zr,double zi,gsl_sf_result* lszr,gsl_sf_result* lszi);  ohttp://www.google.com/search?q=gsl_sf_complex_logsin_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky c?wrapper for int gsl_sf_sinc_e(double x,gsl_sf_result* result);  ehttp://www.google.com/search?q=gsl_sf_sinc_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky d*wrapper for double gsl_sf_sinc(double x);  chttp://www.google.com/search?q=gsl_sf_sinc&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky eAwrapper for int gsl_sf_lnsinh_e(double x,gsl_sf_result* result);  ghttp://www.google.com/search?q=gsl_sf_lnsinh_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky f,wrapper for double gsl_sf_lnsinh(double x);  ehttp://www.google.com/search?q=gsl_sf_lnsinh&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky gAwrapper for int gsl_sf_lncosh_e(double x,gsl_sf_result* result);  ghttp://www.google.com/search?q=gsl_sf_lncosh_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky h,wrapper for double gsl_sf_lncosh(double x);  ehttp://www.google.com/search?q=gsl_sf_lncosh&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky _wrapper for int gsl_sf_polar_to_rect(double r,double theta,gsl_sf_result* x,gsl_sf_result* y);  lhttp://www.google.com/search?q=gsl_sf_polar_to_rect&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky _wrapper for int gsl_sf_rect_to_polar(double x,double y,gsl_sf_result* r,gsl_sf_result* theta);  lhttp://www.google.com/search?q=gsl_sf_rect_to_polar&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky iLwrapper for int gsl_sf_sin_err_e(double x,double dx,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_sin_err_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky jLwrapper for int gsl_sf_cos_err_e(double x,double dx,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_cos_err_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky =wrapper for int gsl_sf_angle_restrict_symm_e(double* theta);  thttp://www.google.com/search?q=gsl_sf_angle_restrict_symm_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky k=wrapper for double gsl_sf_angle_restrict_symm(double theta);  rhttp://www.google.com/search?q=gsl_sf_angle_restrict_symm&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky <wrapper for int gsl_sf_angle_restrict_pos_e(double* theta);  shttp://www.google.com/search?q=gsl_sf_angle_restrict_pos_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky l<wrapper for double gsl_sf_angle_restrict_pos(double theta);  qhttp://www.google.com/search?q=gsl_sf_angle_restrict_pos&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky mVwrapper for int gsl_sf_angle_restrict_symm_err_e(double theta,gsl_sf_result* result);  xhttp://www.google.com/search?q=gsl_sf_angle_restrict_symm_err_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky nUwrapper for int gsl_sf_angle_restrict_pos_err_e(double theta,gsl_sf_result* result);  whttp://www.google.com/search?q=gsl_sf_angle_restrict_pos_err_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ]^_`abcdefghijklmn]^_`abcdefghijklmn]^_`abcdefghijklmn uses ffi provisional!Alberto Ruiz (aruiz at um dot es)oHwrapper for int gsl_sf_synchrotron_1_e(double x,gsl_sf_result* result);  nhttp://www.google.com/search?q=gsl_sf_synchrotron_1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky p3wrapper for double gsl_sf_synchrotron_1(double x);  lhttp://www.google.com/search?q=gsl_sf_synchrotron_1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky qHwrapper for int gsl_sf_synchrotron_2_e(double x,gsl_sf_result* result);  nhttp://www.google.com/search?q=gsl_sf_synchrotron_2_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky r3wrapper for double gsl_sf_synchrotron_2(double x);  lhttp://www.google.com/search?q=gsl_sf_synchrotron_2&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky opqropqropqr uses ffi provisional!Alberto Ruiz (aruiz at um dot es) s?wrapper for int gsl_sf_psi_int_e(int n,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_psi_int_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky t*wrapper for double gsl_sf_psi_int(int n);  fhttp://www.google.com/search?q=gsl_sf_psi_int&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky u>wrapper for int gsl_sf_psi_e(double x,gsl_sf_result* result);  dhttp://www.google.com/search?q=gsl_sf_psi_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky v)wrapper for double gsl_sf_psi(double x);  bhttp://www.google.com/search?q=gsl_sf_psi&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky wCwrapper for int gsl_sf_psi_1piy_e(double y,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_psi_1piy_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky x.wrapper for double gsl_sf_psi_1piy(double y);  ghttp://www.google.com/search?q=gsl_sf_psi_1piy&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky kwrapper for int gsl_sf_complex_psi_e(double x,double y,gsl_sf_result* result_re,gsl_sf_result* result_im);  lhttp://www.google.com/search?q=gsl_sf_complex_psi_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky yAwrapper for int gsl_sf_psi_1_int_e(int n,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_psi_1_int_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky z,wrapper for double gsl_sf_psi_1_int(int n);  hhttp://www.google.com/search?q=gsl_sf_psi_1_int&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky {@wrapper for int gsl_sf_psi_1_e(double x,gsl_sf_result* result);  fhttp://www.google.com/search?q=gsl_sf_psi_1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky |+wrapper for double gsl_sf_psi_1(double x);  dhttp://www.google.com/search?q=gsl_sf_psi_1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky }Fwrapper for int gsl_sf_psi_n_e(int n,double x,gsl_sf_result* result);  fhttp://www.google.com/search?q=gsl_sf_psi_n_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ~1wrapper for double gsl_sf_psi_n(int n,double x);  dhttp://www.google.com/search?q=gsl_sf_psi_n&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky stuvwxyz{|}~ stuvwxyz{|}~ stuvwxyz{|}~ uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Hwrapper for int gsl_sf_pow_int_e(double x,int n,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_pow_int_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 3wrapper for double gsl_sf_pow_int(double x,int n);  fhttp://www.google.com/search?q=gsl_sf_pow_int&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Ewrapper for int gsl_sf_lambert_W0_e(double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_lambert_W0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 0wrapper for double gsl_sf_lambert_W0(double x);  ihttp://www.google.com/search?q=gsl_sf_lambert_W0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Fwrapper for int gsl_sf_lambert_Wm1_e(double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_lambert_Wm1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 1wrapper for double gsl_sf_lambert_Wm1(double x);  jhttp://www.google.com/search?q=gsl_sf_lambert_Wm1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Nwrapper for int gsl_sf_laguerre_1_e(double a,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_laguerre_1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Nwrapper for int gsl_sf_laguerre_2_e(double a,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_laguerre_2_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Nwrapper for int gsl_sf_laguerre_3_e(double a,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_laguerre_3_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 9wrapper for double gsl_sf_laguerre_1(double a,double x);  ihttp://www.google.com/search?q=gsl_sf_laguerre_1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 9wrapper for double gsl_sf_laguerre_2(double a,double x);  ihttp://www.google.com/search?q=gsl_sf_laguerre_2&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 9wrapper for double gsl_sf_laguerre_3(double a,double x);  ihttp://www.google.com/search?q=gsl_sf_laguerre_3&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Twrapper for int gsl_sf_laguerre_n_e(int n,double a,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_laguerre_n_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ?wrapper for double gsl_sf_laguerre_n(int n,double a,double x);  ihttp://www.google.com/search?q=gsl_sf_laguerre_n&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Nwrapper for int gsl_sf_hyperg_0F1_e(double c,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_hyperg_0F1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 9wrapper for double gsl_sf_hyperg_0F1(double c,double x);  ihttp://www.google.com/search?q=gsl_sf_hyperg_0F1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Uwrapper for int gsl_sf_hyperg_1F1_int_e(int m,int n,double x,gsl_sf_result* result);  ohttp://www.google.com/search?q=gsl_sf_hyperg_1F1_int_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky @wrapper for double gsl_sf_hyperg_1F1_int(int m,int n,double x);  mhttp://www.google.com/search?q=gsl_sf_hyperg_1F1_int&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Wwrapper for int gsl_sf_hyperg_1F1_e(double a,double b,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_hyperg_1F1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for double gsl_sf_hyperg_1F1(double a,double b,double x);  ihttp://www.google.com/search?q=gsl_sf_hyperg_1F1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Swrapper for int gsl_sf_hyperg_U_int_e(int m,int n,double x,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_hyperg_U_int_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky >wrapper for double gsl_sf_hyperg_U_int(int m,int n,double x);  khttp://www.google.com/search?q=gsl_sf_hyperg_U_int&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky [wrapper for int gsl_sf_hyperg_U_int_e10_e(int m,int n,double x,gsl_sf_result_e10* result);  qhttp://www.google.com/search?q=gsl_sf_hyperg_U_int_e10_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Uwrapper for int gsl_sf_hyperg_U_e(double a,double b,double x,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_hyperg_U_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky @wrapper for double gsl_sf_hyperg_U(double a,double b,double x);  ghttp://www.google.com/search?q=gsl_sf_hyperg_U&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ]wrapper for int gsl_sf_hyperg_U_e10_e(double a,double b,double x,gsl_sf_result_e10* result);  mhttp://www.google.com/search?q=gsl_sf_hyperg_U_e10_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky `wrapper for int gsl_sf_hyperg_2F1_e(double a,double b,double c,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_hyperg_2F1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Kwrapper for double gsl_sf_hyperg_2F1(double a,double b,double c,double x);  ihttp://www.google.com/search?q=gsl_sf_hyperg_2F1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky gwrapper for int gsl_sf_hyperg_2F1_conj_e(double aR,double aI,double c,double x,gsl_sf_result* result);  phttp://www.google.com/search?q=gsl_sf_hyperg_2F1_conj_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Rwrapper for double gsl_sf_hyperg_2F1_conj(double aR,double aI,double c,double x);  nhttp://www.google.com/search?q=gsl_sf_hyperg_2F1_conj&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky gwrapper for int gsl_sf_hyperg_2F1_renorm_e(double a,double b,double c,double x,gsl_sf_result* result);  rhttp://www.google.com/search?q=gsl_sf_hyperg_2F1_renorm_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Rwrapper for double gsl_sf_hyperg_2F1_renorm(double a,double b,double c,double x);  phttp://www.google.com/search?q=gsl_sf_hyperg_2F1_renorm&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky nwrapper for int gsl_sf_hyperg_2F1_conj_renorm_e(double aR,double aI,double c,double x,gsl_sf_result* result);  whttp://www.google.com/search?q=gsl_sf_hyperg_2F1_conj_renorm_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Ywrapper for double gsl_sf_hyperg_2F1_conj_renorm(double aR,double aI,double c,double x);  uhttp://www.google.com/search?q=gsl_sf_hyperg_2F1_conj_renorm&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Wwrapper for int gsl_sf_hyperg_2F0_e(double a,double b,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_hyperg_2F0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for double gsl_sf_hyperg_2F0(double a,double b,double x);  ihttp://www.google.com/search?q=gsl_sf_hyperg_2F0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es) Twrapper for int gsl_sf_gegenpoly_1_e(double lambda,double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_gegenpoly_1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Twrapper for int gsl_sf_gegenpoly_2_e(double lambda,double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_gegenpoly_2_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Twrapper for int gsl_sf_gegenpoly_3_e(double lambda,double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_gegenpoly_3_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ?wrapper for double gsl_sf_gegenpoly_1(double lambda,double x);  jhttp://www.google.com/search?q=gsl_sf_gegenpoly_1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ?wrapper for double gsl_sf_gegenpoly_2(double lambda,double x);  jhttp://www.google.com/search?q=gsl_sf_gegenpoly_2&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ?wrapper for double gsl_sf_gegenpoly_3(double lambda,double x);  jhttp://www.google.com/search?q=gsl_sf_gegenpoly_3&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Zwrapper for int gsl_sf_gegenpoly_n_e(int n,double lambda,double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_gegenpoly_n_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Ewrapper for double gsl_sf_gegenpoly_n(int n,double lambda,double x);  jhttp://www.google.com/search?q=gsl_sf_gegenpoly_n&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  ^wrapper for int gsl_sf_gegenpoly_array(int nmax,double lambda,double x,double* result_array);  nhttp://www.google.com/search?q=gsl_sf_gegenpoly_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Iwrapper for int gsl_sf_fermi_dirac_m1_e(double x,gsl_sf_result* result);  ohttp://www.google.com/search?q=gsl_sf_fermi_dirac_m1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 4wrapper for double gsl_sf_fermi_dirac_m1(double x);  mhttp://www.google.com/search?q=gsl_sf_fermi_dirac_m1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Hwrapper for int gsl_sf_fermi_dirac_0_e(double x,gsl_sf_result* result);  nhttp://www.google.com/search?q=gsl_sf_fermi_dirac_0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 3wrapper for double gsl_sf_fermi_dirac_0(double x);  lhttp://www.google.com/search?q=gsl_sf_fermi_dirac_0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Hwrapper for int gsl_sf_fermi_dirac_1_e(double x,gsl_sf_result* result);  nhttp://www.google.com/search?q=gsl_sf_fermi_dirac_1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 3wrapper for double gsl_sf_fermi_dirac_1(double x);  lhttp://www.google.com/search?q=gsl_sf_fermi_dirac_1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Hwrapper for int gsl_sf_fermi_dirac_2_e(double x,gsl_sf_result* result);  nhttp://www.google.com/search?q=gsl_sf_fermi_dirac_2_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 3wrapper for double gsl_sf_fermi_dirac_2(double x);  lhttp://www.google.com/search?q=gsl_sf_fermi_dirac_2&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Pwrapper for int gsl_sf_fermi_dirac_int_e(int j,double x,gsl_sf_result* result);  phttp://www.google.com/search?q=gsl_sf_fermi_dirac_int_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ;wrapper for double gsl_sf_fermi_dirac_int(int j,double x);  nhttp://www.google.com/search?q=gsl_sf_fermi_dirac_int&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Lwrapper for int gsl_sf_fermi_dirac_mhalf_e(double x,gsl_sf_result* result);  rhttp://www.google.com/search?q=gsl_sf_fermi_dirac_mhalf_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 7wrapper for double gsl_sf_fermi_dirac_mhalf(double x);  phttp://www.google.com/search?q=gsl_sf_fermi_dirac_mhalf&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Kwrapper for int gsl_sf_fermi_dirac_half_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_fermi_dirac_half_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 6wrapper for double gsl_sf_fermi_dirac_half(double x);  ohttp://www.google.com/search?q=gsl_sf_fermi_dirac_half&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Lwrapper for int gsl_sf_fermi_dirac_3half_e(double x,gsl_sf_result* result);  rhttp://www.google.com/search?q=gsl_sf_fermi_dirac_3half_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 7wrapper for double gsl_sf_fermi_dirac_3half(double x);  phttp://www.google.com/search?q=gsl_sf_fermi_dirac_3half&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Uwrapper for int gsl_sf_fermi_dirac_inc_0_e(double x,double b,gsl_sf_result* result);  rhttp://www.google.com/search?q=gsl_sf_fermi_dirac_inc_0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky @wrapper for double gsl_sf_fermi_dirac_inc_0(double x,double b);  phttp://www.google.com/search?q=gsl_sf_fermi_dirac_inc_0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Dwrapper for int gsl_sf_expint_E1_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_expint_E1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_expint_E1(double x);  hhttp://www.google.com/search?q=gsl_sf_expint_E1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_expint_E2_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_expint_E2_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_expint_E2(double x);  hhttp://www.google.com/search?q=gsl_sf_expint_E2&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Kwrapper for int gsl_sf_expint_E1_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_expint_E1_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 6wrapper for double gsl_sf_expint_E1_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_expint_E1_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Kwrapper for int gsl_sf_expint_E2_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_expint_E2_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 6wrapper for double gsl_sf_expint_E2_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_expint_E2_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_expint_Ei_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_expint_Ei_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_expint_Ei(double x);  hhttp://www.google.com/search?q=gsl_sf_expint_Ei&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Kwrapper for int gsl_sf_expint_Ei_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_expint_Ei_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 6wrapper for double gsl_sf_expint_Ei_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_expint_Ei_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky >wrapper for int gsl_sf_Shi_e(double x,gsl_sf_result* result);  dhttp://www.google.com/search?q=gsl_sf_Shi_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky )wrapper for double gsl_sf_Shi(double x);  bhttp://www.google.com/search?q=gsl_sf_Shi&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky >wrapper for int gsl_sf_Chi_e(double x,gsl_sf_result* result);  dhttp://www.google.com/search?q=gsl_sf_Chi_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky )wrapper for double gsl_sf_Chi(double x);  bhttp://www.google.com/search?q=gsl_sf_Chi&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Cwrapper for int gsl_sf_expint_3_e(double x,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_expint_3_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky .wrapper for double gsl_sf_expint_3(double x);  ghttp://www.google.com/search?q=gsl_sf_expint_3&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky =wrapper for int gsl_sf_Si_e(double x,gsl_sf_result* result);  chttp://www.google.com/search?q=gsl_sf_Si_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky (wrapper for double gsl_sf_Si(double x);  ahttp://www.google.com/search?q=gsl_sf_Si&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky =wrapper for int gsl_sf_Ci_e(double x,gsl_sf_result* result);  chttp://www.google.com/search?q=gsl_sf_Ci_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky (wrapper for double gsl_sf_Ci(double x);  ahttp://www.google.com/search?q=gsl_sf_Ci&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for int gsl_sf_atanint_e(double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_atanint_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -wrapper for double gsl_sf_atanint(double x);  fhttp://www.google.com/search?q=gsl_sf_atanint&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Wwrapper for int gsl_sf_ellint_Kcomp_e(double k,gsl_mode_t mode,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_ellint_Kcomp_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for double gsl_sf_ellint_Kcomp(double k,gsl_mode_t mode);  khttp://www.google.com/search?q=gsl_sf_ellint_Kcomp&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Wwrapper for int gsl_sf_ellint_Ecomp_e(double k,gsl_mode_t mode,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_ellint_Ecomp_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for double gsl_sf_ellint_Ecomp(double k,gsl_mode_t mode);  khttp://www.google.com/search?q=gsl_sf_ellint_Ecomp&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky `wrapper for int gsl_sf_ellint_Pcomp_e(double k,double n,gsl_mode_t mode,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_ellint_Pcomp_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Kwrapper for double gsl_sf_ellint_Pcomp(double k,double n,gsl_mode_t mode);  khttp://www.google.com/search?q=gsl_sf_ellint_Pcomp&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Wwrapper for int gsl_sf_ellint_Dcomp_e(double k,gsl_mode_t mode,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_ellint_Dcomp_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for double gsl_sf_ellint_Dcomp(double k,gsl_mode_t mode);  khttp://www.google.com/search?q=gsl_sf_ellint_Dcomp&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ^wrapper for int gsl_sf_ellint_F_e(double phi,double k,gsl_mode_t mode,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_ellint_F_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Iwrapper for double gsl_sf_ellint_F(double phi,double k,gsl_mode_t mode);  ghttp://www.google.com/search?q=gsl_sf_ellint_F&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ^wrapper for int gsl_sf_ellint_E_e(double phi,double k,gsl_mode_t mode,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_ellint_E_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Iwrapper for double gsl_sf_ellint_E(double phi,double k,gsl_mode_t mode);  ghttp://www.google.com/search?q=gsl_sf_ellint_E&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky gwrapper for int gsl_sf_ellint_P_e(double phi,double k,double n,gsl_mode_t mode,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_ellint_P_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Rwrapper for double gsl_sf_ellint_P(double phi,double k,double n,gsl_mode_t mode);  ghttp://www.google.com/search?q=gsl_sf_ellint_P&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky gwrapper for int gsl_sf_ellint_D_e(double phi,double k,double n,gsl_mode_t mode,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_ellint_D_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Rwrapper for double gsl_sf_ellint_D(double phi,double k,double n,gsl_mode_t mode);  ghttp://www.google.com/search?q=gsl_sf_ellint_D&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ]wrapper for int gsl_sf_ellint_RC_e(double x,double y,gsl_mode_t mode,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_ellint_RC_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Hwrapper for double gsl_sf_ellint_RC(double x,double y,gsl_mode_t mode);  hhttp://www.google.com/search?q=gsl_sf_ellint_RC&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky fwrapper for int gsl_sf_ellint_RD_e(double x,double y,double z,gsl_mode_t mode,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_ellint_RD_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Qwrapper for double gsl_sf_ellint_RD(double x,double y,double z,gsl_mode_t mode);  hhttp://www.google.com/search?q=gsl_sf_ellint_RD&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky fwrapper for int gsl_sf_ellint_RF_e(double x,double y,double z,gsl_mode_t mode,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_ellint_RF_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Qwrapper for double gsl_sf_ellint_RF(double x,double y,double z,gsl_mode_t mode);  hhttp://www.google.com/search?q=gsl_sf_ellint_RF&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky owrapper for int gsl_sf_ellint_RJ_e(double x,double y,double z,double p,gsl_mode_t mode,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_ellint_RJ_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Zwrapper for double gsl_sf_ellint_RJ(double x,double y,double z,double p,gsl_mode_t mode);  hhttp://www.google.com/search?q=gsl_sf_ellint_RJ&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Lwrapper for int gsl_sf_multiply_e(double x,double y,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_multiply_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 7wrapper for double gsl_sf_multiply(double x,double y);  ghttp://www.google.com/search?q=gsl_sf_multiply&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky dwrapper for int gsl_sf_multiply_err_e(double x,double dx,double y,double dy,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_multiply_err_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es)@wrapper for int gsl_sf_dilog_e(double x,gsl_sf_result* result);  fhttp://www.google.com/search?q=gsl_sf_dilog_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky +wrapper for double gsl_sf_dilog(double x);  dhttp://www.google.com/search?q=gsl_sf_dilog&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  pwrapper for int gsl_sf_complex_dilog_xy_e(double x,double y,gsl_sf_result* result_re,gsl_sf_result* result_im);  qhttp://www.google.com/search?q=gsl_sf_complex_dilog_xy_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  qwrapper for int gsl_sf_complex_dilog_e(double r,double theta,gsl_sf_result* result_re,gsl_sf_result* result_im);  nhttp://www.google.com/search?q=gsl_sf_complex_dilog_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  mwrapper for int gsl_sf_complex_spence_xy_e(double x,double y,gsl_sf_result* real_sp,gsl_sf_result* imag_sp);  rhttp://www.google.com/search?q=gsl_sf_complex_spence_xy_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es) Bwrapper for int gsl_sf_debye_1_e(double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_debye_1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -wrapper for double gsl_sf_debye_1(double x);  fhttp://www.google.com/search?q=gsl_sf_debye_1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for int gsl_sf_debye_2_e(double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_debye_2_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -wrapper for double gsl_sf_debye_2(double x);  fhttp://www.google.com/search?q=gsl_sf_debye_2&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for int gsl_sf_debye_3_e(double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_debye_3_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -wrapper for double gsl_sf_debye_3(double x);  fhttp://www.google.com/search?q=gsl_sf_debye_3&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for int gsl_sf_debye_4_e(double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_debye_4_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -wrapper for double gsl_sf_debye_4(double x);  fhttp://www.google.com/search?q=gsl_sf_debye_4&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for int gsl_sf_debye_5_e(double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_debye_5_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -wrapper for double gsl_sf_debye_5(double x);  fhttp://www.google.com/search?q=gsl_sf_debye_5&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for int gsl_sf_debye_6_e(double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_debye_6_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -wrapper for double gsl_sf_debye_6(double x);  fhttp://www.google.com/search?q=gsl_sf_debye_6&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Awrapper for int gsl_sf_dawson_e(double x,gsl_sf_result* result);  ghttp://www.google.com/search?q=gsl_sf_dawson_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ,wrapper for double gsl_sf_dawson(double x);  ehttp://www.google.com/search?q=gsl_sf_dawson&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es) wrapper for int gsl_sf_coupling_3j_e(int two_ja,int two_jb,int two_jc,int two_ma,int two_mb,int two_mc,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_coupling_3j_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky jwrapper for double gsl_sf_coupling_3j(int two_ja,int two_jb,int two_jc,int two_ma,int two_mb,int two_mc);  jhttp://www.google.com/search?q=gsl_sf_coupling_3j&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky wrapper for int gsl_sf_coupling_6j_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_coupling_6j_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky jwrapper for double gsl_sf_coupling_6j(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf);  jhttp://www.google.com/search?q=gsl_sf_coupling_6j&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky wrapper for int gsl_sf_coupling_RacahW_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,gsl_sf_result* result);  phttp://www.google.com/search?q=gsl_sf_coupling_RacahW_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky nwrapper for double gsl_sf_coupling_RacahW(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf);  nhttp://www.google.com/search?q=gsl_sf_coupling_RacahW&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky wrapper for int gsl_sf_coupling_9j_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,int two_jg,int two_jh,int two_ji,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_coupling_9j_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky wrapper for double gsl_sf_coupling_9j(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,int two_jg,int two_jh,int two_ji);  jhttp://www.google.com/search?q=gsl_sf_coupling_9j&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  wrapper for int gsl_sf_coupling_6j_INCORRECT_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,gsl_sf_result* result);  vhttp://www.google.com/search?q=gsl_sf_coupling_6j_INCORRECT_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky twrapper for double gsl_sf_coupling_6j_INCORRECT(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf);  thttp://www.google.com/search?q=gsl_sf_coupling_6j_INCORRECT&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uses ffi provisional!Alberto Ruiz (aruiz at um dot es) Qwrapper for int gsl_sf_hydrogenicR_1_e(double Z,double r,gsl_sf_result* result);  nhttp://www.google.com/search?q=gsl_sf_hydrogenicR_1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  <wrapper for double gsl_sf_hydrogenicR_1(double Z,double r);  lhttp://www.google.com/search?q=gsl_sf_hydrogenicR_1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  [wrapper for int gsl_sf_hydrogenicR_e(int n,int l,double Z,double r,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_hydrogenicR_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  Fwrapper for double gsl_sf_hydrogenicR(int n,int l,double Z,double r);  jhttp://www.google.com/search?q=gsl_sf_hydrogenicR&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky wrapper for int gsl_sf_coulomb_wave_FG_e(double eta,double x,double lam_F,int k_lam_G,gsl_sf_result* F,gsl_sf_result* Fp,gsl_sf_result* G,gsl_sf_result* Gp,double* exp_F,double* exp_G);  phttp://www.google.com/search?q=gsl_sf_coulomb_wave_FG_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ~wrapper for int gsl_sf_coulomb_wave_F_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* F_exponent);  shttp://www.google.com/search?q=gsl_sf_coulomb_wave_F_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky wrapper for int gsl_sf_coulomb_wave_FG_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* gc_array,double* F_exponent,double* G_exponent);  thttp://www.google.com/search?q=gsl_sf_coulomb_wave_FG_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky wrapper for int gsl_sf_coulomb_wave_FGp_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* fcp_array,double* gc_array,double* gcp_array,double* F_exponent,double* G_exponent);  uhttp://www.google.com/search?q=gsl_sf_coulomb_wave_FGp_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky wrapper for int gsl_sf_coulomb_wave_sphF_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* F_exponent);  vhttp://www.google.com/search?q=gsl_sf_coulomb_wave_sphF_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  Pwrapper for int gsl_sf_coulomb_CL_e(double L,double eta,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_coulomb_CL_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Uwrapper for int gsl_sf_coulomb_CL_array(double Lmin,int kmax,double eta,double* cl);  ohttp://www.google.com/search?q=gsl_sf_coulomb_CL_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky             uses ffi provisional!Alberto Ruiz (aruiz at um dot es) Bwrapper for int gsl_sf_clausen_e(double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_clausen_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -wrapper for double gsl_sf_clausen(double x);  fhttp://www.google.com/search?q=gsl_sf_clausen&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky    uses ffi provisional!Alberto Ruiz (aruiz at um dot es)dDwrapper for int gsl_sf_bessel_J0_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_J0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_bessel_J0(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_J0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_bessel_J1_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_J1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_bessel_J1(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_J1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Jwrapper for int gsl_sf_bessel_Jn_e(int n,double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_Jn_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 5wrapper for double gsl_sf_bessel_Jn(int n,double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_Jn&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Ywrapper for int gsl_sf_bessel_Jn_array(int nmin,int nmax,double x,double* result_array);  nhttp://www.google.com/search?q=gsl_sf_bessel_Jn_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_bessel_Y0_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_Y0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_bessel_Y0(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_Y0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_bessel_Y1_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_Y1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_bessel_Y1(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_Y1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Jwrapper for int gsl_sf_bessel_Yn_e(int n,double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_Yn_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 5wrapper for double gsl_sf_bessel_Yn(int n,double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_Yn&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Ywrapper for int gsl_sf_bessel_Yn_array(int nmin,int nmax,double x,double* result_array);  nhttp://www.google.com/search?q=gsl_sf_bessel_Yn_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_bessel_I0_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_I0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_bessel_I0(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_I0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_bessel_I1_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_I1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_bessel_I1(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_I1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Jwrapper for int gsl_sf_bessel_In_e(int n,double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_In_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  5wrapper for double gsl_sf_bessel_In(int n,double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_In&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Ywrapper for int gsl_sf_bessel_In_array(int nmin,int nmax,double x,double* result_array);  nhttp://www.google.com/search?q=gsl_sf_bessel_In_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky !Kwrapper for int gsl_sf_bessel_I0_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_I0_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky "6wrapper for double gsl_sf_bessel_I0_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_I0_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky #Kwrapper for int gsl_sf_bessel_I1_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_I1_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky $6wrapper for double gsl_sf_bessel_I1_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_I1_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky %Qwrapper for int gsl_sf_bessel_In_scaled_e(int n,double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_In_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky &<wrapper for double gsl_sf_bessel_In_scaled(int n,double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_In_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky `wrapper for int gsl_sf_bessel_In_scaled_array(int nmin,int nmax,double x,double* result_array);  uhttp://www.google.com/search?q=gsl_sf_bessel_In_scaled_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 'Dwrapper for int gsl_sf_bessel_K0_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_K0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky (/wrapper for double gsl_sf_bessel_K0(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_K0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky )Dwrapper for int gsl_sf_bessel_K1_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_K1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky */wrapper for double gsl_sf_bessel_K1(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_K1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky +Jwrapper for int gsl_sf_bessel_Kn_e(int n,double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_Kn_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ,5wrapper for double gsl_sf_bessel_Kn(int n,double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_Kn&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Ywrapper for int gsl_sf_bessel_Kn_array(int nmin,int nmax,double x,double* result_array);  nhttp://www.google.com/search?q=gsl_sf_bessel_Kn_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -Kwrapper for int gsl_sf_bessel_K0_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_K0_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky .6wrapper for double gsl_sf_bessel_K0_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_K0_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /Kwrapper for int gsl_sf_bessel_K1_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_K1_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 06wrapper for double gsl_sf_bessel_K1_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_K1_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 1Qwrapper for int gsl_sf_bessel_Kn_scaled_e(int n,double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_Kn_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 2<wrapper for double gsl_sf_bessel_Kn_scaled(int n,double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_Kn_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky `wrapper for int gsl_sf_bessel_Kn_scaled_array(int nmin,int nmax,double x,double* result_array);  uhttp://www.google.com/search?q=gsl_sf_bessel_Kn_scaled_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 3Dwrapper for int gsl_sf_bessel_j0_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_j0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 4/wrapper for double gsl_sf_bessel_j0(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_j0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 5Dwrapper for int gsl_sf_bessel_j1_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_j1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 6/wrapper for double gsl_sf_bessel_j1(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_j1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 7Dwrapper for int gsl_sf_bessel_j2_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_j2_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 8/wrapper for double gsl_sf_bessel_j2(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_j2&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 9Jwrapper for int gsl_sf_bessel_jl_e(int l,double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_jl_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky :5wrapper for double gsl_sf_bessel_jl(int l,double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_jl&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Pwrapper for int gsl_sf_bessel_jl_array(int lmax,double x,double* result_array);  nhttp://www.google.com/search?q=gsl_sf_bessel_jl_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Twrapper for int gsl_sf_bessel_jl_steed_array(int lmax,double x,double* jl_x_array);  thttp://www.google.com/search?q=gsl_sf_bessel_jl_steed_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ;Dwrapper for int gsl_sf_bessel_y0_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_y0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky </wrapper for double gsl_sf_bessel_y0(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_y0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky =Dwrapper for int gsl_sf_bessel_y1_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_y1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky >/wrapper for double gsl_sf_bessel_y1(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_y1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ?Dwrapper for int gsl_sf_bessel_y2_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_y2_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky @/wrapper for double gsl_sf_bessel_y2(double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_y2&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky AJwrapper for int gsl_sf_bessel_yl_e(int l,double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_bessel_yl_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky B5wrapper for double gsl_sf_bessel_yl(int l,double x);  hhttp://www.google.com/search?q=gsl_sf_bessel_yl&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Pwrapper for int gsl_sf_bessel_yl_array(int lmax,double x,double* result_array);  nhttp://www.google.com/search?q=gsl_sf_bessel_yl_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky CKwrapper for int gsl_sf_bessel_i0_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_i0_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky D6wrapper for double gsl_sf_bessel_i0_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_i0_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky EKwrapper for int gsl_sf_bessel_i1_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_i1_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky F6wrapper for double gsl_sf_bessel_i1_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_i1_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky GKwrapper for int gsl_sf_bessel_i2_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_i2_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky H6wrapper for double gsl_sf_bessel_i2_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_i2_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky IQwrapper for int gsl_sf_bessel_il_scaled_e(int l,double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_il_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky J<wrapper for double gsl_sf_bessel_il_scaled(int l,double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_il_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Wwrapper for int gsl_sf_bessel_il_scaled_array(int lmax,double x,double* result_array);  uhttp://www.google.com/search?q=gsl_sf_bessel_il_scaled_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky KKwrapper for int gsl_sf_bessel_k0_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_k0_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky L6wrapper for double gsl_sf_bessel_k0_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_k0_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky MKwrapper for int gsl_sf_bessel_k1_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_k1_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky N6wrapper for double gsl_sf_bessel_k1_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_k1_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky OKwrapper for int gsl_sf_bessel_k2_scaled_e(double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_k2_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky P6wrapper for double gsl_sf_bessel_k2_scaled(double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_k2_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky QQwrapper for int gsl_sf_bessel_kl_scaled_e(int l,double x,gsl_sf_result* result);  qhttp://www.google.com/search?q=gsl_sf_bessel_kl_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky R<wrapper for double gsl_sf_bessel_kl_scaled(int l,double x);  ohttp://www.google.com/search?q=gsl_sf_bessel_kl_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Wwrapper for int gsl_sf_bessel_kl_scaled_array(int lmax,double x,double* result_array);  uhttp://www.google.com/search?q=gsl_sf_bessel_kl_scaled_array&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky SOwrapper for int gsl_sf_bessel_Jnu_e(double nu,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_bessel_Jnu_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky T:wrapper for double gsl_sf_bessel_Jnu(double nu,double x);  ihttp://www.google.com/search?q=gsl_sf_bessel_Jnu&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky UOwrapper for int gsl_sf_bessel_Ynu_e(double nu,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_bessel_Ynu_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky V:wrapper for double gsl_sf_bessel_Ynu(double nu,double x);  ihttp://www.google.com/search?q=gsl_sf_bessel_Ynu&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  _wrapper for int gsl_sf_bessel_sequence_Jnu_e(double nu,gsl_mode_t mode,size_t size,double* v);  thttp://www.google.com/search?q=gsl_sf_bessel_sequence_Jnu_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky WVwrapper for int gsl_sf_bessel_Inu_scaled_e(double nu,double x,gsl_sf_result* result);  rhttp://www.google.com/search?q=gsl_sf_bessel_Inu_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky XAwrapper for double gsl_sf_bessel_Inu_scaled(double nu,double x);  phttp://www.google.com/search?q=gsl_sf_bessel_Inu_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky YOwrapper for int gsl_sf_bessel_Inu_e(double nu,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_bessel_Inu_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Z:wrapper for double gsl_sf_bessel_Inu(double nu,double x);  ihttp://www.google.com/search?q=gsl_sf_bessel_Inu&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky [Vwrapper for int gsl_sf_bessel_Knu_scaled_e(double nu,double x,gsl_sf_result* result);  rhttp://www.google.com/search?q=gsl_sf_bessel_Knu_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky \Awrapper for double gsl_sf_bessel_Knu_scaled(double nu,double x);  phttp://www.google.com/search?q=gsl_sf_bessel_Knu_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ]Owrapper for int gsl_sf_bessel_Knu_e(double nu,double x,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_bessel_Knu_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ^:wrapper for double gsl_sf_bessel_Knu(double nu,double x);  ihttp://www.google.com/search?q=gsl_sf_bessel_Knu&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky _Qwrapper for int gsl_sf_bessel_lnKnu_e(double nu,double x,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_bessel_lnKnu_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky `<wrapper for double gsl_sf_bessel_lnKnu(double nu,double x);  khttp://www.google.com/search?q=gsl_sf_bessel_lnKnu&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky aFwrapper for int gsl_sf_bessel_zero_J0_e(int s,gsl_sf_result* result);  ohttp://www.google.com/search?q=gsl_sf_bessel_zero_J0_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky b1wrapper for double gsl_sf_bessel_zero_J0(int s);  mhttp://www.google.com/search?q=gsl_sf_bessel_zero_J0&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky cFwrapper for int gsl_sf_bessel_zero_J1_e(int s,gsl_sf_result* result);  ohttp://www.google.com/search?q=gsl_sf_bessel_zero_J1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky d1wrapper for double gsl_sf_bessel_zero_J1(int s);  mhttp://www.google.com/search?q=gsl_sf_bessel_zero_J1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky eQwrapper for int gsl_sf_bessel_zero_Jnu_e(double nu,int s,gsl_sf_result* result);  phttp://www.google.com/search?q=gsl_sf_bessel_zero_Jnu_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky f<wrapper for double gsl_sf_bessel_zero_Jnu(double nu,int s);  nhttp://www.google.com/search?q=gsl_sf_bessel_zero_Jnu&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky X !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefX !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefX !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefuses ffi provisional!Alberto Ruiz (aruiz at um dot es)g>wrapper for int gsl_sf_exp_e(double x,gsl_sf_result* result);  dhttp://www.google.com/search?q=gsl_sf_exp_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky h)wrapper for double gsl_sf_exp(double x);  bhttp://www.google.com/search?q=gsl_sf_exp&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky iFwrapper for int gsl_sf_exp_e10_e(double x,gsl_sf_result_e10* result);  hhttp://www.google.com/search?q=gsl_sf_exp_e10_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky jLwrapper for int gsl_sf_exp_mult_e(double x,double y,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_exp_mult_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky k7wrapper for double gsl_sf_exp_mult(double x,double y);  ghttp://www.google.com/search?q=gsl_sf_exp_mult&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky lTwrapper for int gsl_sf_exp_mult_e10_e(double x,double y,gsl_sf_result_e10* result);  mhttp://www.google.com/search?q=gsl_sf_exp_mult_e10_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky m@wrapper for int gsl_sf_expm1_e(double x,gsl_sf_result* result);  fhttp://www.google.com/search?q=gsl_sf_expm1_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky n+wrapper for double gsl_sf_expm1(double x);  dhttp://www.google.com/search?q=gsl_sf_expm1&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky oAwrapper for int gsl_sf_exprel_e(double x,gsl_sf_result* result);  ghttp://www.google.com/search?q=gsl_sf_exprel_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky p,wrapper for double gsl_sf_exprel(double x);  ehttp://www.google.com/search?q=gsl_sf_exprel&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky qCwrapper for int gsl_sf_exprel_2_e(double x,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_exprel_2_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky r.wrapper for double gsl_sf_exprel_2(double x);  ghttp://www.google.com/search?q=gsl_sf_exprel_2&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky sIwrapper for int gsl_sf_exprel_n_e(int n,double x,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_exprel_n_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky t4wrapper for double gsl_sf_exprel_n(int n,double x);  ghttp://www.google.com/search?q=gsl_sf_exprel_n&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky uLwrapper for int gsl_sf_exp_err_e(double x,double dx,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_exp_err_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky vTwrapper for int gsl_sf_exp_err_e10_e(double x,double dx,gsl_sf_result_e10* result);  lhttp://www.google.com/search?q=gsl_sf_exp_err_e10_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky wdwrapper for int gsl_sf_exp_mult_err_e(double x,double dx,double y,double dy,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_exp_mult_err_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky xlwrapper for int gsl_sf_exp_mult_err_e10_e(double x,double dx,double y,double dy,gsl_sf_result_e10* result);  qhttp://www.google.com/search?q=gsl_sf_exp_mult_err_e10_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ghijklmnopqrstuvwxghijklmnopqrstuvwxghijklmnopqrstuvwxuses ffi provisional!Alberto Ruiz (aruiz at um dot es)yRwrapper for int gsl_sf_airy_Ai_e(double x,gsl_mode_t mode,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_airy_Ai_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky z=wrapper for double gsl_sf_airy_Ai(double x,gsl_mode_t mode);  fhttp://www.google.com/search?q=gsl_sf_airy_Ai&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky {Rwrapper for int gsl_sf_airy_Bi_e(double x,gsl_mode_t mode,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_airy_Bi_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky |=wrapper for double gsl_sf_airy_Bi(double x,gsl_mode_t mode);  fhttp://www.google.com/search?q=gsl_sf_airy_Bi&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky }Ywrapper for int gsl_sf_airy_Ai_scaled_e(double x,gsl_mode_t mode,gsl_sf_result* result);  ohttp://www.google.com/search?q=gsl_sf_airy_Ai_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ~Dwrapper for double gsl_sf_airy_Ai_scaled(double x,gsl_mode_t mode);  mhttp://www.google.com/search?q=gsl_sf_airy_Ai_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Ywrapper for int gsl_sf_airy_Bi_scaled_e(double x,gsl_mode_t mode,gsl_sf_result* result);  ohttp://www.google.com/search?q=gsl_sf_airy_Bi_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for double gsl_sf_airy_Bi_scaled(double x,gsl_mode_t mode);  mhttp://www.google.com/search?q=gsl_sf_airy_Bi_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Xwrapper for int gsl_sf_airy_Ai_deriv_e(double x,gsl_mode_t mode,gsl_sf_result* result);  nhttp://www.google.com/search?q=gsl_sf_airy_Ai_deriv_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Cwrapper for double gsl_sf_airy_Ai_deriv(double x,gsl_mode_t mode);  lhttp://www.google.com/search?q=gsl_sf_airy_Ai_deriv&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Xwrapper for int gsl_sf_airy_Bi_deriv_e(double x,gsl_mode_t mode,gsl_sf_result* result);  nhttp://www.google.com/search?q=gsl_sf_airy_Bi_deriv_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Cwrapper for double gsl_sf_airy_Bi_deriv(double x,gsl_mode_t mode);  lhttp://www.google.com/search?q=gsl_sf_airy_Bi_deriv&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky _wrapper for int gsl_sf_airy_Ai_deriv_scaled_e(double x,gsl_mode_t mode,gsl_sf_result* result);  uhttp://www.google.com/search?q=gsl_sf_airy_Ai_deriv_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Jwrapper for double gsl_sf_airy_Ai_deriv_scaled(double x,gsl_mode_t mode);  shttp://www.google.com/search?q=gsl_sf_airy_Ai_deriv_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky _wrapper for int gsl_sf_airy_Bi_deriv_scaled_e(double x,gsl_mode_t mode,gsl_sf_result* result);  uhttp://www.google.com/search?q=gsl_sf_airy_Bi_deriv_scaled_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Jwrapper for double gsl_sf_airy_Bi_deriv_scaled(double x,gsl_mode_t mode);  shttp://www.google.com/search?q=gsl_sf_airy_Bi_deriv_scaled&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_airy_zero_Ai_e(int s,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_airy_zero_Ai_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_airy_zero_Ai(int s);  khttp://www.google.com/search?q=gsl_sf_airy_zero_Ai&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_airy_zero_Bi_e(int s,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_airy_zero_Bi_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_airy_zero_Bi(int s);  khttp://www.google.com/search?q=gsl_sf_airy_zero_Bi&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Jwrapper for int gsl_sf_airy_zero_Ai_deriv_e(int s,gsl_sf_result* result);  shttp://www.google.com/search?q=gsl_sf_airy_zero_Ai_deriv_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 5wrapper for double gsl_sf_airy_zero_Ai_deriv(int s);  qhttp://www.google.com/search?q=gsl_sf_airy_zero_Ai_deriv&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Jwrapper for int gsl_sf_airy_zero_Bi_deriv_e(int s,gsl_sf_result* result);  shttp://www.google.com/search?q=gsl_sf_airy_zero_Bi_deriv_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 5wrapper for double gsl_sf_airy_zero_Bi_deriv(int s);  qhttp://www.google.com/search?q=gsl_sf_airy_zero_Bi_deriv&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky  !yz{|}~yz{|}~! yz{|}~uses ffi provisional!Alberto Ruiz (aruiz at um dot es) ?wrapper for int gsl_sf_erfc_e(double x,gsl_sf_result* result);  ehttp://www.google.com/search?q=gsl_sf_erfc_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky *wrapper for double gsl_sf_erfc(double x);  chttp://www.google.com/search?q=gsl_sf_erfc&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Cwrapper for int gsl_sf_log_erfc_e(double x,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_log_erfc_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky .wrapper for double gsl_sf_log_erfc(double x);  ghttp://www.google.com/search?q=gsl_sf_log_erfc&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky >wrapper for int gsl_sf_erf_e(double x,gsl_sf_result* result);  dhttp://www.google.com/search?q=gsl_sf_erf_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky )wrapper for double gsl_sf_erf(double x);  bhttp://www.google.com/search?q=gsl_sf_erf&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky @wrapper for int gsl_sf_erf_Z_e(double x,gsl_sf_result* result);  fhttp://www.google.com/search?q=gsl_sf_erf_Z_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky @wrapper for int gsl_sf_erf_Q_e(double x,gsl_sf_result* result);  fhttp://www.google.com/search?q=gsl_sf_erf_Q_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky +wrapper for double gsl_sf_erf_Z(double x);  dhttp://www.google.com/search?q=gsl_sf_erf_Z&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky +wrapper for double gsl_sf_erf_Q(double x);  dhttp://www.google.com/search?q=gsl_sf_erf_Q&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Awrapper for int gsl_sf_hazard_e(double x,gsl_sf_result* result);  ghttp://www.google.com/search?q=gsl_sf_hazard_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky ,wrapper for double gsl_sf_hazard(double x);  ehttp://www.google.com/search?q=gsl_sf_hazard&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky   uses ffi provisional!Alberto Ruiz (aruiz at um dot es),Bwrapper for int gsl_sf_lngamma_e(double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_lngamma_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -wrapper for double gsl_sf_lngamma(double x);  fhttp://www.google.com/search?q=gsl_sf_lngamma&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky !Uwrapper for int gsl_sf_lngamma_sgn_e(double x,gsl_sf_result* result_lg,double* sgn);  lhttp://www.google.com/search?q=gsl_sf_lngamma_sgn_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky @wrapper for int gsl_sf_gamma_e(double x,gsl_sf_result* result);  fhttp://www.google.com/search?q=gsl_sf_gamma_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky +wrapper for double gsl_sf_gamma(double x);  dhttp://www.google.com/search?q=gsl_sf_gamma&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_gammastar_e(double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_gammastar_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_gammastar(double x);  hhttp://www.google.com/search?q=gsl_sf_gammastar&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Cwrapper for int gsl_sf_gammainv_e(double x,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_gammainv_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky .wrapper for double gsl_sf_gammainv(double x);  ghttp://www.google.com/search?q=gsl_sf_gammainv&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky "ewrapper for int gsl_sf_lngamma_complex_e(double zr,double zi,gsl_sf_result* lnr,gsl_sf_result* arg);  phttp://www.google.com/search?q=gsl_sf_lngamma_complex_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Lwrapper for int gsl_sf_taylorcoeff_e(int n,double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_taylorcoeff_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 7wrapper for double gsl_sf_taylorcoeff(int n,double x);  jhttp://www.google.com/search?q=gsl_sf_taylorcoeff&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky <wrapper for int gsl_sf_fact_e(int n,gsl_sf_result* result);  ehttp://www.google.com/search?q=gsl_sf_fact_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 'wrapper for double gsl_sf_fact(int n);  chttp://www.google.com/search?q=gsl_sf_fact&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Bwrapper for int gsl_sf_doublefact_e(int n,gsl_sf_result* result);  khttp://www.google.com/search?q=gsl_sf_doublefact_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky -wrapper for double gsl_sf_doublefact(int n);  ihttp://www.google.com/search?q=gsl_sf_doublefact&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky >wrapper for int gsl_sf_lnfact_e(int n,gsl_sf_result* result);  ghttp://www.google.com/search?q=gsl_sf_lnfact_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky )wrapper for double gsl_sf_lnfact(int n);  ehttp://www.google.com/search?q=gsl_sf_lnfact&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_lndoublefact_e(int n,gsl_sf_result* result);  mhttp://www.google.com/search?q=gsl_sf_lndoublefact_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_lndoublefact(int n);  khttp://www.google.com/search?q=gsl_sf_lndoublefact&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Fwrapper for int gsl_sf_lnchoose_e(int n,int m,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_lnchoose_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 1wrapper for double gsl_sf_lnchoose(int n,int m);  ghttp://www.google.com/search?q=gsl_sf_lnchoose&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Dwrapper for int gsl_sf_choose_e(int n,int m,gsl_sf_result* result);  ghttp://www.google.com/search?q=gsl_sf_choose_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky /wrapper for double gsl_sf_choose(int n,int m);  ehttp://www.google.com/search?q=gsl_sf_choose&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Jwrapper for int gsl_sf_lnpoch_e(double a,double x,gsl_sf_result* result);  ghttp://www.google.com/search?q=gsl_sf_lnpoch_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 5wrapper for double gsl_sf_lnpoch(double a,double x);  ehttp://www.google.com/search?q=gsl_sf_lnpoch&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky #Zwrapper for int gsl_sf_lnpoch_sgn_e(double a,double x,gsl_sf_result* result,double* sgn);  khttp://www.google.com/search?q=gsl_sf_lnpoch_sgn_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Hwrapper for int gsl_sf_poch_e(double a,double x,gsl_sf_result* result);  ehttp://www.google.com/search?q=gsl_sf_poch_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 3wrapper for double gsl_sf_poch(double a,double x);  chttp://www.google.com/search?q=gsl_sf_poch&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Kwrapper for int gsl_sf_pochrel_e(double a,double x,gsl_sf_result* result);  hhttp://www.google.com/search?q=gsl_sf_pochrel_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 6wrapper for double gsl_sf_pochrel(double a,double x);  fhttp://www.google.com/search?q=gsl_sf_pochrel&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Owrapper for int gsl_sf_gamma_inc_Q_e(double a,double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_gamma_inc_Q_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky :wrapper for double gsl_sf_gamma_inc_Q(double a,double x);  jhttp://www.google.com/search?q=gsl_sf_gamma_inc_Q&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Owrapper for int gsl_sf_gamma_inc_P_e(double a,double x,gsl_sf_result* result);  lhttp://www.google.com/search?q=gsl_sf_gamma_inc_P_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky :wrapper for double gsl_sf_gamma_inc_P(double a,double x);  jhttp://www.google.com/search?q=gsl_sf_gamma_inc_P&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Mwrapper for int gsl_sf_gamma_inc_e(double a,double x,gsl_sf_result* result);  jhttp://www.google.com/search?q=gsl_sf_gamma_inc_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 8wrapper for double gsl_sf_gamma_inc(double a,double x);  hhttp://www.google.com/search?q=gsl_sf_gamma_inc&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Jwrapper for int gsl_sf_lnbeta_e(double a,double b,gsl_sf_result* result);  ghttp://www.google.com/search?q=gsl_sf_lnbeta_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 5wrapper for double gsl_sf_lnbeta(double a,double b);  ehttp://www.google.com/search?q=gsl_sf_lnbeta&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky $Zwrapper for int gsl_sf_lnbeta_sgn_e(double x,double y,gsl_sf_result* result,double* sgn);  khttp://www.google.com/search?q=gsl_sf_lnbeta_sgn_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Hwrapper for int gsl_sf_beta_e(double a,double b,gsl_sf_result* result);  ehttp://www.google.com/search?q=gsl_sf_beta_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky 3wrapper for double gsl_sf_beta(double a,double b);  chttp://www.google.com/search?q=gsl_sf_beta&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky Uwrapper for int gsl_sf_beta_inc_e(double a,double b,double x,gsl_sf_result* result);  ihttp://www.google.com/search?q=gsl_sf_beta_inc_e&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky @wrapper for double gsl_sf_beta_inc(double a,double b,double x);  ghttp://www.google.com/search?q=gsl_sf_beta_inc&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky (((1uses ffi provisional!Alberto Ruiz (aruiz at um dot es) !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uses ffi provisional!Alberto Ruiz (aruiz at um dot es)0Solution of general polynomial equations, using gsl_poly_complex_solve. For example, ( the three solutions of x^3 + 8 = 0  > polySolve [8,0,0,1] [(-1.9999999999999998) :+ 0.0,  1.0 :+ 1.732050807568877,  1.0 :+ (-1.732050807568877)]@The example in the GSL manual: To find the roots of x^5 -1 = 0: > polySolve [-1, 0, 0, 0, 0, 1] .[(-0.8090169943749475) :+ 0.5877852522924731, 0(-0.8090169943749475) :+ (-0.5877852522924731), +0.30901699437494734 :+ 0.9510565162951536, .0.30901699437494734 :+ (-0.9510565162951536),  1.0 :+ 0.0]uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Fast 1D Fourier transform of a  (%23 &45) using gsl_fft_complex_forward6. It uses the same scaling conventions as GNU Octave. > fft (GSL.Matrix.fromList [1,2,3,4]) Dvector (4) [10.0 :+ 0.0,(-2.0) :+ 2.0,(-2.0) :+ 0.0,(-2.0) :+ (-2.0)]The inverse of , using gsl_fft_complex_inverse.  uses ffi provisional!Alberto Ruiz (aruiz at um dot es)'Vconversion of Haskell functions into function pointers that can be used in the C side Numerical integration using gsl_integration_qags9 (adaptive integration with singularities). For example: >% let quad = integrateQAGS 1E-9 1000 ># let f a x = x**(-0.5) * log (a*x) > quad (f 1) 0 1 *(-3.999999999999974,4.871658632055187e-13)Numerical integration using gsl_integration_qngA (useful for fast integration of smooth functions). For example: > let quad = integrateQNG 1E-6 > quad (\x -> 4/(1+x*x)) 0 1 )(3.141592653589793,3.487868498008632e-14)!uses ffi provisional!Alberto Ruiz (aruiz at um dot es)(Vconversion of Haskell functions into function pointers that can be used in the C side 'Adaptive central difference algorithm, gsl_deriv_central. For example: " > let deriv = derivCentral 0.01  > deriv sin (pi/4) ,(0.7071067812000676,1.0600063101654055e-10)  > cos (pi/4) 0.7071067811865476 'Adaptive forward difference algorithm, gsl_deriv_forwardX. The function is evaluated only at points greater than x, and never at x itself. The derivative is returned in result and an estimate of its absolute error is returned in abserr. This function should be used if f(x) has a discontinuity at x, or is undefined for values less than x. A backward derivative can be obtained using a negative step. (Adaptive backward difference algorithm, gsl_deriv_backward. "portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es>Vobtains different functions of a vector: norm1, norm2, max, min, posmax, posmin, etc. (map of real vectors with given function +map of complex vectors with given function (map of real vectors with given function +map of complex vectors with given function &elementwise operation on real vectors )elementwise operation on complex vectors ...portable provisionalAlberto Ruiz <aruiz@um.es>4Creates a real vector containing a range of values: > linspace 5 (-3,7) 5 |> [-3.0,-0.5,2.0,4.5,7.0]  portable provisionalAlberto Ruiz <aruiz@um.es>)2creates a matrix from a vertical list of matrices *4creates a matrix from a horizontal list of matrices CCreates a matrix from blocks given as a list of lists of matrices: > let a =  $  [5,7,2] > let b =  4 $  (-1) 12 > fromBlocks [[a,b],[b,a]] (6><7) , [ 5.0, 0.0, 0.0, -1.0, -1.0, -1.0, -1.0 , , 0.0, 7.0, 0.0, -1.0, -1.0, -1.0, -1.0 , , 0.0, 0.0, 2.0, -1.0, -1.0, -1.0, -1.0 , , -1.0, -1.0, -1.0, -1.0, 5.0, 0.0, 0.0 , , -1.0, -1.0, -1.0, -1.0, 0.0, 7.0, 0.0 , , -1.0, -1.0, -1.0, -1.0, 0.0, 0.0, 2.0 ]Reverse rows Reverse columns &creates a rectangular diagonal matrix > diagRect (constant 5 3) 3 4 (3><4)  [ 5.0, 0.0, 0.0, 0.0  , 0.0, 5.0, 0.0, 0.0  , 0.0, 0.0, 5.0, 0.0 ]0extracts the diagonal from a rectangular matrix /creates the identity matrix of given dimension  An easy way to create a matrix:  > (2><3)[1..6] (2><3)  [ 1.0, 2.0, 3.0  , 4.0, 5.0, 6.0 ]GThis is the format produced by the instances of Show (Matrix a), which can also be used for input. 9Creates a matrix with the first n rows of another matrix 4Creates a copy of a matrix without the first n rows  <Creates a matrix with the first n columns of another matrix  7Creates a copy of a matrix without the first n columns   Creates a  , from a list of lists (considered as rows). > fromLists [[1,2],[3,4],[5,6]] (3><2)  [ 1.0, 2.0  , 3.0, 4.0  , 5.0, 6.0 ] %creates a 1-row matrix from a vector  (creates a 1-column matrix from a vector ZCreates a string from a matrix given a separator and a function to show each entry. Using Gthis function the user can easily define any desired display function:  import Text.Printf(printf) disp = putStrLn . format " " (printf "%.2f")*creates a matrix from a table of numbers. Urearranges the rows of a matrix according to the order given in a list of integers. Lcreates matrix by repetition of a matrix a given number of rows and columns (> repmat (ident 2) 2 3 :: Matrix Double (4><6)  [ 1.0, 0.0, 1.0, 0.0, 1.0, 0.0  , 0.0, 1.0, 0.0, 1.0, 0.0, 1.0  , 1.0, 0.0, 1.0, 0.0, 1.0, 0.0  , 0.0, 1.0, 0.0, 1.0, 0.0, 1.0 ]%      )           #portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es> 4eigendecomposition of a real symmetric matrix using gsl_eigen_symmv. 0 > let (l,v) = eigS $ 'fromLists' [[1,2],[2,1]]  > l  3.000 -1.000   > v  0.707 -0.707  0.707 0.707   > v <> diag l <> trans v  1.000 2.000  2.000 1.000 7eigendecomposition of a complex hermitian matrix using gsl_eigen_hermv 4 > let (l,v) = eigH $ 'fromLists' [[1,2+i],[2-i,3]]   > l  4.449 -0.449   > v  -0.544 0.839  (-0.751,0.375) (-0.487,0.243)   > v <> diag l <> (conjTrans) v  1.000 (2.000,1.000)  (2.000,-1.000) 3.000 5Singular value decomposition of a real matrix, using gsl_linalg_SV_decomp_mod: > let (u,s,v) = svdg $  fromLists [[1,2,3],[-4,1,7]] \ > u  0.310 -0.951  0.951 0.310 \ > s  8.497 2.792 \ > v -0.411 -0.785  0.185 -0.570  0.893 -0.243 \ > u <>  s <>  v  1. 2. 3.  -4. 1. 7.(QR decomposition of a real matrix using gsl_linalg_QR_decomp and gsl_linalg_QR_unpack. > let (q,r) = qr $  fromLists [[1,3,5,7] ,[2,0,-2,4]] \ > q -0.447 -0.894 -0.894 0.447 \ > r -2.236 -1.342 -0.447 -6.708  0. -2.683 -5.367 -4.472 \ > q <> r 1.000 3.000 5.000 7.000 2.000 0. -2.000 4.000JCholesky decomposition of a symmetric positive definite real matrix using gsl_linalg_cholesky_decomp. > chol $ (2>< 2) [1,2,  2,9::Double] (2><2)  [ 1.0, 0.0  , 2.0, 2.23606797749979 ]+^lu decomposition of real matrix (packed as a vector including l, u, the permutation and sign) ,alu decomposition of complex matrix (packed as a vector including l, u, the permutation and sign) 5The LU decomposition of a square matrix. Is based on gsl_linalg_LU_decomp and gsl_linalg_complex_LU_decomp as described in  Mhttp://www.gnu.org/software/Numeric.GSL/manual/Numeric.GSL-ref_13.html#SEC223.  > let m =  fromLists [[1,2,-3] ,[2+3*i,-7,0] ,[1,-i,2*i]] > let (l,u,p,s) = luR mL is the lower triangular:  > l  1. 0. 0. 0.154-0.231i 1. 0. 0.154-0.231i 0.624-0.522i 1.U is the upper triangular:  > u #2.+3.i -7. 0. # 0. 3.077-1.615i -3. " 0. 0. 1.873+0.433ip is a permutation:  > p [1,0,2]L *6 U obtains a permuted version of the original matrix:  > extractRows p m  2.+3.i -7. 0.  1. 2. -3.  1. -1.i 2.i   > l <> u  2.+3.i -7. 0.  1. 2. -3.  1. -1.i 2.iNs is the sign of the permutation, required to obtain sign of the determinant: > s * product ( $ takeDiag u) !(-18.0) :+ (-16.000000000000004) > LinearAlgebra.Algorithms.det m  (-18.0) :+ (-16.000000000000004)Complex version of #.   $uses ffi provisional!Alberto Ruiz (aruiz at um dot es)-another required conversion .Vconversion of Haskell functions into function pointers that can be used in the C side .The method of Nelder and Mead, implemented by !gsl_multimin_fminimizer_nmsimplexW. The gradient of the function is not required. This is the example in the GSL manual:  Jminimize f xi = minimizeNMSimplex f xi (replicate (length xi) 1) 1e-2 100   f [x,y] = 10*(x-1)^2 + 20*(y-2)^2 + 30    main = do  let (s,p) = minimize f [5,7]  print s  print p   > main &[0.9920430849306285,1.9969168063253164]  0. 512.500 1.082 6.500 5. ! 1. 290.625 1.372 5.250 4. ! 2. 290.625 1.372 5.250 4. ! 3. 252.500 1.372 5.500 1. ! 4. 101.406 1.823 2.625 3.500 ! 5. 101.406 1.823 2.625 3.500 ! 6. 60. 1.823 0. 3. ! 7. 42.275 1.303 2.094 1.875 ! 8. 42.275 1.303 2.094 1.875 ! 9. 35.684 1.026 0.258 1.906 !10. 35.664 0.804 0.588 2.445 !11. 30.680 0.467 1.258 2.025 !12. 30.680 0.356 1.258 2.025 !13. 30.539 0.285 1.093 1.849 !14. 30.137 0.168 0.883 2.004 !15. 30.137 0.123 0.883 2.004 !16. 30.090 0.100 0.958 2.060 !17. 30.005 6.051e-2 1.022 2.004 !18. 30.005 4.249e-2 1.022 2.004 !19. 30.005 4.249e-2 1.022 2.004 !20. 30.005 2.742e-2 1.022 2.004 !21. 30.005 2.119e-2 1.022 2.004 !22. 30.001 1.530e-2 0.992 1.997 !23. 30.001 1.259e-2 0.992 1.997  24. 30.001 7.663e-3 0.992 1.997?The path to the solution can be graphically shown by means of: Graphics.Plot.mplot $ drop 3 ( p) 1The Fletcher-Reeves conjugate gradient algorithm $gsl_multimin_fminimizer_conjugate_fr). This is the example in the GSL manual:  7minimize = minimizeConjugateGradient 1E-2 1E-4 1E-3 30 f [x,y] = 10*(x-1)^2 + 20*(y-2)^2 + 30   df [x,y] = [20*(x-1), 40*(y-2)]    main = do " let (s,p) = minimize f df [5,7]  print s  print p   > main [1.0,2.0]  0. 687.848 4.996 6.991  1. 683.555 4.989 6.972  2. 675.013 4.974 6.935  3. 658.108 4.944 6.861  4. 625.013 4.885 6.712  5. 561.684 4.766 6.415  6. 446.467 4.528 5.821  7. 261.794 4.053 4.632  8. 75.498 3.102 2.255  9. 67.037 2.852 1.630 10. 45.316 2.191 1.762 11. 30.186 0.869 2.026 12. 30. 1. 2.?The path to the solution can be graphically shown by means of: Graphics.Plot.mplot $ drop 2 ( p)   %uses -fffi and -fglasgow-exts provisional!Alberto Ruiz (aruiz at um dot es)!VThis action removes the GSL default error handler (which aborts the program), so that N GSL errors can be handled by Haskell (using Control.Exception) and ghci doesn' t abort. /01234567% !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !!!&portable (uses FFI) provisional!Alberto Ruiz (aruiz at um dot es)"Wrapper for LAPACK's dgesvd>, which computes the full svd decomposition of a real matrix. (u,s,v)=full svdR m so that m=u <> s <>  v. #Wrapper for LAPACK's dgesvd>, which computes the full svd decomposition of a real matrix. (u,s,v)=full svdRdd m so that m=u <> s <>  v. $Wrapper for LAPACK's zgesvdA, which computes the full svd decomposition of a complex matrix. (u,s,v)=full svdC m so that m=u <> comp s <>  v. %Wrapper for LAPACK's zgeevU, which computes the eigenvalues and right eigenvectors of a general complex matrix: if  (l,v)=eigC m then m <> v = v <> diag l. 'The eigenvectors are the columns of v. ! The eigenvalues are not sorted. &Wrapper for LAPACK's dgeevR, which computes the eigenvalues and right eigenvectors of a general real matrix: if  (l,v)=eigR m then m <> v = v <> diag l. 'The eigenvectors are the columns of v. ! The eigenvalues are not sorted. 'Wrapper for LAPACK's dsyevT, which computes the eigenvalues and right eigenvectors of a symmetric real matrix: if  (l,v)=eigSl m then m <> v = v <> diag l. 'The eigenvectors are the columns of v. 9 The eigenvalues are sorted in descending order (use eigS' for ascending order). (Wrapper for LAPACK's zheevW, which computes the eigenvalues and right eigenvectors of a hermitian complex matrix: if  (l,v)=eigH m then m <> s v = v <> diag l. 'The eigenvectors are the columns of v. 9 The eigenvalues are sorted in descending order (use eigH' for ascending order). )Wrapper for LAPACK's dgesvr, which solves a general real linear system (for several right-hand sides) internally using the lu decomposition. *Wrapper for LAPACK's zgesvu, which solves a general complex linear system (for several right-hand sides) internally using the lu decomposition. +Wrapper for LAPACK's dgels, which obtains the least squared error solution of an overconstrained real linear system or the minimum norm solution of an underdetermined system, for several right-hand sides. For rank deficient systems use -&. ,Wrapper for LAPACK's zgels, which obtains the least squared error solution of an overconstrained complex linear system or the minimum norm solution of an underdetermined system, for several right-hand sides. For rank deficient systems use .&. -Wrapper for LAPACK's dgelss, which obtains the minimum norm solution to a real linear least squares problem Ax=B using the svd, for several right-hand sides. Admits rank deficient systems but it is slower than +&. The effective rank of A is determined by treating as zero those singular valures which are less than rcond times the largest singular value. If rcond == Nothing machine precision is used. .Wrapper for LAPACK's zgelss, which obtains the minimum norm solution to a complex linear least squares problem Ax=B using the svd, for several right-hand sides. Admits rank deficient systems but it is slower than ,&. The effective rank of A is determined by treating as zero those singular valures which are less than rcond times the largest singular value. If rcond == Nothing machine precision is used. /Wrapper for LAPACK's zpotrf1, which computes the Cholesky factorization of a - complex Hermitian positive definite matrix. 0Wrapper for LAPACK's dpotrf1, which computes the Cholesky factorization of a * real symmetric positive definite matrix. 1Wrapper for LAPACK's dgeqr26, which computes a QR factorization of a real matrix. 2Wrapper for LAPACK's zgeqr29, which computes a QR factorization of a complex matrix. 3Wrapper for LAPACK's dgehrdE, which computes a Hessenberg factorization of a square real matrix. 4Wrapper for LAPACK's zgehrdH, which computes a Hessenberg factorization of a square complex matrix. 5Wrapper for LAPACK's dgees@, which computes a Schur factorization of a square real matrix. 6Wrapper for LAPACK's zgeesC, which computes a Schur factorization of a square complex matrix. 7Wrapper for LAPACK's dgetrf>, which computes a LU factorization of a general real matrix. 8Wrapper for LAPACK's zgeesC, which computes a Schur factorization of a square complex matrix. "#$%&'8(9)*+,-./012345678"#$%&'()*+,-.780/123456"#$%&'()*+,-./012345678'uses ffi provisional!Alberto Ruiz (aruiz at um dot es)9conversion utilities F/01234567%      9:;<=>?9:;<=>?9:;<=>?:;<=>?uses ffi provisional!Alberto Ruiz (aruiz at um dot es)@jA generic interface for vectors and matrices to a few element-by-element functions in Numeric.GSL.Vector. E"element by element multiplication Felement by element division G7scale the element by element reciprocal of the object: scaleRecip 2 (fromList [5,i]#) == 2 |> [0.4 :+ 0.0,0.0 :+ (-2.0)] Ieuclidean inner product JOuter product of two vectors. >  [1,2,3] `outer`  [5,2,3] (3><3)  [ 5.0, 2.0, 3.0  , 10.0, 4.0, 6.0  , 15.0, 6.0, 9.0 ]K#Kronecker product of two matrices.  m1=(2><3)  [ 1.0, 2.0, 0.0  , 0.0, -1.0, 3.0 ] m2=(4><3)  [ 1.0, 2.0, 3.0  , 4.0, 5.0, 6.0  , 7.0, 8.0, 9.0  , 10.0, 11.0, 12.0 ] > kronecker m1 m2 (8><9) ; [ 1.0, 2.0, 3.0, 2.0, 4.0, 6.0, 0.0, 0.0, 0.0 ; , 4.0, 5.0, 6.0, 8.0, 10.0, 12.0, 0.0, 0.0, 0.0 ; , 7.0, 8.0, 9.0, 14.0, 16.0, 18.0, 0.0, 0.0, 0.0 ; , 10.0, 11.0, 12.0, 20.0, 22.0, 24.0, 0.0, 0.0, 0.0 ; , 0.0, 0.0, 0.0, -1.0, -2.0, -3.0, 3.0, 6.0, 9.0 ; , 0.0, 0.0, 0.0, -4.0, -5.0, -6.0, 12.0, 15.0, 18.0 ; , 0.0, 0.0, 0.0, -7.0, -8.0, -9.0, 21.0, 24.0, 27.0 ; , 0.0, 0.0, 0.0, -10.0, -11.0, -12.0, 30.0, 33.0, 36.0 ] @ABCDEFGHIJK @ABCDEFGHIJK @ABCDEFGHABCDEFGHIJK6portable provisional!Alberto Ruiz (aruiz at um dot es)(uses gnuplot and ImageMagick provisional!Alberto Ruiz (aruiz at um dot es) :6Loads a real matrix from a formatted ASCII text file "fromFile :: FilePath -> IO Matrix CfromFile filename = readFile filename >>= return . readMatrix read 3Saves a real matrix to a formatted ascii text file LlFrom vectors x and y, it generates a pair of matrices to be used as x and y arguments for matrix functions. N4Draws a 3D surface representation of a real matrix.   > mesh (hilb 20) NIn certain versions you can interactively rotate the graphic using the mouse. PmDraws the surface represented by the function f in the desired ranges and number of points, internally using N(.  > let f x y = cos (x + y) " > splot f (0,pi) (0,2*pi) 50 Q-plots several vectors against the first one RTDraws a list of functions over a desired range and with a desired number of points + > plot [sin, cos, sin.(3*)] (0,2*pi) 1000 SSDraws a parametric curve. For instance, to draw a spiral we can do something like: > > parametricPlot (\t->(t * sin t, t * cos t)) (0,10*pi) 1000 T"writes a matrix to pgm image file UQimshow shows a representation of a matrix as a gray level image using ImageMagick' s display. LMNOPQRSTU QRSPNOLTUM LMNOPQRSTU)uses ffi provisional!Alberto Ruiz (aruiz at um dot es)VObjects which have a p-norm. / Using it you can define convenient shortcuts:  norm2 x = pnorm PNorm2 x !frobenius m = norm2 . flatten $ m\\Auxiliary typeclass used to define generic computations for both real and complex matrices. ])Singular value decomposition using lapack's dgesvd or zgesvd. ^PSolution of a general linear system (for several right-hand sides) using lapacks' dgesv and zgesv. , See also other versions of linearSolve in Numeric.LinearAlgebra.LAPACK. `DEigenvalues and eigenvectors of a general square matrix using lapack's dgeev or zgeev. If  (s,v) = eig m then m < > v == v <> diag s aSSimilar to eigSH without checking that the input matrix is hermitian or symmetric. bRSimilar to chol without checking that the input matrix is hermitian or symmetric. cQR factorization using lapack's dgeqr2 or zgeqr2. If  (q,r) = qr m then m == q <> r0, where q is unitary and r is upper triangular. d%Hessenberg factorization using lapack's dgehrd or zgehrd. If (p,h) = hess m then m == p <> h < > ctrans p, where p is unitary $ and h is in upper Hessenberg form. e Schur factorization using lapack's dgees or zgees. If (u,s) = schur m then m == u <> s < > ctrans u, where u is unitary \ and s is a Shur matrix. A complex Schur matrix is upper triangular. A real Schur matrix is ! upper triangular in 2x2 blocks. "GAnything that the Jordan decomposition can do, the Schur decomposition  can do better!" (Van Loan) fConjugate transpose. gYEigenvalues and Eigenvectors of a complex hermitian or real symmetric matrix using lapack's dsyev or zheev. If (s,v) = eigSH m then m == v < > diag s < > ctrans v hXCholesky factorization of a positive definite hermitian or symmetric matrix using lapack's dpotrf or zportrf. If  c = chol m then m == ctrans c <> c. iDdeterminant of a square matrix, computed from the LU decomposition. j1LU factorization of a general matrix using lapack's dgetrf or zgetrf. If (l,u,p,s) = lu m then m == p <> l <> u, where l is lower triangular, ] u is upper triangular, p is a permutation matrix and s is the signature of the permutation. k(Inverse of a square matrix using lapacks' dgesv and zgesv. l.Pseudoinverse of a general matrix using lapack's dgelss or zgelss. m A version of ])H which returns an appropriate diagonal matrix with the singular values. If (u,d,v) = full svd m then m == u <> d < > trans v. n A version of ])i which returns only the nonzero singular values and the corresponding rows and columns of the rotations. If (u,s,v) = economy svd m then m == u < > diag s < > trans v. o#The machine precision of a Double: eps = 2.22044604925031e-16! (the value used by GNU-Octave). pThe imaginary unit: i = 0.0 :+ 1.0 q6The nullspace of a matrix from its SVD decomposition. r_The nullspace of a matrix, assumed to be one-dimensional, with default tolerance (shortcut for last . nullspacePrec 1). vNReciprocal of the 2-norm condition number of a matrix, computed from the SVD. w0Number of linearly independent rows or columns. xDGeneric matrix functions for diagonalizable matrices. For instance: logm = matFunc logyNMatrix exponential. It uses a direct translation of Algorithm 11.3.1 in Golub & Van Loan, + based on a scaled Pade approximation. z[Matrix square root. Currently it uses a simple iterative algorithm described in Wikipedia. jIt only works with invertible matrices that have a real solution. For diagonalizable matrices you can try  matFunc sqrt.  m = (2><2) [4,9  ,0,4] :: Matrix Double >sqrtm m (2><2)  [ 2.0, 2.25  , 0.0, 2.0 ]&VWXYZ[\]^_`abcdefghijklmnopqr;stuvwxyz%kliwvmnghjyzxqrVWX[ZYopstu\]^_`abcdef%VWWX[ZYYZ[\ ]^_`abcdef]^_`abcdefghijklmnopqrstuvwxyz*portable provisional!Alberto Ruiz (aruiz at um dot es){matrix product | u <.> v = dot u v} x .* a = scale x a~ a */ x = scale (recip x) a:least squares solution of a linear system, similar to the \ operator of Matlab/"Octave (based on linearSolveSVD). 2Horizontal concatenation of matrices and vectors:  > (ident 3 <-> 3 * ident 3) <|> fromList [1..6.0] (6><4)  [ 1.0, 0.0, 0.0, 1.0  , 0.0, 1.0, 0.0, 2.0  , 0.0, 0.0, 1.0, 3.0  , 3.0, 0.0, 0.0, 4.0  , 0.0, 3.0, 0.0, 5.0  , 0.0, 0.0, 3.0, 6.0 ]0Vertical concatenation of matrices and vectors. {|}~{|}~{|}~7uses ffi provisional!Alberto Ruiz (aruiz at um dot es)/01234567%      9:;<=>?@ABCDEFGHIJKVWXYZ[\]^_`abcdefghijklmnopqr;stuvwxyz{|}~8portable provisional!Alberto Ruiz (aruiz at um dot es)<=>?@ABCDEFGHIJKLMNOPQRSTUVW<=>??@AABCCDEEFGGHII9portable provisional!Alberto Ruiz (aruiz at um dot es)XYZ[\]^_`abcdefghijklmnopqrstXYYZ\+portable provisional!Alberto Ruiz (aruiz at um dot es)9All tests must pass with a maximum dimension of about 20 A (some tests may fail with bigger sizes due to precision loss). uv-:-;-<-=->-?-@-A-B-C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W0X0Y0Z0[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'S()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !!!"""" " " " " """"""""""""""""""" "!"""#"$"%"&"'"(")"*"+","-"."/"0"1"2"3456789:;<=>?@ABCDEFGHIJK#L#M#N#O#P#Q#R#S#T#U#V#W$X$Y%Z&[&\&]&^&_&`&a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&V&W'p'q'r's't'u'vwxyz{|}~(((((((((())))))))))))))O)))))))))))))))))Q))))))*******+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------.....t.q.r.s................. . . . . ................... .!.".#.$0%0&0'0(0)*+,-./012345678 9:;<=>?@ABCDEFGHIJKLMNOPQRSTU23V45W X!XYZ#[#\$]$^23_23`23a23b23c23d23e23f23g&h&i(j)k8l8m8n8n8o8o8p8p8q8q8r8r8s8s8t8u8v8w8x8y8z8{8|8}8~88899999999999999999999999999999+hmatrix-0.3.0.0Data.Packed.VectorData.Packed.MatrixNumeric.LinearAlgebra.LinearNumeric.GSL.Special.AiryNumeric.GSL.Special.LegendreNumeric.GSL.Special.LogNumeric.GSL.Special.ZetaNumeric.GSL.Special.TrigNumeric.GSL.Special.SynchrotronNumeric.GSL.Special.PsiNumeric.GSL.Special.Pow_intNumeric.GSL.Special.LambertNumeric.GSL.Special.LaguerreNumeric.GSL.Special.HypergNumeric.GSL.Special.GegenbauerNumeric.GSL.Special.Fermi_diracNumeric.GSL.Special.ExpintNumeric.GSL.Special.EllintNumeric.GSL.Special.ElementaryNumeric.GSL.Special.DilogNumeric.GSL.Special.DebyeNumeric.GSL.Special.DawsonNumeric.GSL.Special.CouplingNumeric.GSL.Special.CoulombNumeric.GSL.Special.ClausenNumeric.GSL.Special.BesselNumeric.GSL.Special.ExpNumeric.GSL.Special.ErfNumeric.GSL.Special.GammaNumeric.GSL.PolynomialsNumeric.GSL.FourierNumeric.GSL.IntegrationNumeric.GSL.DifferentiationNumeric.GSL.VectorNumeric.GSL.MatrixNumeric.GSL.Minimization Numeric.GSLNumeric.LinearAlgebra.LAPACK Data.Packed Graphics.Plot Numeric.LinearAlgebra.AlgorithmsNumeric.LinearAlgebra.InterfaceNumeric.LinearAlgebra.TestsData.Packed.Internal.CommonData.Packed.Internal.VectorData.Packed.Internal.MatrixData.Packed.InternalNumeric.GSL.Special.InternalNumeric.GSL.Specialbase Data.Complexghc-prim GHC.TypesNumeric.LinearAlgebra.InstancesNumeric.LinearAlgebra%Numeric.LinearAlgebra.Tests.Instances&Numeric.LinearAlgebra.Tests.PropertiesVectordimfromListtoList|> subVector@>join liftVector liftVector2ElementMatrixrowscolstransflattentoListsfromRowstoRows fromColumns toColumns@@>reshape liftMatrix liftMatrix2multiply subMatrixdiagconstantfromFile Precision PrecApprox PrecSingle PrecDouble legendre_Pl_e legendre_Pl legendre_P1_e legendre_P2_e legendre_P3_e legendre_P1 legendre_P2 legendre_P3 legendre_Q0_e legendre_Q0 legendre_Q1_e legendre_Q1 legendre_Ql_e legendre_Qllegendre_Plm_e legendre_Plmlegendre_sphPlm_elegendre_sphPlmlegendre_array_sizeconicalP_half_e conicalP_halfconicalP_mhalf_econicalP_mhalf conicalP_0_e conicalP_0 conicalP_1_e conicalP_1conicalP_sph_reg_econicalP_sph_regconicalP_cyl_reg_econicalP_cyl_reglegendre_H3d_0_elegendre_H3d_0legendre_H3d_1_elegendre_H3d_1legendre_H3d_e legendre_H3dlog_elog log_abs_elog_abs log_1plusx_e log_1plusxlog_1plusx_mx_e log_1plusx_mx zeta_int_ezeta_intzeta_ezetazetam1_ezetam1 zetam1_int_e zetam1_inthzeta_ehzeta eta_int_eeta_inteta_eetasin_esincos_ecoshypot_ehypotsinc_esinclnsinh_elnsinhlncosh_elncosh sin_err_e cos_err_eangle_restrict_symmangle_restrict_posangle_restrict_symm_err_eangle_restrict_pos_err_esynchrotron_1_e synchrotron_1synchrotron_2_e synchrotron_2 psi_int_epsi_intpsi_epsi psi_1piy_epsi_1piy psi_1_int_e psi_1_intpsi_1_epsi_1psi_n_epsi_n pow_int_epow_int lambert_W0_e lambert_W0 lambert_Wm1_e lambert_Wm1 laguerre_1_e laguerre_2_e laguerre_3_e laguerre_1 laguerre_2 laguerre_3 laguerre_n_e laguerre_n hyperg_0F1_e hyperg_0F1hyperg_1F1_int_ehyperg_1F1_int hyperg_1F1_e hyperg_1F1hyperg_U_int_e hyperg_U_inthyperg_U_int_e10_e hyperg_U_ehyperg_Uhyperg_U_e10_e hyperg_2F1_e hyperg_2F1hyperg_2F1_conj_ehyperg_2F1_conjhyperg_2F1_renorm_ehyperg_2F1_renormhyperg_2F1_conj_renorm_ehyperg_2F1_conj_renorm hyperg_2F0_e hyperg_2F0 gegenpoly_1_e gegenpoly_2_e gegenpoly_3_e gegenpoly_1 gegenpoly_2 gegenpoly_3 gegenpoly_n_e gegenpoly_nfermi_dirac_m1_efermi_dirac_m1fermi_dirac_0_e fermi_dirac_0fermi_dirac_1_e fermi_dirac_1fermi_dirac_2_e fermi_dirac_2fermi_dirac_int_efermi_dirac_intfermi_dirac_mhalf_efermi_dirac_mhalffermi_dirac_half_efermi_dirac_halffermi_dirac_3half_efermi_dirac_3halffermi_dirac_inc_0_efermi_dirac_inc_0 expint_E1_e expint_E1 expint_E2_e expint_E2expint_E1_scaled_eexpint_E1_scaledexpint_E2_scaled_eexpint_E2_scaled expint_Ei_e expint_Eiexpint_Ei_scaled_eexpint_Ei_scaledshi_eshichi_echi expint_3_eexpint_3si_esici_eci atanint_eatanintellint_Kcomp_e ellint_Kcompellint_Ecomp_e ellint_Ecompellint_Pcomp_e ellint_Pcompellint_Dcomp_e ellint_Dcomp ellint_F_eellint_F ellint_E_eellint_E ellint_P_eellint_P ellint_D_eellint_D ellint_RC_e ellint_RC ellint_RD_e ellint_RD ellint_RF_e ellint_RF ellint_RJ_e ellint_RJ multiply_emultiply_err_edilog_edilog debye_1_edebye_1 debye_2_edebye_2 debye_3_edebye_3 debye_4_edebye_4 debye_5_edebye_5 debye_6_edebye_6dawson_edawson coupling_3j_e coupling_3j coupling_6j_e coupling_6jcoupling_RacahW_ecoupling_RacahW coupling_9j_e coupling_9jhydrogenicR_1_e hydrogenicR_1 hydrogenicR_e hydrogenicR coulomb_CL_e clausen_eclausen bessel_J0_e bessel_J0 bessel_J1_e bessel_J1 bessel_Jn_e bessel_Jn bessel_Y0_e bessel_Y0 bessel_Y1_e bessel_Y1 bessel_Yn_e bessel_Yn bessel_I0_e bessel_I0 bessel_I1_e bessel_I1 bessel_In_e bessel_Inbessel_I0_scaled_ebessel_I0_scaledbessel_I1_scaled_ebessel_I1_scaledbessel_In_scaled_ebessel_In_scaled bessel_K0_e bessel_K0 bessel_K1_e bessel_K1 bessel_Kn_e bessel_Knbessel_K0_scaled_ebessel_K0_scaledbessel_K1_scaled_ebessel_K1_scaledbessel_Kn_scaled_ebessel_Kn_scaled bessel_j0_e bessel_j0 bessel_j1_e bessel_j1 bessel_j2_e bessel_j2 bessel_jl_e bessel_jl bessel_y0_e bessel_y0 bessel_y1_e bessel_y1 bessel_y2_e bessel_y2 bessel_yl_e bessel_ylbessel_i0_scaled_ebessel_i0_scaledbessel_i1_scaled_ebessel_i1_scaledbessel_i2_scaled_ebessel_i2_scaledbessel_il_scaled_ebessel_il_scaledbessel_k0_scaled_ebessel_k0_scaledbessel_k1_scaled_ebessel_k1_scaledbessel_k2_scaled_ebessel_k2_scaledbessel_kl_scaled_ebessel_kl_scaled bessel_Jnu_e bessel_Jnu bessel_Ynu_e bessel_Ynubessel_Inu_scaled_ebessel_Inu_scaled bessel_Inu_e bessel_Inubessel_Knu_scaled_ebessel_Knu_scaled bessel_Knu_e bessel_Knubessel_lnKnu_e bessel_lnKnubessel_zero_J0_ebessel_zero_J0bessel_zero_J1_ebessel_zero_J1bessel_zero_Jnu_ebessel_zero_Jnuexp_eexp exp_e10_e exp_mult_eexp_multexp_mult_e10_eexpm1_eexpm1exprel_eexprel exprel_2_eexprel_2 exprel_n_eexprel_n exp_err_e exp_err_e10_eexp_mult_err_eexp_mult_err_e10_e airy_Ai_eairy_Ai airy_Bi_eairy_Biairy_Ai_scaled_eairy_Ai_scaledairy_Bi_scaled_eairy_Bi_scaledairy_Ai_deriv_e airy_Ai_derivairy_Bi_deriv_e airy_Bi_derivairy_Ai_deriv_scaled_eairy_Ai_deriv_scaledairy_Bi_deriv_scaled_eairy_Bi_deriv_scaledairy_zero_Ai_e airy_zero_Aiairy_zero_Bi_e airy_zero_Biairy_zero_Ai_deriv_eairy_zero_Ai_derivairy_zero_Bi_deriv_eairy_zero_Bi_deriverfc_eerfc log_erfc_elog_erfcerf_eerferf_Z_eerf_Q_eerf_Zerf_Qhazard_ehazard lngamma_elngammagamma_egamma gammastar_e gammastar gammainv_egammainv taylorcoeff_e taylorcoefffact_efact doublefact_e doublefactlnfact_elnfactlndoublefact_e lndoublefact lnchoose_elnchoosechoose_echooselnpoch_elnpochpoch_epoch pochrel_epochrel gamma_inc_Q_e gamma_inc_Q gamma_inc_P_e gamma_inc_P gamma_inc_e gamma_inclnbeta_elnbetabeta_ebeta beta_inc_ebeta_inc polySolvefftifft integrateQAGS integrateQNG derivCentral derivForward derivBackwardFunCodeSMinMinIdxMaxMaxIdxAbsSumNorm2 FunCodeVVATan2PowDivMulSubAdd FunCodeSVPowVSPowSVNegate AddConstantRecipScaleFunCodeVSqrtSignLogExpATanhACoshASinhTanhCoshSinhATanACosASinAbsTanCosSin toScalarR vectorMapR vectorMapC vectorMapValR vectorMapValC vectorZipR vectorZipClinspace vectorMax vectorMinvectorMaxIndexvectorMinIndex fromBlocksflipudfliprldiagRecttakeDiagident><takeRowsdropRows takeColumns dropColumns fromListsasRowasColumn fromArray2Dformat readMatrix extractRowsrepmateigSgeigHgsvdgqrqrPackedunpackQRcholRcholCluSolveRluSolveCluRluCminimizeNMSimplexminimizeConjugateGradientsetErrorHandlerOffsvdRsvdRddsvdCeigCeigReigSeigH linearSolveR linearSolveClinearSolveLSRlinearSolveLSClinearSolveSVDRlinearSolveSVDCcholHcholSqrRqrChessRhessCschurRschurC Container toComplex fromComplexcompconjrealcomplexLinearscale addConstantaddsubmuldivide scaleRecipequaldotouter kroneckermeshdomgnuplotXmeshmesh'splotmplotplotparametricPlot matrixToPGMimshowNormedpnormNormTypePNorm2PNorm1InfinityFieldsvd linearSolvelinearSolveSVDeigeigSH'cholSHhessschurctranseigSHcholdetluinvpinvfulleconomyepsi nullspacePrec nullVector haussholder unpackHessrcondrankmatFuncexpmsqrtm<><.>.**/<\><|><->runTests gsl_strerrordebugonpartitcommon//fi errorCodecheckTauxMulTMMCVMTMCVMTCVMTVCVTCMCVTCVCVCVTCVCVTCVTCMCMCMTCMCMVCMTCMVCMTVCMTCMCM TCMCMCVCMTMCMCVCMTCMCVCMTCVCMTCMTMMVMTMVMTMMVTMVTVVMTVMTMMMTMVMMTVMMTMMTMTVVVTVVTVPCPDww2ww3ww4app1app2app3app4fptr createVectorat'atasReal asComplexVvec withVectorsafeRead subMatrixR subMatrixCdiagRdiagCc_gslReadMatrix cconstantC cconstantRc_diagCc_diagR c_submatrixR cmultiplyC cmultiplyRctransCctransR constantD transdata multiplyD subMatrixDdiagDMtMFfdatMCcdat MatrixOrder ColumnMajorRowMajorcmatfmatmat withMatrixmatrixFromVector createMatrix singletoncompat>|< transdataR transdataC transdataAuxgmatCdtt multiplyAux multiplyR multiplyCdiagAux constantAux constantR constantC createSFR createSFR_E10Size_t Gsl_mode_tprecCodelegendre_Pl_arraylegendre_Pl_deriv_arraylegendre_Plm_arraylegendre_Plm_deriv_arraylegendre_sphPlm_arraylegendre_sphPlm_deriv_arraylegendre_H3d_array complex_log_e complex_sin_e complex_cos_ecomplex_logsin_e polar_to_rect rect_to_polarangle_restrict_symm_eangle_restrict_pos_e complex_psi_egegenpoly_arraycomplex_dilog_xy_ecomplex_dilog_ecomplex_spence_xy_ecoupling_6j_INCORRECT_ecoupling_6j_INCORRECTcoulomb_wave_FG_ecoulomb_wave_F_arraycoulomb_wave_FG_arraycoulomb_wave_FGp_arraycoulomb_wave_sphF_arraycoulomb_CL_arraybessel_Jn_arraybessel_Yn_arraybessel_In_arraybessel_In_scaled_arraybessel_Kn_arraybessel_Kn_scaled_arraybessel_jl_arraybessel_jl_steed_arraybessel_yl_arraybessel_il_scaled_arraybessel_kl_scaled_arraybessel_sequence_Jnu_e lngamma_sgn_elngamma_complex_e lnpoch_sgn_e lnbeta_sgn_eComplexDoublemkfunjoinVert joinHorizluRauxluCaux mkVecVecfunmkVecfunphase magnitudepolarcismkPolar conjugateimagPartrealPart:+eigS'eigH'toFilepinvTolCMRMPosDefSqWCWCHerRotSqrMcMrHercHerrRotcRotrSqcSqrWCcWCrSqWCcSqWCrPosDefcPosDefAprox:~dist|~|~:squareunitary hermitianwellCondpositiveDefinite upperTriangupperHessenbergzerosonesluPropinvProppinvPropdetProp nullspacePropsvdProp1svdProp2eigProp eigSHPropqrProphessProp schurProp1 schurProp2cholProp expmDiagPropqCheck