A      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~             !!!!""## #!#"###$#%#&#'#(#)#*$+$,$-$.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@&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([(\(](^(_(`(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({)|*}*~*******************++++++++++++,,,,,,,,,,-------------------------------------.......2portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es> Vconversion of Haskell functions into function pointers that can be used in the C side description of GSL error codes ! debug x = trace (show x) x"useful 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 ($)) &Aerror codes for the auxiliary functions required by the wrappers 'check the error code /  !"#$%&'(!"#$%&'  (  !"#$%&'portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es>(9signature of foreign functions admitting C-style vectors )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]0an alternative to .J with explicit dimension, used also in the instances for Show (Vector a). 11access to Vector elements without range checking 2/access to Vector elements with range checking. 35takes a number of consecutive elements from a Vector  > subVector 2 3 (fromList [1..10]) 3 |> [3.0,4.0,5.0]4Reads a vector position: > fromList [0..9] @> 7 7.052creates 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]6Ztransforms a complex vector into a real vector with alternating real and imaginary parts 7Ytransforms a real vector into a complex vector with alternating real and imaginary parts 8map on Vectors 9zipWith for Vectors ()*+,-./0123456789)*+,(-./0123456789()*+,*+,-./0123456789portable (uses FFI) provisionalAlberto Ruiz <aruiz@um.es>DNOptimized matrix computations are provided for elements in the Element class. K@Matrix representation suitable for GSL and LAPACK computations. UMatrix transpose. V*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]Wthe inverse of Data.Packed.Matrix.fromLists X(creates a Matrix from a list of vectors Y3extracts the rows of a matrix as a list of vectors Z4Creates 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 ematrix product f-extraction of a submatrix from a real matrix g0extraction of a submatrix from a complex matrix h$Extracts a submatrix from a matrix. i#diagonal matrix from a real vector j#diagonal matrix from a real vector k0creates a square matrix with the given diagonal n: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]o2obtains the complex conjugate of a complex vector pDcreates a complex vector from vectors with real and imaginary parts qthe inverse of p rQconverts a real vector into a complex representation (with zero imaginary parts) suloads a matrix efficiently from formatted ASCII text file (the number of rows and columns must be known in advance). M:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs<RTSKNLOPQOPMUVJWXYZ[\]^_`DEFGHIabcCBA@def?ghi>j=kl<m;nopqrs:::;<=>?@ABCDEFGHIEFGHIJKNLOPQOPMLMNOPQRTSSTUVWXYZ[\]^_`abcdefghijklmnopqrsportable (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 .tuvwxyz{|}~.tzyxwvu{~}|.tzyxwvuuvwxyz{~}||}~/portable provisionalAlberto Ruiz <aruiz@um.es>  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsportable 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])+./034589n)+.0/+435n89portable 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 = k $ . [5,7,2] > let b = ] 4 $ n (-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 K, 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 ]%DKOPUVWXYZ[\]^_hks)DKOPOPOPU]VW\XYZ[hk^_suses ffi provisional!Alberto Ruiz (aruiz at um dot es)conversion utilities F)+./034589DKOPUVWXYZ[\]^_hknsportable (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 <> k s <> U 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)'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.  uses ffi provisional!Alberto Ruiz (aruiz at um dot es)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)Fast 1D Fourier transform of a ) (01 23) 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)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)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: GSL.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: GSL.Plot.mplot $ drop 2 ([ p)uses ffi provisional!Alberto Ruiz (aruiz at um dot es)access to a sf_result acces to sf_result_e10 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 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 (((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)Rwrapper for int gsl_sf_airy_Ai_e(double x,gsl_mode_t mode,gsl_sf_result* result); =wrapper for double gsl_sf_airy_Ai(double x,gsl_mode_t mode); Rwrapper for int gsl_sf_airy_Bi_e(double x,gsl_mode_t mode,gsl_sf_result* result); =wrapper for double gsl_sf_airy_Bi(double x,gsl_mode_t mode); Ywrapper for int gsl_sf_airy_Ai_scaled_e(double x,gsl_mode_t mode,gsl_sf_result* result); Dwrapper for double gsl_sf_airy_Ai_scaled(double x,gsl_mode_t mode); Ywrapper for int gsl_sf_airy_Bi_scaled_e(double x,gsl_mode_t mode,gsl_sf_result* result); Dwrapper for double gsl_sf_airy_Bi_scaled(double x,gsl_mode_t mode); Xwrapper for int gsl_sf_airy_Ai_deriv_e(double x,gsl_mode_t mode,gsl_sf_result* result); Cwrapper for double gsl_sf_airy_Ai_deriv(double x,gsl_mode_t mode); Xwrapper for int gsl_sf_airy_Bi_deriv_e(double x,gsl_mode_t mode,gsl_sf_result* result); Cwrapper for double gsl_sf_airy_Bi_deriv(double x,gsl_mode_t mode);  _wrapper for int gsl_sf_airy_Ai_deriv_scaled_e(double x,gsl_mode_t mode,gsl_sf_result* result); !Jwrapper for double gsl_sf_airy_Ai_deriv_scaled(double x,gsl_mode_t mode); "_wrapper for int gsl_sf_airy_Bi_deriv_scaled_e(double x,gsl_mode_t mode,gsl_sf_result* result); #Jwrapper for double gsl_sf_airy_Bi_deriv_scaled(double x,gsl_mode_t mode); $Dwrapper for int gsl_sf_airy_zero_Ai_e(int s,gsl_sf_result* result); %/wrapper for double gsl_sf_airy_zero_Ai(int s); &Dwrapper for int gsl_sf_airy_zero_Bi_e(int s,gsl_sf_result* result); '/wrapper for double gsl_sf_airy_zero_Bi(int s); (Jwrapper for int gsl_sf_airy_zero_Ai_deriv_e(int s,gsl_sf_result* result); )5wrapper for double gsl_sf_airy_zero_Ai_deriv(int s); *Jwrapper for int gsl_sf_airy_zero_Bi_deriv_e(int s,gsl_sf_result* result); +5wrapper for double gsl_sf_airy_zero_Bi_deriv(int s);  !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+uses ffi provisional!Alberto Ruiz (aruiz at um dot es),>wrapper for int gsl_sf_exp_e(double x,gsl_sf_result* result); -)wrapper for double gsl_sf_exp(double x); .Fwrapper for int gsl_sf_exp_e10_e(double x,gsl_sf_result_e10* result); /Lwrapper for int gsl_sf_exp_mult_e(double x,double y,gsl_sf_result* result); 07wrapper for double gsl_sf_exp_mult(double x,double y); 1Twrapper for int gsl_sf_exp_mult_e10_e(double x,double y,gsl_sf_result_e10* result); 2@wrapper for int gsl_sf_expm1_e(double x,gsl_sf_result* result); 3+wrapper for double gsl_sf_expm1(double x); 4Awrapper for int gsl_sf_exprel_e(double x,gsl_sf_result* result); 5,wrapper for double gsl_sf_exprel(double x); 6Cwrapper for int gsl_sf_exprel_2_e(double x,gsl_sf_result* result); 7.wrapper for double gsl_sf_exprel_2(double x); 8Iwrapper for int gsl_sf_exprel_n_e(int n,double x,gsl_sf_result* result); 94wrapper for double gsl_sf_exprel_n(int n,double x); :Lwrapper for int gsl_sf_exp_err_e(double x,double dx,gsl_sf_result* result); ;Twrapper for int gsl_sf_exp_err_e10_e(double x,double dx,gsl_sf_result_e10* result); <dwrapper for int gsl_sf_exp_mult_err_e(double x,double dx,double y,double dy,gsl_sf_result* result); =lwrapper for int gsl_sf_exp_mult_err_e10_e(double x,double dx,double y,double dy,gsl_sf_result_e10* result); ,-./0123456789:;<=,-./0123456789:;<=,-./0123456789:;<=uses ffi provisional!Alberto Ruiz (aruiz at um dot es)d>Dwrapper 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 A/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 BJwrapper 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 C5wrapper 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 DDwrapper 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 E/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 FDwrapper 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 G/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 HJwrapper 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 I5wrapper 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 JDwrapper 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 K/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 LDwrapper 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 M/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 NJwrapper 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 O5wrapper 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 PKwrapper 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 Q6wrapper 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 RKwrapper 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 S6wrapper 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 TQwrapper 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 U<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 VDwrapper 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 W/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 XDwrapper 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 Y/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 ZJwrapper 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 _6wrapper 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 `Qwrapper 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 a<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 bDwrapper 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 c/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 dDwrapper 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 e/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 fDwrapper 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 g/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 hJwrapper 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 i5wrapper 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 jDwrapper 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 k/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 lDwrapper 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 m/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 nDwrapper 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 o/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 pJwrapper 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 q5wrapper 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 rKwrapper 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 s6wrapper 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 tKwrapper 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 u6wrapper 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 vKwrapper 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 w6wrapper 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 xQwrapper 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 y<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 zKwrapper 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 }6wrapper 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 ~Kwrapper 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 6wrapper 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 Qwrapper 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 <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 Owrapper 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 :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 Owrapper 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 :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 Vwrapper 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 Awrapper 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 Owrapper 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 :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 Fwrapper 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 1wrapper 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 Fwrapper 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 1wrapper 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 Qwrapper 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 <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>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~X>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~X>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~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) 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) 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); 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); 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); 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); 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); 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); 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); 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); 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); 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); 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)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 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)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)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_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)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)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) 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)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)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)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)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) ?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 *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  >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 !)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 "Cwrapper 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 #.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 $Awrapper 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 %,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  !"#$%&'()  !"#$%&'()  !"#$%&'()$uses ffi provisional!Alberto Ruiz (aruiz at um dot es)*Hwrapper 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 +3wrapper 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 ,Hwrapper 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 -3wrapper 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 *+,-*+,-*+,-%uses ffi provisional!Alberto Ruiz (aruiz at um dot es).>wrapper for int gsl_sf_sin_e(double x,gsl_sf_result* result); /)wrapper for double gsl_sf_sin(double x); 0>wrapper for int gsl_sf_cos_e(double x,gsl_sf_result* result); 1)wrapper for double gsl_sf_cos(double x); 2Iwrapper for int gsl_sf_hypot_e(double x,double y,gsl_sf_result* result); 34wrapper for double gsl_sf_hypot(double x,double y); awrapper for int gsl_sf_complex_sin_e(double zr,double zi,gsl_sf_result* szr,gsl_sf_result* szi); awrapper for int gsl_sf_complex_cos_e(double zr,double zi,gsl_sf_result* czr,gsl_sf_result* czi); fwrapper for int gsl_sf_complex_logsin_e(double zr,double zi,gsl_sf_result* lszr,gsl_sf_result* lszi); 4?wrapper for int gsl_sf_sinc_e(double x,gsl_sf_result* result); 5*wrapper for double gsl_sf_sinc(double x); 6Awrapper for int gsl_sf_lnsinh_e(double x,gsl_sf_result* result); 7,wrapper for double gsl_sf_lnsinh(double x); 8Awrapper for int gsl_sf_lncosh_e(double x,gsl_sf_result* result); 9,wrapper for double gsl_sf_lncosh(double x); _wrapper for int gsl_sf_polar_to_rect(double r,double theta,gsl_sf_result* x,gsl_sf_result* y);  _wrapper for int gsl_sf_rect_to_polar(double x,double y,gsl_sf_result* r,gsl_sf_result* theta); :Lwrapper for int gsl_sf_sin_err_e(double x,double dx,gsl_sf_result* result); ;Lwrapper for int gsl_sf_cos_err_e(double x,double dx,gsl_sf_result* result); !=wrapper for int gsl_sf_angle_restrict_symm_e(double* theta); <=wrapper for double gsl_sf_angle_restrict_symm(double theta); "<wrapper for int gsl_sf_angle_restrict_pos_e(double* theta); =<wrapper for double gsl_sf_angle_restrict_pos(double theta); >Vwrapper for int gsl_sf_angle_restrict_symm_err_e(double theta,gsl_sf_result* result); ?Uwrapper for int gsl_sf_angle_restrict_pos_err_e(double theta,gsl_sf_result* result); ./0123456789:;<=>?./0123456789:;<=>?./0123456789:;<=>?&uses ffi provisional!Alberto Ruiz (aruiz at um dot es)@@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 A+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 B?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 C*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 DAwrapper 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 E,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 FBwrapper 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 G-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 HIwrapper 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 I4wrapper 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 J?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 K*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 L>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 M)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 @ABCDEFGHIJKLM@ABCDEFGHIJKLM@ABCDEFGHIJKLM'uses ffi provisional!Alberto Ruiz (aruiz at um dot es) N>wrapper for int gsl_sf_log_e(double x,gsl_sf_result* result); O)wrapper for double gsl_sf_log(double x); PBwrapper for int gsl_sf_log_abs_e(double x,gsl_sf_result* result); Q-wrapper for double gsl_sf_log_abs(double x); #cwrapper for int gsl_sf_complex_log_e(double zr,double zi,gsl_sf_result* lnr,gsl_sf_result* theta); REwrapper for int gsl_sf_log_1plusx_e(double x,gsl_sf_result* result); S0wrapper for double gsl_sf_log_1plusx(double x); THwrapper for int gsl_sf_log_1plusx_mx_e(double x,gsl_sf_result* result); U3wrapper for double gsl_sf_log_1plusx_mx(double x); NOPQRSTUNOPQRSTUNOPQRSTU(uses ffi provisional!Alberto Ruiz (aruiz at um dot es),VLwrapper for int gsl_sf_legendre_Pl_e(int l,double x,gsl_sf_result* result); W7wrapper for double gsl_sf_legendre_Pl(int l,double x); $Rwrapper for int gsl_sf_legendre_Pl_array(int lmax,double x,double* result_array); %swrapper for int gsl_sf_legendre_Pl_deriv_array(int lmax,double x,double* result_array,double* result_deriv_array); XFwrapper for int gsl_sf_legendre_P1_e(double x,gsl_sf_result* result); YFwrapper for int gsl_sf_legendre_P2_e(double x,gsl_sf_result* result); ZFwrapper for int gsl_sf_legendre_P3_e(double x,gsl_sf_result* result); [1wrapper for double gsl_sf_legendre_P1(double x); \1wrapper for double gsl_sf_legendre_P2(double x); ]1wrapper for double gsl_sf_legendre_P3(double x); ^Fwrapper for int gsl_sf_legendre_Q0_e(double x,gsl_sf_result* result); _1wrapper for double gsl_sf_legendre_Q0(double x); `Fwrapper for int gsl_sf_legendre_Q1_e(double x,gsl_sf_result* result); a1wrapper for double gsl_sf_legendre_Q1(double x); bLwrapper for int gsl_sf_legendre_Ql_e(int l,double x,gsl_sf_result* result); c7wrapper for double gsl_sf_legendre_Ql(int l,double x); dSwrapper for int gsl_sf_legendre_Plm_e(int l,int m,double x,gsl_sf_result* result); e>wrapper for double gsl_sf_legendre_Plm(int l,int m,double x); &Ywrapper for int gsl_sf_legendre_Plm_array(int lmax,int m,double x,double* result_array); 'zwrapper for int gsl_sf_legendre_Plm_deriv_array(int lmax,int m,double x,double* result_array,double* result_deriv_array); fVwrapper for int gsl_sf_legendre_sphPlm_e(int l,int m,double x,gsl_sf_result* result); gAwrapper for double gsl_sf_legendre_sphPlm(int l,int m,double x); (\wrapper for int gsl_sf_legendre_sphPlm_array(int lmax,int m,double x,double* result_array); )}wrapper for int gsl_sf_legendre_sphPlm_deriv_array(int lmax,int m,double x,double* result_array,double* result_deriv_array); h<wrapper for int gsl_sf_legendre_array_size(int lmax,int m); iVwrapper for int gsl_sf_conicalP_half_e(double lambda,double x,gsl_sf_result* result); jAwrapper for double gsl_sf_conicalP_half(double lambda,double x); kWwrapper for int gsl_sf_conicalP_mhalf_e(double lambda,double x,gsl_sf_result* result); lBwrapper for double gsl_sf_conicalP_mhalf(double lambda,double x); mSwrapper for int gsl_sf_conicalP_0_e(double lambda,double x,gsl_sf_result* result); n>wrapper for double gsl_sf_conicalP_0(double lambda,double x); oSwrapper for int gsl_sf_conicalP_1_e(double lambda,double x,gsl_sf_result* result); p>wrapper for double gsl_sf_conicalP_1(double lambda,double x); q_wrapper for int gsl_sf_conicalP_sph_reg_e(int l,double lambda,double x,gsl_sf_result* result); rJwrapper for double gsl_sf_conicalP_sph_reg(int l,double lambda,double x); s_wrapper for int gsl_sf_conicalP_cyl_reg_e(int m,double lambda,double x,gsl_sf_result* result); tJwrapper for double gsl_sf_conicalP_cyl_reg(int m,double lambda,double x); uYwrapper for int gsl_sf_legendre_H3d_0_e(double lambda,double eta,gsl_sf_result* result); vDwrapper for double gsl_sf_legendre_H3d_0(double lambda,double eta); wYwrapper for int gsl_sf_legendre_H3d_1_e(double lambda,double eta,gsl_sf_result* result); xDwrapper for double gsl_sf_legendre_H3d_1(double lambda,double eta); y]wrapper for int gsl_sf_legendre_H3d_e(int l,double lambda,double eta,gsl_sf_result* result); zHwrapper for double gsl_sf_legendre_H3d(int l,double lambda,double eta); *cwrapper for int gsl_sf_legendre_H3d_array(int lmax,double lambda,double eta,double* result_array); %VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz%VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz%VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz4uses ffi provisional!Alberto Ruiz (aruiz at um dot es)      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz)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.       !"#$%&'()*+,-./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 <> U 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 <> U 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 <> U 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. Wrapper for LAPACK's dpotrf1, which computes the Cholesky factorization of a * real symmetric positive definite matrix. Wrapper for LAPACK's dgeqr26, which computes a QR factorization of a real matrix. Wrapper for LAPACK's zgeqr29, which computes a QR factorization of a complex matrix. Wrapper for LAPACK's dgehrdE, which computes a Hessenberg factorization of a square real matrix. Wrapper for LAPACK's zgehrdH, which computes a Hessenberg factorization of a square complex matrix. Wrapper for LAPACK's dgees@, which computes a Schur factorization of a square real matrix. Wrapper for LAPACK's zgeesC, which computes a Schur factorization of a square complex matrix. |}~+,|}~|}~+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. "element by element multiplication element by element division 7scale the element by element reciprocal of the object: scaleRecip 2 (fromList [5,i]#) == 2 |> [0.4 :+ 0.0,0.0 :+ (-2.0)] euclidean inner product Outer 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 ]#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 ] e e 5portable 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 lFrom vectors x and y, it generates a pair of matrices to be used as x and y arguments for matrix functions. 4Draws a 3D surface representation of a real matrix.   > mesh (hilb 20) NIn certain versions you can interactively rotate the graphic using the mouse. mDraws the surface represented by the function f in the desired ranges and number of points, internally using ,.  > let f x y = cos (x + y) " > splot f (0,pi) (0,2*pi) 50 -plots several vectors against the first one TDraws a list of functions over a desired range and with a desired number of points + > plot [sin, cos, sin.(3*)] (0,2*pi) 1000 SDraws 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 "writes a matrix to pgm image file Qimshow shows a representation of a matrix as a gray level image using ImageMagick' s display.   -uses ffi provisional!Alberto Ruiz (aruiz at um dot es)Objects 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 SSimilar to eigSH without checking that the input matrix is hermitian or symmetric. RSimilar to chol without checking that the input matrix is hermitian or symmetric. QR 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. %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.  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) Conjugate transpose. YEigenvalues 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 XCholesky factorization of a positive definite hermitian or symmetric matrix using lapack's dpotrf or zportrf. If  c = chol m then m == c < > ctrans c. (Inverse of a square matrix using lapacks' dgesv and zgesv. .Pseudoinverse of a general matrix using lapack's dgelss or zgelss.  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.  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. #The machine precision of a Double: eps = 2.22044604925031e-16! (the value used by GNU-Octave). The imaginary unit: i = 0.0 :+ 1.0 6The nullspace of a matrix from its SVD decomposition. _The nullspace of a matrix, assumed to be one-dimensional, with default tolerance (shortcut for last . nullspacePrec 1). NReciprocal of the 2-norm condition number of a matrix, computed from the SVD. 0Number of linearly independent rows or columns. DGeneric matrix functions for diagonalizable matrices. For instance: logm = matFunc logNMatrix exponential. It uses a direct translation of Algorithm 11.3.1 in Golub & Van Loan, + based on a scaled Pade approximation. [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 ]&.%% .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. 6uses ffi provisional!Alberto Ruiz (aruiz at um dot es))+./034589DKOPUVWXYZ[\]^_ehkns./789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@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#[$\$]$^$_%`%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&{&|&}&~&''''''''((((((((((((((((((((((((((((((((((((()*********************++++++++++++,,,,,,,,,,-------------------------------------.......      !01"01#01$01%01&01'01(01)01*01+,-23. / 0123456789:;<=>?@ABCDEFGHIJK%L%M%N%O%P%Q%R'S(T(U(V(W(X(Y(Z*[*\,]-^_hmatrix-0.1.0.0Data.Packed.Internal.CommonData.Packed.Internal.VectorData.Packed.Internal.MatrixNumeric.GSL.VectorData.Packed.VectorData.Packed.Matrix Data.PackedNumeric.GSL.MatrixNumeric.GSL.DifferentiationNumeric.GSL.IntegrationNumeric.GSL.FourierNumeric.GSL.PolynomialsNumeric.GSL.MinimizationNumeric.GSL.Special.InternalNumeric.GSL.Special.GammaNumeric.GSL.Special.ErfNumeric.GSL.Special.AiryNumeric.GSL.Special.ExpNumeric.GSL.Special.BesselNumeric.GSL.Special.ClausenNumeric.GSL.Special.CoulombNumeric.GSL.Special.CouplingNumeric.GSL.Special.DawsonNumeric.GSL.Special.DebyeNumeric.GSL.Special.DilogNumeric.GSL.Special.ElementaryNumeric.GSL.Special.EllintNumeric.GSL.Special.ExpintNumeric.GSL.Special.Fermi_diracNumeric.GSL.Special.GegenbauerNumeric.GSL.Special.HypergNumeric.GSL.Special.LaguerreNumeric.GSL.Special.LambertNumeric.GSL.Special.Pow_intNumeric.GSL.Special.PsiNumeric.GSL.Special.SynchrotronNumeric.GSL.Special.TrigNumeric.GSL.Special.ZetaNumeric.GSL.Special.LogNumeric.GSL.Special.Legendre Numeric.GSLNumeric.LinearAlgebra.LAPACKNumeric.LinearAlgebra.Linear Graphics.Plot Numeric.LinearAlgebra.AlgorithmsNumeric.LinearAlgebra.InterfaceData.Packed.Internalbase Data.Complexghc-prim GHC.TypesNumeric.GSL.SpecialNumeric.LinearAlgebra.InstancesNumeric.LinearAlgebramkfun gsl_strerrorTMMCVMTMCVMTCVMTVCVTCMCVTCVCVCVTCVCVTCVTCMCMCMTCMCMVCMTCMVCMTVCMTCMCM TCMCMCVCMTMCMCVCMTCMCVCMTCVCMTCMTMMVMTMVMTMVTVVMTVMTMMMTMMTMTVVVTVVTVPCPDdebugonpartitcommon// errorCodecheckVcVectorVdimfptr createVectorfromListtoList|>at'at subVector@>joinasReal asComplex liftVector liftVector2c_gslReadMatrix cconstantC cconstantRc_diagCc_diagR c_submatrixR cmultiplyC cmultiplyRctransCctransRElement constantD transdata multiplyD subMatrixDdiagDMtMatrixMFfdatMCrowscolscdat MatrixOrder ColumnMajorRowMajortransflattentoListsfromRowstoRows fromColumns toColumns@@>reshape liftMatrix liftMatrix2compat>|< transdataR transdataC multiply'multiply subMatrixR subMatrixC subMatrixdiagRdiagCdiag constantR constantCconstantconj toComplex fromComplexcompfromFileFunCodeSMinMinIdxMaxMaxIdxAbsSumNorm2 FunCodeVVATan2PowDivMulSubAdd FunCodeSVPowVSPowSVNegate AddConstantRecipScaleFunCodeVSqrtSignLogExpATanhACoshASinhTanhCoshSinhATanACosASinAbsTanCosSin toScalarR vectorMapR vectorMapC vectorMapValR vectorMapValC vectorZipR vectorZipClinspace vectorMax vectorMinvectorMaxIndexvectorMinIndex fromBlocksflipudfliprldiagRecttakeDiagident><takeRowsdropRows takeColumns dropColumns fromListsasRowasColumn fromArray2Dformat readMatrix extractRowsrepmat ContainerrealcomplexeigSgeigHgsvdgqrqrPackedunpackQRcholRcholCluSolveRluSolveCluRluC derivCentral derivForward derivBackward integrateQAGS integrateQNGfftifft polySolveminimizeNMSimplexminimizeConjugateGradientSize_t Gsl_mode_t Precision PrecApprox PrecSingle PrecDoubleprecCode createSFR createSFR_E10 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_incerfc_eerfc log_erfc_elog_erfcerf_eerferf_Z_eerf_Q_eerf_Zerf_Qhazard_ehazard 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_derivexp_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 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_Jnu clausen_eclausenhydrogenicR_1_e hydrogenicR_1 hydrogenicR_e hydrogenicR coulomb_CL_e coupling_3j_e coupling_3j coupling_6j_e coupling_6jcoupling_RacahW_ecoupling_RacahW coupling_9j_e coupling_9jdawson_edawson debye_1_edebye_1 debye_2_edebye_2 debye_3_edebye_3 debye_4_edebye_4dilog_edilog multiply_emultiply_err_eellint_Kcomp_e ellint_Kcompellint_Ecomp_e ellint_Ecomp 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 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_eatanintfermi_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 gegenpoly_1_e gegenpoly_2_e gegenpoly_3_e gegenpoly_1 gegenpoly_2 gegenpoly_3 gegenpoly_n_e gegenpoly_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 laguerre_1_e laguerre_2_e laguerre_3_e laguerre_1 laguerre_2 laguerre_3 laguerre_n_e laguerre_n lambert_W0_e lambert_W0 lambert_Wm1_e lambert_Wm1 pow_int_epow_int psi_int_epsi_intpsi_epsi psi_1piy_epsi_1piy psi_1_int_e psi_1_intpsi_1_epsi_1psi_n_epsi_nsynchrotron_1_e synchrotron_1synchrotron_2_e synchrotron_2sin_esincos_ecoshypot_ehypotsinc_esinclnsinh_elnsinhlncosh_elncosh sin_err_e cos_err_eangle_restrict_symmangle_restrict_posangle_restrict_symm_err_eangle_restrict_pos_err_e zeta_int_ezeta_intzeta_ezetazetam1_ezetam1 zetam1_int_e zetam1_inthzeta_ehzeta eta_int_eeta_inteta_eetalog_elog log_abs_elog_abs log_1plusx_e log_1plusxlog_1plusx_mx_e log_1plusx_mx 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_H3dsetErrorHandlerOffsvdRsvdRddsvdCeigCeigReigSeigH linearSolveR linearSolveClinearSolveLSRlinearSolveLSClinearSolveSVDRlinearSolveSVDCcholHcholSqrRqrChessRhessCschurRschurCLinearscale addConstantaddsubmuldivide scaleRecipequaldotouter kroneckermeshdomgnuplotXmeshmesh'splotmplotplotparametricPlot matrixToPGMimshowNormedpnormNormTypePNorm2PNorm1InfinityFieldsvdlu linearSolvelinearSolveSVDeigeigSH'cholSHhessschurctranseigSHcholdetinvpinvfulleconomyepsi nullspacePrec nullVector haussholder unpackHessrcondrankmatFuncexpmsqrtm<><.>.**/<\><|><->ww2ww3ww4app1app2app3app4vec withVectorsafeReadcmatfmatmat withMatrixmatrixFromVector createMatrix singleton transdataAuxgmatCdtt multiplyAux multiplyR multiplyCdiagAux constantAux transdataGdotL multiplyG multiplyLjoinVert joinHorizphase magnitudepolarcismkPolar conjugateimagPartrealPart:+ComplexluRauxluCauxDouble mkVecVecfunmkVecfun lngamma_sgn_elngamma_complex_e lnpoch_sgn_ebessel_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_ecoulomb_wave_FG_ecoulomb_wave_F_arraycoulomb_wave_FG_arraycoulomb_wave_FGp_arraycoulomb_wave_sphF_arraycoulomb_CL_arraycoupling_6j_INCORRECT_ecoupling_6j_INCORRECTcomplex_dilog_xy_ecomplex_dilog_ecomplex_spence_xy_egegenpoly_array complex_sin_e complex_cos_ecomplex_logsin_e polar_to_rect rect_to_polarangle_restrict_symm_eangle_restrict_pos_e complex_log_elegendre_Pl_arraylegendre_Pl_deriv_arraylegendre_Plm_arraylegendre_Plm_deriv_arraylegendre_sphPlm_arraylegendre_sphPlm_deriv_arraylegendre_H3d_arrayeigS'eigH'toFilepinvTol