numo-gsl-alt 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/README.md +83 -0
  4. data/Rakefile +16 -0
  5. data/ext/numo/gsl/cdf/depend +17 -0
  6. data/ext/numo/gsl/cdf/erbpp_cdf.rb +44 -0
  7. data/ext/numo/gsl/cdf/extconf.rb +9 -0
  8. data/ext/numo/gsl/cdf/func_def.rb +610 -0
  9. data/ext/numo/gsl/const/const_2.4.rb +419 -0
  10. data/ext/numo/gsl/const/const_2.5.rb +419 -0
  11. data/ext/numo/gsl/const/const_2.6.rb +419 -0
  12. data/ext/numo/gsl/const/const_def.rb +419 -0
  13. data/ext/numo/gsl/const/depend +17 -0
  14. data/ext/numo/gsl/const/erbpp_const.rb +28 -0
  15. data/ext/numo/gsl/const/extconf.rb +9 -0
  16. data/ext/numo/gsl/err/depend +1 -0
  17. data/ext/numo/gsl/err/err.c +22 -0
  18. data/ext/numo/gsl/err/extconf.rb +9 -0
  19. data/ext/numo/gsl/extconf_gsl.rb +58 -0
  20. data/ext/numo/gsl/fit/depend +17 -0
  21. data/ext/numo/gsl/fit/erbpp_fit.rb +73 -0
  22. data/ext/numo/gsl/fit/extconf.rb +9 -0
  23. data/ext/numo/gsl/fit/func_2.4.rb +128 -0
  24. data/ext/numo/gsl/fit/func_2.5.rb +128 -0
  25. data/ext/numo/gsl/fit/func_2.6.rb +128 -0
  26. data/ext/numo/gsl/fit/func_def.rb +129 -0
  27. data/ext/numo/gsl/fit/tmpl/check_1d.c +9 -0
  28. data/ext/numo/gsl/fit/tmpl/fit_linear.c +53 -0
  29. data/ext/numo/gsl/fit/tmpl/fit_linear_est.c +56 -0
  30. data/ext/numo/gsl/fit/tmpl/fit_mul.c +50 -0
  31. data/ext/numo/gsl/fit/tmpl/fit_mul_est.c +47 -0
  32. data/ext/numo/gsl/fit/tmpl/fit_wlinear.c +59 -0
  33. data/ext/numo/gsl/fit/tmpl/fit_wmul.c +56 -0
  34. data/ext/numo/gsl/gen/erbln.rb +132 -0
  35. data/ext/numo/gsl/gen/erbpp2.rb +344 -0
  36. data/ext/numo/gsl/gen/erbpp_gsl.rb +170 -0
  37. data/ext/numo/gsl/gen/func_parser.rb +518 -0
  38. data/ext/numo/gsl/gen/tmpl/c_DFloat_f_DFloat.c +40 -0
  39. data/ext/numo/gsl/gen/tmpl/c_DFloat_f_SZ.c +41 -0
  40. data/ext/numo/gsl/gen/tmpl/c_DFloat_f_SZ_x2.c +44 -0
  41. data/ext/numo/gsl/gen/tmpl/c_DFloat_x2_f_DFloat_x2.c +45 -0
  42. data/ext/numo/gsl/gen/tmpl/c_double_f_double.c +16 -0
  43. data/ext/numo/gsl/gen/tmpl/c_double_f_sizet.c +16 -0
  44. data/ext/numo/gsl/gen/tmpl/c_double_f_sizet_x2.c +17 -0
  45. data/ext/numo/gsl/gen/tmpl/c_double_f_void.c +15 -0
  46. data/ext/numo/gsl/gen/tmpl/c_double_x2_f_void.c +17 -0
  47. data/ext/numo/gsl/gen/tmpl/c_new_DFloat.c +29 -0
  48. data/ext/numo/gsl/gen/tmpl/c_new_double.c +22 -0
  49. data/ext/numo/gsl/gen/tmpl/c_new_f_other.c +25 -0
  50. data/ext/numo/gsl/gen/tmpl/c_new_sizet.c +22 -0
  51. data/ext/numo/gsl/gen/tmpl/c_new_sizet_double.c +23 -0
  52. data/ext/numo/gsl/gen/tmpl/c_new_sizet_x2.c +23 -0
  53. data/ext/numo/gsl/gen/tmpl/c_new_void.c +21 -0
  54. data/ext/numo/gsl/gen/tmpl/c_other_f_void.c +19 -0
  55. data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat.c +46 -0
  56. data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat_x2.c +41 -0
  57. data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat_x3.c +44 -0
  58. data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat_x4.c +47 -0
  59. data/ext/numo/gsl/gen/tmpl/c_self_f_SZ_x2_DFloat.c +45 -0
  60. data/ext/numo/gsl/gen/tmpl/c_self_f_double.c +17 -0
  61. data/ext/numo/gsl/gen/tmpl/c_self_f_other.c +17 -0
  62. data/ext/numo/gsl/gen/tmpl/c_self_f_sizet.c +21 -0
  63. data/ext/numo/gsl/gen/tmpl/c_self_f_void.c +14 -0
  64. data/ext/numo/gsl/gen/tmpl/c_sizet_f_void.c +15 -0
  65. data/ext/numo/gsl/gen/tmpl/c_sizet_x2_f_void.c +17 -0
  66. data/ext/numo/gsl/gen/tmpl/c_str_f_void.c +15 -0
  67. data/ext/numo/gsl/gen/tmpl/c_super_new_void.c +18 -0
  68. data/ext/numo/gsl/gen/tmpl/c_uint_f_void.c +15 -0
  69. data/ext/numo/gsl/gen/tmpl/c_ulong_f_void.c +15 -0
  70. data/ext/numo/gsl/gen/tmpl/c_void_f_double.c +17 -0
  71. data/ext/numo/gsl/gen/tmpl/c_void_f_double_x2.c +18 -0
  72. data/ext/numo/gsl/gen/tmpl/c_void_f_double_x4.c +20 -0
  73. data/ext/numo/gsl/gen/tmpl/c_void_f_ulong.c +17 -0
  74. data/ext/numo/gsl/gen/tmpl/c_void_f_void.c +14 -0
  75. data/ext/numo/gsl/gen/tmpl/cast_1d_contiguous.c +15 -0
  76. data/ext/numo/gsl/gen/tmpl/cast_2d_contiguous.c +15 -0
  77. data/ext/numo/gsl/gen/tmpl/class.c +26 -0
  78. data/ext/numo/gsl/gen/tmpl/create_new_narray.c +26 -0
  79. data/ext/numo/gsl/gen/tmpl/init_class.c +10 -0
  80. data/ext/numo/gsl/gen/tmpl/init_module.c +12 -0
  81. data/ext/numo/gsl/gen/tmpl/lib.c +41 -0
  82. data/ext/numo/gsl/gen/tmpl/m_DFloat_Int_f_DFloat.c +38 -0
  83. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat.c +35 -0
  84. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_Int.c +39 -0
  85. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_UInt.c +39 -0
  86. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_double.c +42 -0
  87. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_double_x2.c +47 -0
  88. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_int.c +42 -0
  89. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_x2.c +38 -0
  90. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_x3.c +41 -0
  91. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_Int.c +36 -0
  92. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt.c +36 -0
  93. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32.c +36 -0
  94. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_double.c +43 -0
  95. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_double_uint.c +49 -0
  96. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_double_x2.c +48 -0
  97. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_uint_x3.c +51 -0
  98. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_double.c +43 -0
  99. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_double_uint.c +50 -0
  100. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_double_x2.c +48 -0
  101. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_uint_x3.c +51 -0
  102. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_int_DFloat.c +41 -0
  103. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_int_DFloat_x2.c +44 -0
  104. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_int_x2_DFloat_x2.c +46 -0
  105. data/ext/numo/gsl/gen/tmpl/m_Int_f_DFloat.c +36 -0
  106. data/ext/numo/gsl/gen/tmpl/m_Int_f_DFloat_x3.c +42 -0
  107. data/ext/numo/gsl/gen/tmpl/m_Int_f_int_DFloat.c +42 -0
  108. data/ext/numo/gsl/gen/tmpl/m_Int_f_int_DFloat_x2.c +45 -0
  109. data/ext/numo/gsl/gen/tmpl/mod_func_noloop.c +54 -0
  110. data/ext/numo/gsl/gen/tmpl/mod_func_scalar.c +27 -0
  111. data/ext/numo/gsl/gen/tmpl/module.c +9 -0
  112. data/ext/numo/gsl/histogram/depend +17 -0
  113. data/ext/numo/gsl/histogram/erbpp_histogram.rb +109 -0
  114. data/ext/numo/gsl/histogram/extconf.rb +9 -0
  115. data/ext/numo/gsl/histogram/func_2.4.rb +742 -0
  116. data/ext/numo/gsl/histogram/func_2.5.rb +742 -0
  117. data/ext/numo/gsl/histogram/func_2.6.rb +742 -0
  118. data/ext/numo/gsl/histogram/func_def.rb +763 -0
  119. data/ext/numo/gsl/histogram/tmpl/c_DFloat_f_2d_get.c +54 -0
  120. data/ext/numo/gsl/histogram/tmpl/c_DFloat_f_field.c +35 -0
  121. data/ext/numo/gsl/histogram/tmpl/c_DFloat_f_get.c +47 -0
  122. data/ext/numo/gsl/histogram/tmpl/c_DFloat_x2_f_get_range.c +56 -0
  123. data/ext/numo/gsl/histogram/tmpl/c_bool_f_other.c +19 -0
  124. data/ext/numo/gsl/histogram/tmpl/c_bool_f_pdf_init.c +24 -0
  125. data/ext/numo/gsl/histogram/tmpl/c_self_f_2d_set_ranges.c +26 -0
  126. data/ext/numo/gsl/histogram/tmpl/c_self_f_set_ranges.c +21 -0
  127. data/ext/numo/gsl/histogram/tmpl/c_sizet_f_field.c +15 -0
  128. data/ext/numo/gsl/interp/depend +17 -0
  129. data/ext/numo/gsl/interp/erbpp_interp.rb +60 -0
  130. data/ext/numo/gsl/interp/extconf.rb +9 -0
  131. data/ext/numo/gsl/interp/func_2.4.rb +804 -0
  132. data/ext/numo/gsl/interp/func_2.5.rb +804 -0
  133. data/ext/numo/gsl/interp/func_2.6.rb +804 -0
  134. data/ext/numo/gsl/interp/func_def.rb +816 -0
  135. data/ext/numo/gsl/interp/parse_interp.rb +67 -0
  136. data/ext/numo/gsl/interp/tmpl/interp2d_new.c +36 -0
  137. data/ext/numo/gsl/interp/tmpl/interp2d_type_new.c +17 -0
  138. data/ext/numo/gsl/interp/tmpl/interp_bsearch.c +57 -0
  139. data/ext/numo/gsl/interp/tmpl/interp_new.c +29 -0
  140. data/ext/numo/gsl/interp/tmpl/interp_type_new.c +16 -0
  141. data/ext/numo/gsl/interp/tmpl/spline2d_eval.c +61 -0
  142. data/ext/numo/gsl/interp/tmpl/spline_eval.c +55 -0
  143. data/ext/numo/gsl/interp/tmpl/spline_integ.c +56 -0
  144. data/ext/numo/gsl/interp/type_def.rb +9 -0
  145. data/ext/numo/gsl/mkmf_gsl.rb +33 -0
  146. data/ext/numo/gsl/multifit/depend +17 -0
  147. data/ext/numo/gsl/multifit/erbpp_multifit.rb +99 -0
  148. data/ext/numo/gsl/multifit/extconf.rb +9 -0
  149. data/ext/numo/gsl/multifit/func_2.1.rb +1035 -0
  150. data/ext/numo/gsl/multifit/func_2.2.1.rb +736 -0
  151. data/ext/numo/gsl/multifit/func_2.2.rb +736 -0
  152. data/ext/numo/gsl/multifit/func_2.3.rb +872 -0
  153. data/ext/numo/gsl/multifit/func_2.4.rb +859 -0
  154. data/ext/numo/gsl/multifit/func_2.5.rb +859 -0
  155. data/ext/numo/gsl/multifit/func_2.6.rb +859 -0
  156. data/ext/numo/gsl/multifit/func_def.rb +1012 -0
  157. data/ext/numo/gsl/multifit/tmpl/multifit_linear.c +66 -0
  158. data/ext/numo/gsl/multifit/tmpl/multifit_linear_est.c +48 -0
  159. data/ext/numo/gsl/multifit/tmpl/multifit_linear_residuals.c +47 -0
  160. data/ext/numo/gsl/multifit/tmpl/multifit_wlinear.c +70 -0
  161. data/ext/numo/gsl/multifit/type_def.rb +1 -0
  162. data/ext/numo/gsl/multilarge/func_2.4.rb +216 -0
  163. data/ext/numo/gsl/multilarge/func_2.5.rb +216 -0
  164. data/ext/numo/gsl/multilarge/func_2.6.rb +216 -0
  165. data/ext/numo/gsl/multilarge/func_def.rb +215 -0
  166. data/ext/numo/gsl/numo_gsl.h +117 -0
  167. data/ext/numo/gsl/pdf/depend +17 -0
  168. data/ext/numo/gsl/pdf/erbpp_pdf.rb +27 -0
  169. data/ext/numo/gsl/pdf/extconf.rb +9 -0
  170. data/ext/numo/gsl/pdf/func_2.2.1.rb +306 -0
  171. data/ext/numo/gsl/pdf/func_2.2.rb +306 -0
  172. data/ext/numo/gsl/pdf/func_2.3.rb +306 -0
  173. data/ext/numo/gsl/pdf/func_2.4.rb +303 -0
  174. data/ext/numo/gsl/pdf/func_2.5.rb +333 -0
  175. data/ext/numo/gsl/pdf/func_2.6.rb +333 -0
  176. data/ext/numo/gsl/pdf/func_def.rb +282 -0
  177. data/ext/numo/gsl/pdf/parse_pdf.rb +42 -0
  178. data/ext/numo/gsl/pdf/tmpl/dirichlet.c +39 -0
  179. data/ext/numo/gsl/pdf/tmpl/multinomial.c +39 -0
  180. data/ext/numo/gsl/poly/depend +17 -0
  181. data/ext/numo/gsl/poly/erbpp_poly.rb +70 -0
  182. data/ext/numo/gsl/poly/extconf.rb +9 -0
  183. data/ext/numo/gsl/poly/func_2.4.rb +220 -0
  184. data/ext/numo/gsl/poly/func_2.5.rb +220 -0
  185. data/ext/numo/gsl/poly/func_2.6.rb +220 -0
  186. data/ext/numo/gsl/poly/func_def.rb +234 -0
  187. data/ext/numo/gsl/poly/tmpl/poly_complex_solve.c +59 -0
  188. data/ext/numo/gsl/poly/tmpl/poly_eval.c +70 -0
  189. data/ext/numo/gsl/poly/tmpl/poly_eval_derivs.c +40 -0
  190. data/ext/numo/gsl/ran/depend +17 -0
  191. data/ext/numo/gsl/ran/erbpp_ran.rb +43 -0
  192. data/ext/numo/gsl/ran/extconf.rb +9 -0
  193. data/ext/numo/gsl/ran/func_2.2.1.rb +1658 -0
  194. data/ext/numo/gsl/ran/func_2.2.rb +1658 -0
  195. data/ext/numo/gsl/ran/func_2.3.rb +1658 -0
  196. data/ext/numo/gsl/ran/func_2.4.rb +1526 -0
  197. data/ext/numo/gsl/ran/func_2.5.rb +1573 -0
  198. data/ext/numo/gsl/ran/func_2.6.rb +1573 -0
  199. data/ext/numo/gsl/ran/func_def.rb +1594 -0
  200. data/ext/numo/gsl/ran/parse_ran.rb +10 -0
  201. data/ext/numo/gsl/rng/depend +17 -0
  202. data/ext/numo/gsl/rng/erbpp_rng.rb +59 -0
  203. data/ext/numo/gsl/rng/extconf.rb +9 -0
  204. data/ext/numo/gsl/rng/func_2.4.rb +187 -0
  205. data/ext/numo/gsl/rng/func_2.5.rb +187 -0
  206. data/ext/numo/gsl/rng/func_2.6.rb +187 -0
  207. data/ext/numo/gsl/rng/func_def.rb +230 -0
  208. data/ext/numo/gsl/rng/parse_rng.rb +126 -0
  209. data/ext/numo/gsl/rng/tmpl/ran.c +44 -0
  210. data/ext/numo/gsl/rng/tmpl/ran_DFloat_f_DFloat.c +28 -0
  211. data/ext/numo/gsl/rng/tmpl/ran_DFloat_x2.c +45 -0
  212. data/ext/numo/gsl/rng/tmpl/ran_DFloat_x3.c +51 -0
  213. data/ext/numo/gsl/rng/tmpl/ran_multinomial.c +32 -0
  214. data/ext/numo/gsl/rng/tmpl/rng_DFloat.c +29 -0
  215. data/ext/numo/gsl/rng/tmpl/rng_UInt.c +44 -0
  216. data/ext/numo/gsl/rng/tmpl/rng_alloc.c +24 -0
  217. data/ext/numo/gsl/rng/tmpl/rng_type_new.c +14 -0
  218. data/ext/numo/gsl/rng/type_def.rb +63 -0
  219. data/ext/numo/gsl/rstat/depend +17 -0
  220. data/ext/numo/gsl/rstat/erbpp_rstat.rb +64 -0
  221. data/ext/numo/gsl/rstat/extconf.rb +9 -0
  222. data/ext/numo/gsl/rstat/func_2.2.1.rb +116 -0
  223. data/ext/numo/gsl/rstat/func_2.2.rb +116 -0
  224. data/ext/numo/gsl/rstat/func_2.3.rb +123 -0
  225. data/ext/numo/gsl/rstat/func_2.4.rb +122 -0
  226. data/ext/numo/gsl/rstat/func_2.5.rb +122 -0
  227. data/ext/numo/gsl/rstat/func_2.6.rb +122 -0
  228. data/ext/numo/gsl/rstat/func_def.rb +102 -0
  229. data/ext/numo/gsl/sf/depend +17 -0
  230. data/ext/numo/gsl/sf/erbpp_sf.rb +51 -0
  231. data/ext/numo/gsl/sf/extconf.rb +9 -0
  232. data/ext/numo/gsl/sf/func_2.4.rb +4482 -0
  233. data/ext/numo/gsl/sf/func_2.5.rb +4508 -0
  234. data/ext/numo/gsl/sf/func_2.6.rb +4538 -0
  235. data/ext/numo/gsl/sf/func_def.rb +4703 -0
  236. data/ext/numo/gsl/sf/parse_sf.rb +277 -0
  237. data/ext/numo/gsl/sf/tmpl/c_DFloat_f_int_x2_DFloat.c +50 -0
  238. data/ext/numo/gsl/sf/tmpl/c_DFloat_f_int_x2_DFloat_x2.c +52 -0
  239. data/ext/numo/gsl/sf/tmpl/c_DFloat_f_int_x3_DFloat_x2.c +55 -0
  240. data/ext/numo/gsl/sf/tmpl/m_DFloat_f_DFloat_mode.c +47 -0
  241. data/ext/numo/gsl/sf/tmpl/m_DFloat_f_lmax_array.c +41 -0
  242. data/ext/numo/gsl/sf/tmpl/m_DFloat_f_nmin_nmax_array.c +49 -0
  243. data/ext/numo/gsl/spmatrix/const_2.2.1.rb +3 -0
  244. data/ext/numo/gsl/spmatrix/const_2.2.rb +3 -0
  245. data/ext/numo/gsl/spmatrix/const_2.3.rb +3 -0
  246. data/ext/numo/gsl/spmatrix/const_def.rb +2 -0
  247. data/ext/numo/gsl/spmatrix/depend +17 -0
  248. data/ext/numo/gsl/spmatrix/erbpp_spmatrix.rb +101 -0
  249. data/ext/numo/gsl/spmatrix/extconf.rb +9 -0
  250. data/ext/numo/gsl/spmatrix/func_2.2.1.rb +297 -0
  251. data/ext/numo/gsl/spmatrix/func_2.2.rb +297 -0
  252. data/ext/numo/gsl/spmatrix/func_2.3.rb +297 -0
  253. data/ext/numo/gsl/spmatrix/func_2.4.rb +300 -0
  254. data/ext/numo/gsl/spmatrix/func_2.5.rb +300 -0
  255. data/ext/numo/gsl/spmatrix/func_2.6.rb +372 -0
  256. data/ext/numo/gsl/spmatrix/func_def.rb +218 -0
  257. data/ext/numo/gsl/spmatrix/parse_spmatrix.rb +70 -0
  258. data/ext/numo/gsl/spmatrix/tmpl/itersolve_iterate.c +47 -0
  259. data/ext/numo/gsl/spmatrix/tmpl/itersolve_new.c +22 -0
  260. data/ext/numo/gsl/spmatrix/tmpl/itersolve_type_new.c +16 -0
  261. data/ext/numo/gsl/spmatrix/tmpl/spblas_dgemm.c +35 -0
  262. data/ext/numo/gsl/spmatrix/tmpl/spblas_dgemv.c +43 -0
  263. data/ext/numo/gsl/spmatrix/tmpl/spmatrix_add.c +22 -0
  264. data/ext/numo/gsl/spmatrix/tmpl/spmatrix_d2sp.c +28 -0
  265. data/ext/numo/gsl/spmatrix/tmpl/spmatrix_new.c +40 -0
  266. data/ext/numo/gsl/spmatrix/tmpl/spmatrix_sp2d.c +25 -0
  267. data/ext/numo/gsl/spmatrix/type_def.rb +1 -0
  268. data/ext/numo/gsl/stats/depend +17 -0
  269. data/ext/numo/gsl/stats/erbpp_stats.rb +30 -0
  270. data/ext/numo/gsl/stats/extconf.rb +9 -0
  271. data/ext/numo/gsl/stats/func_2.2.1.rb +608 -0
  272. data/ext/numo/gsl/stats/func_2.2.rb +608 -0
  273. data/ext/numo/gsl/stats/func_2.3.rb +608 -0
  274. data/ext/numo/gsl/stats/func_2.4.rb +583 -0
  275. data/ext/numo/gsl/stats/func_2.5.rb +718 -0
  276. data/ext/numo/gsl/stats/func_2.6.rb +718 -0
  277. data/ext/numo/gsl/stats/func_def.rb +608 -0
  278. data/ext/numo/gsl/stats/parse_stats.rb +63 -0
  279. data/ext/numo/gsl/stats/tmpl/stats_1a0p.c +37 -0
  280. data/ext/numo/gsl/stats/tmpl/stats_1a0p_index.c +60 -0
  281. data/ext/numo/gsl/stats/tmpl/stats_1a1p.c +41 -0
  282. data/ext/numo/gsl/stats/tmpl/stats_1a2p.c +42 -0
  283. data/ext/numo/gsl/stats/tmpl/stats_2a0p.c +39 -0
  284. data/ext/numo/gsl/stats/tmpl/stats_2a1p.c +43 -0
  285. data/ext/numo/gsl/stats/tmpl/stats_2a2p.c +44 -0
  286. data/ext/numo/gsl/stats/tmpl/stats_minmax.c +37 -0
  287. data/ext/numo/gsl/stats/tmpl/stats_minmax_index.c +67 -0
  288. data/ext/numo/gsl/stats/tmpl/stats_spearman.c +46 -0
  289. data/ext/numo/gsl/sys/const_2.4.rb +20 -0
  290. data/ext/numo/gsl/sys/const_2.5.rb +20 -0
  291. data/ext/numo/gsl/sys/const_2.6.rb +20 -0
  292. data/ext/numo/gsl/sys/const_def.rb +21 -0
  293. data/ext/numo/gsl/sys/depend +17 -0
  294. data/ext/numo/gsl/sys/enum_def.rb +75 -0
  295. data/ext/numo/gsl/sys/erbpp_sys.rb +60 -0
  296. data/ext/numo/gsl/sys/extconf.rb +9 -0
  297. data/ext/numo/gsl/sys/func_2.4.rb +236 -0
  298. data/ext/numo/gsl/sys/func_2.5.rb +236 -0
  299. data/ext/numo/gsl/sys/func_2.6.rb +236 -0
  300. data/ext/numo/gsl/sys/func_def.rb +249 -0
  301. data/ext/numo/gsl/version.h +1 -0
  302. data/ext/numo/gsl/wavelet/depend +17 -0
  303. data/ext/numo/gsl/wavelet/erbpp_wavelet.rb +48 -0
  304. data/ext/numo/gsl/wavelet/extconf.rb +9 -0
  305. data/ext/numo/gsl/wavelet/func_2.4.rb +304 -0
  306. data/ext/numo/gsl/wavelet/func_2.5.rb +304 -0
  307. data/ext/numo/gsl/wavelet/func_2.6.rb +304 -0
  308. data/ext/numo/gsl/wavelet/func_def.rb +337 -0
  309. data/ext/numo/gsl/wavelet/parse_wavelet.rb +47 -0
  310. data/ext/numo/gsl/wavelet/tmpl/wavelet2d_transform.c +56 -0
  311. data/ext/numo/gsl/wavelet/tmpl/wavelet_array_check.c +56 -0
  312. data/ext/numo/gsl/wavelet/tmpl/wavelet_macro.c +1 -0
  313. data/ext/numo/gsl/wavelet/tmpl/wavelet_new.c +20 -0
  314. data/ext/numo/gsl/wavelet/tmpl/wavelet_transform.c +55 -0
  315. data/ext/numo/gsl/wavelet/tmpl/wavelet_transform2.c +22 -0
  316. data/ext/numo/gsl/wavelet/tmpl/wavelet_type_new.c +15 -0
  317. data/ext/numo/gsl/wavelet/type_def.rb +6 -0
  318. data/lib/numo/gsl.rb +17 -0
  319. data/numo-gsl-alt.gemspec +33 -0
  320. metadata +406 -0
@@ -0,0 +1,60 @@
1
+ require_relative "../gen/erbpp_gsl"
2
+
3
+ func_list = ErbppGsl.read_func
4
+ const_list = ErbppGsl.read_const
5
+ enum_list = ErbppGsl.read_enum
6
+
7
+ class DefSys < DefGslModule
8
+ def lookup(h)
9
+ case h
10
+ when FM(dbl, type:int); "m_Int_f_DFloat"
11
+ when FM(*[dbl]*3, type:int); "m_Int_f_DFloat_x3" # gsl_fcmp
12
+ when FM(dbl, type:dbl); "m_DFloat_f_DFloat"
13
+ when FM(*[dbl]*2, type:dbl); "m_DFloat_f_DFloat_x2"
14
+ when FM(*[dbl]*3, type:dbl); "m_DFloat_f_DFloat_x3"
15
+ when FM(int, type:dbl); "m_DFloat_f_Int"
16
+ when FM(dbl,int, type:dbl); "m_DFloat_f_DFloat_Int"
17
+ when FM(dbl,uint, type:dbl); "m_DFloat_f_DFloat_UInt"
18
+ when FM(dbl,intp, type:dbl); "m_DFloat_Int_f_DFloat" # gsl_frexp
19
+ end
20
+ end
21
+
22
+ def to_method_name(s)
23
+ s.sub(/^gsl_/,"")
24
+ end
25
+ end
26
+
27
+ DefLib.new do
28
+ set line_number: true
29
+ set erb_dir: %w[tmpl ../gen/tmpl]
30
+ set erb_suffix: ".c"
31
+
32
+ set file_name: "gsl_sys.c"
33
+ set include_files: %w[gsl/gsl_sys.h gsl/gsl_pow_int.h gsl/gsl_math.h gsl/gsl_mode.h]
34
+ set lib_name: "sys"
35
+ set ns_var: "mGSL"
36
+
37
+ DefSys.new(self) do
38
+ set name: "sys"
39
+ set module_name: "GSL"
40
+ set module_var: "mGSL"
41
+ set full_module_name: "Numo::GSL"
42
+
43
+ func_list.each do |h|
44
+ check_func(h)
45
+ end
46
+
47
+ const_list.each do |a|
48
+ m = a[0].sub(/^GSL_/,"")
49
+ v = "DBL2NUM(#{a[0]})"
50
+ def_const(m, v, desc:a[1]||"")
51
+ end
52
+
53
+ enum_list.each do |a|
54
+ m = a[0].sub(/^GSL_/,"")
55
+ v = "INT2FIX(#{a[1]})"
56
+ def_const(m, v, desc:a[2]||"")
57
+ end
58
+ end
59
+
60
+ end.run
@@ -0,0 +1,9 @@
1
+ require_relative '../extconf_gsl.rb'
2
+
3
+ # source file to compile
4
+ srcs = %w(
5
+ gsl_sys
6
+ )
7
+ $objs = srcs.collect{|i| i+".o"}
8
+
9
+ create_makefile('numo/gsl/sys')
@@ -0,0 +1,236 @@
1
+ [{:func_name=>"GSL_MAX_DBL",
2
+ :func_type=>"extern inline double",
3
+ :args=>[["double", "a"], ["double", "b"]],
4
+ :desc=>
5
+ "This function returns the maximum of the double precision numbers\n" +
6
+ "a and b using an inline function. The use of a function\n" +
7
+ "allows for type checking of the arguments as an extra safety feature. On\n" +
8
+ "platforms where inline functions are not available the macro\n" +
9
+ "GSL_MAX will be automatically substituted."},
10
+ {:func_name=>"GSL_MAX_INT",
11
+ :func_type=>"extern inline int",
12
+ :args=>[["int", "a"], ["int", "b"]],
13
+ :desc=>
14
+ "These functions return the maximum or minimum of the integers a\n" +
15
+ "and b using an inline function. On platforms where inline\n" +
16
+ "functions are not available the macros GSL_MAX or GSL_MIN\n" +
17
+ "will be automatically substituted."},
18
+ {:func_name=>"GSL_MAX_LDBL",
19
+ :func_type=>"extern inline long double",
20
+ :args=>[["long double", "a"], ["long double", "b"]],
21
+ :desc=>
22
+ "These functions return the maximum or minimum of the long doubles a\n" +
23
+ "and b using an inline function. On platforms where inline\n" +
24
+ "functions are not available the macros GSL_MAX or GSL_MIN\n" +
25
+ "will be automatically substituted."},
26
+ {:func_name=>"GSL_MIN_DBL",
27
+ :func_type=>"extern inline double",
28
+ :args=>[["double", "a"], ["double", "b"]],
29
+ :desc=>
30
+ "This function returns the minimum of the double precision numbers\n" +
31
+ "a and b using an inline function. The use of a function\n" +
32
+ "allows for type checking of the arguments as an extra safety feature. On\n" +
33
+ "platforms where inline functions are not available the macro\n" +
34
+ "GSL_MIN will be automatically substituted."},
35
+ {:func_name=>"GSL_MIN_INT",
36
+ :func_type=>"extern inline int",
37
+ :args=>[["int", "a"], ["int", "b"]],
38
+ :desc=>
39
+ "These functions return the maximum or minimum of the integers a\n" +
40
+ "and b using an inline function. On platforms where inline\n" +
41
+ "functions are not available the macros GSL_MAX or GSL_MIN\n" +
42
+ "will be automatically substituted."},
43
+ {:func_name=>"GSL_MIN_LDBL",
44
+ :func_type=>"extern inline long double",
45
+ :args=>[["long double", "a"], ["long double", "b"]],
46
+ :desc=>
47
+ "These functions return the maximum or minimum of the long doubles a\n" +
48
+ "and b using an inline function. On platforms where inline\n" +
49
+ "functions are not available the macros GSL_MAX or GSL_MIN\n" +
50
+ "will be automatically substituted."},
51
+ {:func_name=>"gsl_acosh",
52
+ :func_type=>"double",
53
+ :args=>[["const double", "x"]],
54
+ :desc=>
55
+ "This function computes the value of \\arccosh{(x)}. It provides an\n" +
56
+ "alternative to the standard math function acosh(x)."},
57
+ {:func_name=>"gsl_asinh",
58
+ :func_type=>"double",
59
+ :args=>[["const double", "x"]],
60
+ :desc=>
61
+ "This function computes the value of \\arcsinh{(x)}. It provides an\n" +
62
+ "alternative to the standard math function asinh(x)."},
63
+ {:func_name=>"gsl_atanh",
64
+ :func_type=>"double",
65
+ :args=>[["const double", "x"]],
66
+ :desc=>
67
+ "This function computes the value of \\arctanh{(x)}. It provides an\n" +
68
+ "alternative to the standard math function atanh(x)."},
69
+ {:func_name=>"gsl_expm1",
70
+ :func_type=>"double",
71
+ :args=>[["const double", "x"]],
72
+ :desc=>
73
+ "This function computes the value of \\exp(x)-1 in a way that is\n" +
74
+ "accurate for small x. It provides an alternative to the BSD math\n" +
75
+ "function expm1(x)."},
76
+ {:func_name=>"gsl_fcmp",
77
+ :func_type=>"int",
78
+ :args=>[["double", "x"], ["double", "y"], ["double", "epsilon"]],
79
+ :desc=>
80
+ "This function determines whether x and y are approximately\n" +
81
+ "equal to a relative accuracy epsilon.\n" +
82
+ "The relative accuracy is measured using an interval of size 2\n" +
83
+ "\\delta, where \\delta = 2^k \\epsilon and k is the\n" +
84
+ "maximum base-2 exponent of x and y as computed by the\n" +
85
+ "function frexp.\n" +
86
+ "If x and y lie within this interval, they are considered\n" +
87
+ "approximately equal and the function returns 0. Otherwise if x <\n" +
88
+ "y, the function returns -1, or if x > y, the function returns\n" +
89
+ "+1.\n" +
90
+ "Note that x and y are compared to relative accuracy, so\n" +
91
+ "this function is not suitable for testing whether a value is\n" +
92
+ "approximately zero. \n" +
93
+ "The implementation is based on the package fcmp by T.C. Belding."},
94
+ {:func_name=>"gsl_finite",
95
+ :func_type=>"int",
96
+ :args=>[["const double", "x"]],
97
+ :desc=>
98
+ "This function returns 1 if x is a real number, and 0 if it is\n" +
99
+ "infinite or not-a-number."},
100
+ {:func_name=>"gsl_frexp",
101
+ :func_type=>"double",
102
+ :args=>[["double", "x"], ["int *", "e"]],
103
+ :desc=>
104
+ "This function splits the number x into its normalized fraction\n" +
105
+ "f and exponent e, such that x = f * 2^e and\n" +
106
+ "0.5 <= f < 1. The function returns f and stores the\n" +
107
+ "exponent in e. If x is zero, both f and e\n" +
108
+ "are set to zero. This function provides an alternative to the standard\n" +
109
+ "math function frexp(x, e)."},
110
+ {:func_name=>"gsl_hypot",
111
+ :func_type=>"double",
112
+ :args=>[["const double", "x"], ["const double", "y"]],
113
+ :desc=>
114
+ "This function computes the value of\n" +
115
+ "\\sqrt{x^2 + y^2} in a way that avoids overflow. It provides an\n" +
116
+ "alternative to the BSD math function hypot(x,y)."},
117
+ {:func_name=>"gsl_hypot3",
118
+ :func_type=>"double",
119
+ :args=>[["const double", "x"], ["const double", "y"], ["const double", "z"]],
120
+ :desc=>
121
+ "This function computes the value of\n" +
122
+ "\\sqrt{x^2 + y^2 + z^2} in a way that avoids overflow."},
123
+ {:func_name=>"gsl_isinf",
124
+ :func_type=>"int",
125
+ :args=>[["const double", "x"]],
126
+ :desc=>
127
+ "This function returns +1 if x is positive infinity,\n" +
128
+ "-1 if x is negative infinity and 0\n" +
129
+ "otherwise. [#f1]_"},
130
+ {:func_name=>"gsl_isnan",
131
+ :func_type=>"int",
132
+ :args=>[["const double", "x"]],
133
+ :desc=>"This function returns 1 if x is not-a-number."},
134
+ {:func_name=>"gsl_ldexp",
135
+ :func_type=>"double",
136
+ :args=>[["double", "x"], ["int", "e"]],
137
+ :desc=>
138
+ "This function computes the value of x * 2^e. It provides an\n" +
139
+ "alternative to the standard math function ldexp(x,e)."},
140
+ {:func_name=>"gsl_log1p",
141
+ :func_type=>"double",
142
+ :args=>[["const double", "x"]],
143
+ :desc=>
144
+ "This function computes the value of \\log(1+x) in a way that is\n" +
145
+ "accurate for small x. It provides an alternative to the BSD math\n" +
146
+ "function log1p(x)."},
147
+ {:func_name=>"gsl_pow_2",
148
+ :func_type=>"double",
149
+ :args=>[["const double", "x"]],
150
+ :desc=>
151
+ "These functions can be used to compute small integer powers x^2,\n" +
152
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
153
+ "HAVE_INLINE is defined, so that use of these functions \n" +
154
+ "should be as efficient as explicitly writing the corresponding \n" +
155
+ "product expression::"},
156
+ {:func_name=>"gsl_pow_3",
157
+ :func_type=>"double",
158
+ :args=>[["const double", "x"]],
159
+ :desc=>
160
+ "These functions can be used to compute small integer powers x^2,\n" +
161
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
162
+ "HAVE_INLINE is defined, so that use of these functions \n" +
163
+ "should be as efficient as explicitly writing the corresponding \n" +
164
+ "product expression::"},
165
+ {:func_name=>"gsl_pow_4",
166
+ :func_type=>"double",
167
+ :args=>[["const double", "x"]],
168
+ :desc=>
169
+ "These functions can be used to compute small integer powers x^2,\n" +
170
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
171
+ "HAVE_INLINE is defined, so that use of these functions \n" +
172
+ "should be as efficient as explicitly writing the corresponding \n" +
173
+ "product expression::"},
174
+ {:func_name=>"gsl_pow_5",
175
+ :func_type=>"double",
176
+ :args=>[["const double", "x"]],
177
+ :desc=>
178
+ "These functions can be used to compute small integer powers x^2,\n" +
179
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
180
+ "HAVE_INLINE is defined, so that use of these functions \n" +
181
+ "should be as efficient as explicitly writing the corresponding \n" +
182
+ "product expression::"},
183
+ {:func_name=>"gsl_pow_6",
184
+ :func_type=>"double",
185
+ :args=>[["const double", "x"]],
186
+ :desc=>
187
+ "These functions can be used to compute small integer powers x^2,\n" +
188
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
189
+ "HAVE_INLINE is defined, so that use of these functions \n" +
190
+ "should be as efficient as explicitly writing the corresponding \n" +
191
+ "product expression::"},
192
+ {:func_name=>"gsl_pow_7",
193
+ :func_type=>"double",
194
+ :args=>[["const double", "x"]],
195
+ :desc=>
196
+ "These functions can be used to compute small integer powers x^2,\n" +
197
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
198
+ "HAVE_INLINE is defined, so that use of these functions \n" +
199
+ "should be as efficient as explicitly writing the corresponding \n" +
200
+ "product expression::"},
201
+ {:func_name=>"gsl_pow_8",
202
+ :func_type=>"double",
203
+ :args=>[["const double", "x"]],
204
+ :desc=>
205
+ "These functions can be used to compute small integer powers x^2,\n" +
206
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
207
+ "HAVE_INLINE is defined, so that use of these functions \n" +
208
+ "should be as efficient as explicitly writing the corresponding \n" +
209
+ "product expression::"},
210
+ {:func_name=>"gsl_pow_9",
211
+ :func_type=>"double",
212
+ :args=>[["const double", "x"]],
213
+ :desc=>
214
+ "These functions can be used to compute small integer powers x^2,\n" +
215
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
216
+ "HAVE_INLINE is defined, so that use of these functions \n" +
217
+ "should be as efficient as explicitly writing the corresponding \n" +
218
+ "product expression::"},
219
+ {:func_name=>"gsl_pow_int",
220
+ :func_type=>"double",
221
+ :args=>[["double", "x"], ["int", "n"]],
222
+ :desc=>
223
+ "These routines computes the power x^n for integer n. The\n" +
224
+ "power is computed efficiently---for example, x^8 is computed as\n" +
225
+ "((x^2)^2)^2, requiring only 3 multiplications. A version of this\n" +
226
+ "function which also computes the numerical error in the result is\n" +
227
+ "available as gsl_sf_pow_int_e."},
228
+ {:func_name=>"gsl_pow_uint",
229
+ :func_type=>"double",
230
+ :args=>[["double", "x"], ["unsigned int", "n"]],
231
+ :desc=>
232
+ "These routines computes the power x^n for integer n. The\n" +
233
+ "power is computed efficiently---for example, x^8 is computed as\n" +
234
+ "((x^2)^2)^2, requiring only 3 multiplications. A version of this\n" +
235
+ "function which also computes the numerical error in the result is\n" +
236
+ "available as gsl_sf_pow_int_e."}]
@@ -0,0 +1,236 @@
1
+ [{:func_name=>"GSL_MAX_DBL",
2
+ :func_type=>"extern inline double",
3
+ :args=>[["double", "a"], ["double", "b"]],
4
+ :desc=>
5
+ "This function returns the maximum of the double precision numbers\n" +
6
+ "a and b using an inline function. The use of a function\n" +
7
+ "allows for type checking of the arguments as an extra safety feature. On\n" +
8
+ "platforms where inline functions are not available the macro\n" +
9
+ "GSL_MAX will be automatically substituted."},
10
+ {:func_name=>"GSL_MAX_INT",
11
+ :func_type=>"extern inline int",
12
+ :args=>[["int", "a"], ["int", "b"]],
13
+ :desc=>
14
+ "These functions return the maximum or minimum of the integers a\n" +
15
+ "and b using an inline function. On platforms where inline\n" +
16
+ "functions are not available the macros GSL_MAX or GSL_MIN\n" +
17
+ "will be automatically substituted."},
18
+ {:func_name=>"GSL_MAX_LDBL",
19
+ :func_type=>"extern inline long double",
20
+ :args=>[["long double", "a"], ["long double", "b"]],
21
+ :desc=>
22
+ "These functions return the maximum or minimum of the long doubles a\n" +
23
+ "and b using an inline function. On platforms where inline\n" +
24
+ "functions are not available the macros GSL_MAX or GSL_MIN\n" +
25
+ "will be automatically substituted."},
26
+ {:func_name=>"GSL_MIN_DBL",
27
+ :func_type=>"extern inline double",
28
+ :args=>[["double", "a"], ["double", "b"]],
29
+ :desc=>
30
+ "This function returns the minimum of the double precision numbers\n" +
31
+ "a and b using an inline function. The use of a function\n" +
32
+ "allows for type checking of the arguments as an extra safety feature. On\n" +
33
+ "platforms where inline functions are not available the macro\n" +
34
+ "GSL_MIN will be automatically substituted."},
35
+ {:func_name=>"GSL_MIN_INT",
36
+ :func_type=>"extern inline int",
37
+ :args=>[["int", "a"], ["int", "b"]],
38
+ :desc=>
39
+ "These functions return the maximum or minimum of the integers a\n" +
40
+ "and b using an inline function. On platforms where inline\n" +
41
+ "functions are not available the macros GSL_MAX or GSL_MIN\n" +
42
+ "will be automatically substituted."},
43
+ {:func_name=>"GSL_MIN_LDBL",
44
+ :func_type=>"extern inline long double",
45
+ :args=>[["long double", "a"], ["long double", "b"]],
46
+ :desc=>
47
+ "These functions return the maximum or minimum of the long doubles a\n" +
48
+ "and b using an inline function. On platforms where inline\n" +
49
+ "functions are not available the macros GSL_MAX or GSL_MIN\n" +
50
+ "will be automatically substituted."},
51
+ {:func_name=>"gsl_acosh",
52
+ :func_type=>"double",
53
+ :args=>[["const double", "x"]],
54
+ :desc=>
55
+ "This function computes the value of \\arccosh{(x)}. It provides an\n" +
56
+ "alternative to the standard math function acosh(x)."},
57
+ {:func_name=>"gsl_asinh",
58
+ :func_type=>"double",
59
+ :args=>[["const double", "x"]],
60
+ :desc=>
61
+ "This function computes the value of \\arcsinh{(x)}. It provides an\n" +
62
+ "alternative to the standard math function asinh(x)."},
63
+ {:func_name=>"gsl_atanh",
64
+ :func_type=>"double",
65
+ :args=>[["const double", "x"]],
66
+ :desc=>
67
+ "This function computes the value of \\arctanh{(x)}. It provides an\n" +
68
+ "alternative to the standard math function atanh(x)."},
69
+ {:func_name=>"gsl_expm1",
70
+ :func_type=>"double",
71
+ :args=>[["const double", "x"]],
72
+ :desc=>
73
+ "This function computes the value of \\exp(x)-1 in a way that is\n" +
74
+ "accurate for small x. It provides an alternative to the BSD math\n" +
75
+ "function expm1(x)."},
76
+ {:func_name=>"gsl_fcmp",
77
+ :func_type=>"int",
78
+ :args=>[["double", "x"], ["double", "y"], ["double", "epsilon"]],
79
+ :desc=>
80
+ "This function determines whether x and y are approximately\n" +
81
+ "equal to a relative accuracy epsilon.\n" +
82
+ "The relative accuracy is measured using an interval of size 2\n" +
83
+ "\\delta, where \\delta = 2^k \\epsilon and k is the\n" +
84
+ "maximum base-2 exponent of x and y as computed by the\n" +
85
+ "function frexp.\n" +
86
+ "If x and y lie within this interval, they are considered\n" +
87
+ "approximately equal and the function returns 0. Otherwise if x <\n" +
88
+ "y, the function returns -1, or if x > y, the function returns\n" +
89
+ "+1.\n" +
90
+ "Note that x and y are compared to relative accuracy, so\n" +
91
+ "this function is not suitable for testing whether a value is\n" +
92
+ "approximately zero. \n" +
93
+ "The implementation is based on the package fcmp by T.C. Belding."},
94
+ {:func_name=>"gsl_finite",
95
+ :func_type=>"int",
96
+ :args=>[["const double", "x"]],
97
+ :desc=>
98
+ "This function returns 1 if x is a real number, and 0 if it is\n" +
99
+ "infinite or not-a-number."},
100
+ {:func_name=>"gsl_frexp",
101
+ :func_type=>"double",
102
+ :args=>[["double", "x"], ["int *", "e"]],
103
+ :desc=>
104
+ "This function splits the number x into its normalized fraction\n" +
105
+ "f and exponent e, such that x = f * 2^e and\n" +
106
+ "0.5 <= f < 1. The function returns f and stores the\n" +
107
+ "exponent in e. If x is zero, both f and e\n" +
108
+ "are set to zero. This function provides an alternative to the standard\n" +
109
+ "math function frexp(x, e)."},
110
+ {:func_name=>"gsl_hypot",
111
+ :func_type=>"double",
112
+ :args=>[["const double", "x"], ["const double", "y"]],
113
+ :desc=>
114
+ "This function computes the value of\n" +
115
+ "\\sqrt{x^2 + y^2} in a way that avoids overflow. It provides an\n" +
116
+ "alternative to the BSD math function hypot(x,y)."},
117
+ {:func_name=>"gsl_hypot3",
118
+ :func_type=>"double",
119
+ :args=>[["const double", "x"], ["const double", "y"], ["const double", "z"]],
120
+ :desc=>
121
+ "This function computes the value of\n" +
122
+ "\\sqrt{x^2 + y^2 + z^2} in a way that avoids overflow."},
123
+ {:func_name=>"gsl_isinf",
124
+ :func_type=>"int",
125
+ :args=>[["const double", "x"]],
126
+ :desc=>
127
+ "This function returns +1 if x is positive infinity,\n" +
128
+ "-1 if x is negative infinity and 0\n" +
129
+ "otherwise. [#f1]_"},
130
+ {:func_name=>"gsl_isnan",
131
+ :func_type=>"int",
132
+ :args=>[["const double", "x"]],
133
+ :desc=>"This function returns 1 if x is not-a-number."},
134
+ {:func_name=>"gsl_ldexp",
135
+ :func_type=>"double",
136
+ :args=>[["double", "x"], ["int", "e"]],
137
+ :desc=>
138
+ "This function computes the value of x * 2^e. It provides an\n" +
139
+ "alternative to the standard math function ldexp(x,e)."},
140
+ {:func_name=>"gsl_log1p",
141
+ :func_type=>"double",
142
+ :args=>[["const double", "x"]],
143
+ :desc=>
144
+ "This function computes the value of \\log(1+x) in a way that is\n" +
145
+ "accurate for small x. It provides an alternative to the BSD math\n" +
146
+ "function log1p(x)."},
147
+ {:func_name=>"gsl_pow_2",
148
+ :func_type=>"double",
149
+ :args=>[["const double", "x"]],
150
+ :desc=>
151
+ "These functions can be used to compute small integer powers x^2,\n" +
152
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
153
+ "HAVE_INLINE is defined, so that use of these functions \n" +
154
+ "should be as efficient as explicitly writing the corresponding \n" +
155
+ "product expression::"},
156
+ {:func_name=>"gsl_pow_3",
157
+ :func_type=>"double",
158
+ :args=>[["const double", "x"]],
159
+ :desc=>
160
+ "These functions can be used to compute small integer powers x^2,\n" +
161
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
162
+ "HAVE_INLINE is defined, so that use of these functions \n" +
163
+ "should be as efficient as explicitly writing the corresponding \n" +
164
+ "product expression::"},
165
+ {:func_name=>"gsl_pow_4",
166
+ :func_type=>"double",
167
+ :args=>[["const double", "x"]],
168
+ :desc=>
169
+ "These functions can be used to compute small integer powers x^2,\n" +
170
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
171
+ "HAVE_INLINE is defined, so that use of these functions \n" +
172
+ "should be as efficient as explicitly writing the corresponding \n" +
173
+ "product expression::"},
174
+ {:func_name=>"gsl_pow_5",
175
+ :func_type=>"double",
176
+ :args=>[["const double", "x"]],
177
+ :desc=>
178
+ "These functions can be used to compute small integer powers x^2,\n" +
179
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
180
+ "HAVE_INLINE is defined, so that use of these functions \n" +
181
+ "should be as efficient as explicitly writing the corresponding \n" +
182
+ "product expression::"},
183
+ {:func_name=>"gsl_pow_6",
184
+ :func_type=>"double",
185
+ :args=>[["const double", "x"]],
186
+ :desc=>
187
+ "These functions can be used to compute small integer powers x^2,\n" +
188
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
189
+ "HAVE_INLINE is defined, so that use of these functions \n" +
190
+ "should be as efficient as explicitly writing the corresponding \n" +
191
+ "product expression::"},
192
+ {:func_name=>"gsl_pow_7",
193
+ :func_type=>"double",
194
+ :args=>[["const double", "x"]],
195
+ :desc=>
196
+ "These functions can be used to compute small integer powers x^2,\n" +
197
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
198
+ "HAVE_INLINE is defined, so that use of these functions \n" +
199
+ "should be as efficient as explicitly writing the corresponding \n" +
200
+ "product expression::"},
201
+ {:func_name=>"gsl_pow_8",
202
+ :func_type=>"double",
203
+ :args=>[["const double", "x"]],
204
+ :desc=>
205
+ "These functions can be used to compute small integer powers x^2,\n" +
206
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
207
+ "HAVE_INLINE is defined, so that use of these functions \n" +
208
+ "should be as efficient as explicitly writing the corresponding \n" +
209
+ "product expression::"},
210
+ {:func_name=>"gsl_pow_9",
211
+ :func_type=>"double",
212
+ :args=>[["const double", "x"]],
213
+ :desc=>
214
+ "These functions can be used to compute small integer powers x^2,\n" +
215
+ "x^3, etc. efficiently. The functions will be inlined when \n" +
216
+ "HAVE_INLINE is defined, so that use of these functions \n" +
217
+ "should be as efficient as explicitly writing the corresponding \n" +
218
+ "product expression::"},
219
+ {:func_name=>"gsl_pow_int",
220
+ :func_type=>"double",
221
+ :args=>[["double", "x"], ["int", "n"]],
222
+ :desc=>
223
+ "These routines computes the power x^n for integer n. The\n" +
224
+ "power is computed efficiently---for example, x^8 is computed as\n" +
225
+ "((x^2)^2)^2, requiring only 3 multiplications. A version of this\n" +
226
+ "function which also computes the numerical error in the result is\n" +
227
+ "available as gsl_sf_pow_int_e."},
228
+ {:func_name=>"gsl_pow_uint",
229
+ :func_type=>"double",
230
+ :args=>[["double", "x"], ["unsigned int", "n"]],
231
+ :desc=>
232
+ "These routines computes the power x^n for integer n. The\n" +
233
+ "power is computed efficiently---for example, x^8 is computed as\n" +
234
+ "((x^2)^2)^2, requiring only 3 multiplications. A version of this\n" +
235
+ "function which also computes the numerical error in the result is\n" +
236
+ "available as gsl_sf_pow_int_e."}]