numo-gsl 0.1.0

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 (266) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/README.md +84 -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_def.rb +419 -0
  10. data/ext/numo/gsl/const/depend +17 -0
  11. data/ext/numo/gsl/const/erbpp_const.rb +30 -0
  12. data/ext/numo/gsl/const/extconf.rb +9 -0
  13. data/ext/numo/gsl/err/depend +1 -0
  14. data/ext/numo/gsl/err/err.c +22 -0
  15. data/ext/numo/gsl/err/extconf.rb +9 -0
  16. data/ext/numo/gsl/extconf_gsl.rb +44 -0
  17. data/ext/numo/gsl/fit/depend +17 -0
  18. data/ext/numo/gsl/fit/erbpp_fit.rb +74 -0
  19. data/ext/numo/gsl/fit/extconf.rb +9 -0
  20. data/ext/numo/gsl/fit/func_def.rb +129 -0
  21. data/ext/numo/gsl/fit/tmpl/check_1d.c +9 -0
  22. data/ext/numo/gsl/fit/tmpl/fit_linear.c +53 -0
  23. data/ext/numo/gsl/fit/tmpl/fit_linear_est.c +56 -0
  24. data/ext/numo/gsl/fit/tmpl/fit_mul.c +50 -0
  25. data/ext/numo/gsl/fit/tmpl/fit_mul_est.c +47 -0
  26. data/ext/numo/gsl/fit/tmpl/fit_wlinear.c +59 -0
  27. data/ext/numo/gsl/fit/tmpl/fit_wmul.c +56 -0
  28. data/ext/numo/gsl/gen/erbpp2.rb +306 -0
  29. data/ext/numo/gsl/gen/erbpp_gsl.rb +166 -0
  30. data/ext/numo/gsl/gen/func_parser.rb +520 -0
  31. data/ext/numo/gsl/gen/tmpl/c_DFloat_f_DFloat.c +40 -0
  32. data/ext/numo/gsl/gen/tmpl/c_DFloat_f_SZ.c +41 -0
  33. data/ext/numo/gsl/gen/tmpl/c_DFloat_f_SZ_x2.c +44 -0
  34. data/ext/numo/gsl/gen/tmpl/c_DFloat_x2_f_DFloat_x2.c +45 -0
  35. data/ext/numo/gsl/gen/tmpl/c_double_f_double.c +16 -0
  36. data/ext/numo/gsl/gen/tmpl/c_double_f_sizet.c +16 -0
  37. data/ext/numo/gsl/gen/tmpl/c_double_f_sizet_x2.c +17 -0
  38. data/ext/numo/gsl/gen/tmpl/c_double_f_void.c +15 -0
  39. data/ext/numo/gsl/gen/tmpl/c_double_x2_f_void.c +17 -0
  40. data/ext/numo/gsl/gen/tmpl/c_new_DFloat.c +29 -0
  41. data/ext/numo/gsl/gen/tmpl/c_new_double.c +22 -0
  42. data/ext/numo/gsl/gen/tmpl/c_new_f_other.c +25 -0
  43. data/ext/numo/gsl/gen/tmpl/c_new_sizet.c +22 -0
  44. data/ext/numo/gsl/gen/tmpl/c_new_sizet_double.c +23 -0
  45. data/ext/numo/gsl/gen/tmpl/c_new_sizet_x2.c +23 -0
  46. data/ext/numo/gsl/gen/tmpl/c_new_void.c +21 -0
  47. data/ext/numo/gsl/gen/tmpl/c_other_f_void.c +19 -0
  48. data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat.c +46 -0
  49. data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat_x2.c +41 -0
  50. data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat_x3.c +44 -0
  51. data/ext/numo/gsl/gen/tmpl/c_self_f_DFloat_x4.c +47 -0
  52. data/ext/numo/gsl/gen/tmpl/c_self_f_SZ_x2_DFloat.c +45 -0
  53. data/ext/numo/gsl/gen/tmpl/c_self_f_double.c +17 -0
  54. data/ext/numo/gsl/gen/tmpl/c_self_f_other.c +17 -0
  55. data/ext/numo/gsl/gen/tmpl/c_self_f_sizet.c +21 -0
  56. data/ext/numo/gsl/gen/tmpl/c_self_f_void.c +14 -0
  57. data/ext/numo/gsl/gen/tmpl/c_sizet_f_void.c +15 -0
  58. data/ext/numo/gsl/gen/tmpl/c_sizet_x2_f_void.c +17 -0
  59. data/ext/numo/gsl/gen/tmpl/c_str_f_void.c +15 -0
  60. data/ext/numo/gsl/gen/tmpl/c_super_new_void.c +18 -0
  61. data/ext/numo/gsl/gen/tmpl/c_uint_f_void.c +15 -0
  62. data/ext/numo/gsl/gen/tmpl/c_ulong_f_void.c +15 -0
  63. data/ext/numo/gsl/gen/tmpl/c_void_f_double.c +17 -0
  64. data/ext/numo/gsl/gen/tmpl/c_void_f_double_x2.c +18 -0
  65. data/ext/numo/gsl/gen/tmpl/c_void_f_double_x4.c +20 -0
  66. data/ext/numo/gsl/gen/tmpl/c_void_f_ulong.c +17 -0
  67. data/ext/numo/gsl/gen/tmpl/c_void_f_void.c +14 -0
  68. data/ext/numo/gsl/gen/tmpl/cast_1d_contiguous.c +15 -0
  69. data/ext/numo/gsl/gen/tmpl/cast_2d_contiguous.c +15 -0
  70. data/ext/numo/gsl/gen/tmpl/class.c +26 -0
  71. data/ext/numo/gsl/gen/tmpl/create_new_narray.c +26 -0
  72. data/ext/numo/gsl/gen/tmpl/init_class.c +10 -0
  73. data/ext/numo/gsl/gen/tmpl/init_module.c +12 -0
  74. data/ext/numo/gsl/gen/tmpl/lib.c +41 -0
  75. data/ext/numo/gsl/gen/tmpl/m_DFloat_Int_f_DFloat.c +38 -0
  76. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat.c +35 -0
  77. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_Int.c +39 -0
  78. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_UInt.c +39 -0
  79. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_double.c +42 -0
  80. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_double_x2.c +47 -0
  81. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_int.c +42 -0
  82. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_x2.c +38 -0
  83. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_DFloat_x3.c +41 -0
  84. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_Int.c +36 -0
  85. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt.c +36 -0
  86. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32.c +36 -0
  87. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_double.c +43 -0
  88. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_double_uint.c +49 -0
  89. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_double_x2.c +48 -0
  90. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt32_uint_x3.c +51 -0
  91. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_double.c +43 -0
  92. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_double_uint.c +50 -0
  93. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_double_x2.c +48 -0
  94. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_UInt_uint_x3.c +51 -0
  95. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_int_DFloat.c +41 -0
  96. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_int_DFloat_x2.c +44 -0
  97. data/ext/numo/gsl/gen/tmpl/m_DFloat_f_int_x2_DFloat_x2.c +46 -0
  98. data/ext/numo/gsl/gen/tmpl/m_Int_f_DFloat.c +36 -0
  99. data/ext/numo/gsl/gen/tmpl/m_Int_f_DFloat_x3.c +42 -0
  100. data/ext/numo/gsl/gen/tmpl/m_Int_f_int_DFloat.c +42 -0
  101. data/ext/numo/gsl/gen/tmpl/m_Int_f_int_DFloat_x2.c +45 -0
  102. data/ext/numo/gsl/gen/tmpl/mod_func_noloop.c +54 -0
  103. data/ext/numo/gsl/gen/tmpl/mod_func_scalar.c +27 -0
  104. data/ext/numo/gsl/gen/tmpl/module.c +9 -0
  105. data/ext/numo/gsl/histogram/depend +17 -0
  106. data/ext/numo/gsl/histogram/erbpp_histogram.rb +109 -0
  107. data/ext/numo/gsl/histogram/extconf.rb +9 -0
  108. data/ext/numo/gsl/histogram/func_def.rb +763 -0
  109. data/ext/numo/gsl/histogram/tmpl/c_DFloat_f_2d_get.c +54 -0
  110. data/ext/numo/gsl/histogram/tmpl/c_DFloat_f_field.c +35 -0
  111. data/ext/numo/gsl/histogram/tmpl/c_DFloat_f_get.c +47 -0
  112. data/ext/numo/gsl/histogram/tmpl/c_DFloat_x2_f_get_range.c +56 -0
  113. data/ext/numo/gsl/histogram/tmpl/c_bool_f_other.c +19 -0
  114. data/ext/numo/gsl/histogram/tmpl/c_bool_f_pdf_init.c +24 -0
  115. data/ext/numo/gsl/histogram/tmpl/c_self_f_2d_set_ranges.c +26 -0
  116. data/ext/numo/gsl/histogram/tmpl/c_self_f_set_ranges.c +21 -0
  117. data/ext/numo/gsl/histogram/tmpl/c_sizet_f_field.c +15 -0
  118. data/ext/numo/gsl/interp/depend +17 -0
  119. data/ext/numo/gsl/interp/erbpp_interp.rb +59 -0
  120. data/ext/numo/gsl/interp/extconf.rb +9 -0
  121. data/ext/numo/gsl/interp/func_def.rb +816 -0
  122. data/ext/numo/gsl/interp/parse_interp.rb +67 -0
  123. data/ext/numo/gsl/interp/tmpl/interp2d_new.c +36 -0
  124. data/ext/numo/gsl/interp/tmpl/interp2d_type_new.c +17 -0
  125. data/ext/numo/gsl/interp/tmpl/interp_bsearch.c +57 -0
  126. data/ext/numo/gsl/interp/tmpl/interp_new.c +29 -0
  127. data/ext/numo/gsl/interp/tmpl/interp_type_new.c +16 -0
  128. data/ext/numo/gsl/interp/tmpl/spline2d_eval.c +61 -0
  129. data/ext/numo/gsl/interp/tmpl/spline_eval.c +55 -0
  130. data/ext/numo/gsl/interp/tmpl/spline_integ.c +56 -0
  131. data/ext/numo/gsl/interp/type_def.rb +9 -0
  132. data/ext/numo/gsl/multifit/depend +17 -0
  133. data/ext/numo/gsl/multifit/erbpp_multifit.rb +99 -0
  134. data/ext/numo/gsl/multifit/extconf.rb +9 -0
  135. data/ext/numo/gsl/multifit/func_2.1.rb +1035 -0
  136. data/ext/numo/gsl/multifit/func_2.2.1.rb +736 -0
  137. data/ext/numo/gsl/multifit/func_2.2.rb +736 -0
  138. data/ext/numo/gsl/multifit/func_2.3.rb +872 -0
  139. data/ext/numo/gsl/multifit/func_def.rb +1012 -0
  140. data/ext/numo/gsl/multifit/tmpl/multifit_linear.c +66 -0
  141. data/ext/numo/gsl/multifit/tmpl/multifit_linear_est.c +48 -0
  142. data/ext/numo/gsl/multifit/tmpl/multifit_linear_residuals.c +47 -0
  143. data/ext/numo/gsl/multifit/tmpl/multifit_wlinear.c +70 -0
  144. data/ext/numo/gsl/multifit/type_def.rb +1 -0
  145. data/ext/numo/gsl/numo_gsl.h +117 -0
  146. data/ext/numo/gsl/pdf/depend +17 -0
  147. data/ext/numo/gsl/pdf/erbpp_pdf.rb +26 -0
  148. data/ext/numo/gsl/pdf/extconf.rb +9 -0
  149. data/ext/numo/gsl/pdf/func_2.2.1.rb +306 -0
  150. data/ext/numo/gsl/pdf/func_2.2.rb +306 -0
  151. data/ext/numo/gsl/pdf/func_2.3.rb +306 -0
  152. data/ext/numo/gsl/pdf/func_def.rb +282 -0
  153. data/ext/numo/gsl/pdf/parse_pdf.rb +42 -0
  154. data/ext/numo/gsl/pdf/tmpl/dirichlet.c +39 -0
  155. data/ext/numo/gsl/pdf/tmpl/multinomial.c +39 -0
  156. data/ext/numo/gsl/poly/depend +17 -0
  157. data/ext/numo/gsl/poly/erbpp_poly.rb +70 -0
  158. data/ext/numo/gsl/poly/extconf.rb +9 -0
  159. data/ext/numo/gsl/poly/func_def.rb +234 -0
  160. data/ext/numo/gsl/poly/tmpl/poly_complex_solve.c +59 -0
  161. data/ext/numo/gsl/poly/tmpl/poly_eval.c +70 -0
  162. data/ext/numo/gsl/poly/tmpl/poly_eval_derivs.c +40 -0
  163. data/ext/numo/gsl/ran/depend +17 -0
  164. data/ext/numo/gsl/ran/erbpp_ran.rb +42 -0
  165. data/ext/numo/gsl/ran/extconf.rb +9 -0
  166. data/ext/numo/gsl/ran/func_2.2.1.rb +1658 -0
  167. data/ext/numo/gsl/ran/func_2.2.rb +1658 -0
  168. data/ext/numo/gsl/ran/func_2.3.rb +1658 -0
  169. data/ext/numo/gsl/ran/func_def.rb +1594 -0
  170. data/ext/numo/gsl/ran/parse_ran.rb +10 -0
  171. data/ext/numo/gsl/rng/depend +17 -0
  172. data/ext/numo/gsl/rng/erbpp_rng.rb +58 -0
  173. data/ext/numo/gsl/rng/extconf.rb +9 -0
  174. data/ext/numo/gsl/rng/func_def.rb +230 -0
  175. data/ext/numo/gsl/rng/parse_rng.rb +125 -0
  176. data/ext/numo/gsl/rng/tmpl/ran.c +40 -0
  177. data/ext/numo/gsl/rng/tmpl/ran_DFloat_f_DFloat.c +28 -0
  178. data/ext/numo/gsl/rng/tmpl/ran_DFloat_x2.c +45 -0
  179. data/ext/numo/gsl/rng/tmpl/ran_DFloat_x3.c +51 -0
  180. data/ext/numo/gsl/rng/tmpl/ran_multinomial.c +32 -0
  181. data/ext/numo/gsl/rng/tmpl/rng_DFloat.c +29 -0
  182. data/ext/numo/gsl/rng/tmpl/rng_UInt.c +44 -0
  183. data/ext/numo/gsl/rng/tmpl/rng_alloc.c +24 -0
  184. data/ext/numo/gsl/rng/tmpl/rng_type_new.c +14 -0
  185. data/ext/numo/gsl/rng/type_def.rb +63 -0
  186. data/ext/numo/gsl/rstat/depend +17 -0
  187. data/ext/numo/gsl/rstat/erbpp_rstat.rb +64 -0
  188. data/ext/numo/gsl/rstat/extconf.rb +9 -0
  189. data/ext/numo/gsl/rstat/func_2.2.1.rb +116 -0
  190. data/ext/numo/gsl/rstat/func_2.2.rb +116 -0
  191. data/ext/numo/gsl/rstat/func_2.3.rb +123 -0
  192. data/ext/numo/gsl/rstat/func_def.rb +102 -0
  193. data/ext/numo/gsl/sf/depend +17 -0
  194. data/ext/numo/gsl/sf/erbpp_sf.rb +51 -0
  195. data/ext/numo/gsl/sf/extconf.rb +9 -0
  196. data/ext/numo/gsl/sf/func_def.rb +4703 -0
  197. data/ext/numo/gsl/sf/parse_sf.rb +277 -0
  198. data/ext/numo/gsl/sf/tmpl/c_DFloat_f_int_x2_DFloat.c +50 -0
  199. data/ext/numo/gsl/sf/tmpl/c_DFloat_f_int_x2_DFloat_x2.c +52 -0
  200. data/ext/numo/gsl/sf/tmpl/c_DFloat_f_int_x3_DFloat_x2.c +55 -0
  201. data/ext/numo/gsl/sf/tmpl/m_DFloat_f_DFloat_mode.c +47 -0
  202. data/ext/numo/gsl/sf/tmpl/m_DFloat_f_lmax_array.c +41 -0
  203. data/ext/numo/gsl/sf/tmpl/m_DFloat_f_nmin_nmax_array.c +49 -0
  204. data/ext/numo/gsl/spmatrix/const_2.2.1.rb +3 -0
  205. data/ext/numo/gsl/spmatrix/const_2.2.rb +3 -0
  206. data/ext/numo/gsl/spmatrix/const_2.3.rb +3 -0
  207. data/ext/numo/gsl/spmatrix/const_def.rb +2 -0
  208. data/ext/numo/gsl/spmatrix/depend +17 -0
  209. data/ext/numo/gsl/spmatrix/erbpp_spmatrix.rb +100 -0
  210. data/ext/numo/gsl/spmatrix/extconf.rb +9 -0
  211. data/ext/numo/gsl/spmatrix/func_2.2.1.rb +297 -0
  212. data/ext/numo/gsl/spmatrix/func_2.2.rb +297 -0
  213. data/ext/numo/gsl/spmatrix/func_2.3.rb +297 -0
  214. data/ext/numo/gsl/spmatrix/func_def.rb +218 -0
  215. data/ext/numo/gsl/spmatrix/parse_spmatrix.rb +70 -0
  216. data/ext/numo/gsl/spmatrix/tmpl/itersolve_iterate.c +47 -0
  217. data/ext/numo/gsl/spmatrix/tmpl/itersolve_new.c +22 -0
  218. data/ext/numo/gsl/spmatrix/tmpl/itersolve_type_new.c +16 -0
  219. data/ext/numo/gsl/spmatrix/tmpl/spblas_dgemm.c +35 -0
  220. data/ext/numo/gsl/spmatrix/tmpl/spblas_dgemv.c +43 -0
  221. data/ext/numo/gsl/spmatrix/tmpl/spmatrix_add.c +22 -0
  222. data/ext/numo/gsl/spmatrix/tmpl/spmatrix_d2sp.c +28 -0
  223. data/ext/numo/gsl/spmatrix/tmpl/spmatrix_new.c +40 -0
  224. data/ext/numo/gsl/spmatrix/tmpl/spmatrix_sp2d.c +25 -0
  225. data/ext/numo/gsl/spmatrix/type_def.rb +1 -0
  226. data/ext/numo/gsl/stats/depend +17 -0
  227. data/ext/numo/gsl/stats/erbpp_stats.rb +29 -0
  228. data/ext/numo/gsl/stats/extconf.rb +9 -0
  229. data/ext/numo/gsl/stats/func_2.2.1.rb +608 -0
  230. data/ext/numo/gsl/stats/func_2.2.rb +608 -0
  231. data/ext/numo/gsl/stats/func_2.3.rb +608 -0
  232. data/ext/numo/gsl/stats/func_def.rb +608 -0
  233. data/ext/numo/gsl/stats/parse_stats.rb +63 -0
  234. data/ext/numo/gsl/stats/tmpl/stats_1a0p.c +37 -0
  235. data/ext/numo/gsl/stats/tmpl/stats_1a0p_index.c +60 -0
  236. data/ext/numo/gsl/stats/tmpl/stats_1a1p.c +41 -0
  237. data/ext/numo/gsl/stats/tmpl/stats_1a2p.c +42 -0
  238. data/ext/numo/gsl/stats/tmpl/stats_2a0p.c +39 -0
  239. data/ext/numo/gsl/stats/tmpl/stats_2a1p.c +43 -0
  240. data/ext/numo/gsl/stats/tmpl/stats_2a2p.c +44 -0
  241. data/ext/numo/gsl/stats/tmpl/stats_minmax.c +37 -0
  242. data/ext/numo/gsl/stats/tmpl/stats_minmax_index.c +67 -0
  243. data/ext/numo/gsl/stats/tmpl/stats_spearman.c +46 -0
  244. data/ext/numo/gsl/sys/const_def.rb +21 -0
  245. data/ext/numo/gsl/sys/depend +17 -0
  246. data/ext/numo/gsl/sys/enum_def.rb +75 -0
  247. data/ext/numo/gsl/sys/erbpp_sys.rb +60 -0
  248. data/ext/numo/gsl/sys/extconf.rb +9 -0
  249. data/ext/numo/gsl/sys/func_def.rb +249 -0
  250. data/ext/numo/gsl/version.h +1 -0
  251. data/ext/numo/gsl/wavelet/depend +17 -0
  252. data/ext/numo/gsl/wavelet/erbpp_wavelet.rb +48 -0
  253. data/ext/numo/gsl/wavelet/extconf.rb +9 -0
  254. data/ext/numo/gsl/wavelet/func_def.rb +337 -0
  255. data/ext/numo/gsl/wavelet/parse_wavelet.rb +47 -0
  256. data/ext/numo/gsl/wavelet/tmpl/wavelet2d_transform.c +56 -0
  257. data/ext/numo/gsl/wavelet/tmpl/wavelet_array_check.c +56 -0
  258. data/ext/numo/gsl/wavelet/tmpl/wavelet_macro.c +1 -0
  259. data/ext/numo/gsl/wavelet/tmpl/wavelet_new.c +20 -0
  260. data/ext/numo/gsl/wavelet/tmpl/wavelet_transform.c +55 -0
  261. data/ext/numo/gsl/wavelet/tmpl/wavelet_transform2.c +22 -0
  262. data/ext/numo/gsl/wavelet/tmpl/wavelet_type_new.c +15 -0
  263. data/ext/numo/gsl/wavelet/type_def.rb +6 -0
  264. data/lib/numo/gsl.rb +17 -0
  265. data/numo-gsl.gemspec +33 -0
  266. metadata +367 -0
@@ -0,0 +1,54 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t n, i;
5
+ char *p1, *p2, *p3;
6
+ ssize_t s1, s2, s3;
7
+ ssize_t x1, x2;
8
+ size_t y1, y2;
9
+ double y3;
10
+ <%=struct%> *w = (<%=struct%>*)(lp->opt_ptr);
11
+
12
+ INIT_COUNTER(lp, n);
13
+ INIT_PTR(lp, 0, p1, s1);
14
+ INIT_PTR(lp, 1, p2, s2);
15
+ INIT_PTR(lp, 2, p3, s3);
16
+
17
+ for (i=0; i<n; i++) {
18
+ GET_DATA_STRIDE(p1,s1,ssize_t,x1);
19
+ GET_DATA_STRIDE(p2,s2,ssize_t,x2);
20
+ if (x1 < 0) {
21
+ y1 = x1 + w->nx;
22
+ } else {
23
+ y1 = x1;
24
+ }
25
+ if (x2 < 0) {
26
+ y2 = x2 + w->ny;
27
+ } else {
28
+ y2 = x2;
29
+ }
30
+ y3 = <%=func_name%>(<%=get(:postpose) ? "y1,y2,w" : "w,y1,y2"%>);
31
+ SET_DATA_STRIDE(p3,s3,double,y3);
32
+ }
33
+ }
34
+
35
+ /*
36
+ @overload <%=name%>(<%=args[1][1]%>, <%=args[2][1]%>)
37
+ @param [Int32/64] <%=args[1][1]%>
38
+ @param [Int32/64] <%=args[2][1]%>
39
+ @return [<%=class_name%>] self
40
+
41
+ <%= description %>
42
+ */
43
+ static VALUE
44
+ <%=c_func(2)%>(VALUE self, VALUE v1, VALUE v2)
45
+ {
46
+ <%=struct%> *w;
47
+ ndfunc_arg_in_t ain[2] = {{cSSZ,0},{cSSZ,0}};
48
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
49
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 2,1, ain,aout};
50
+
51
+ TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
52
+
53
+ return na_ndloop3(&ndf, w, 2, v1, v2);
54
+ }
@@ -0,0 +1,35 @@
1
+ <% nd = (/histogram2d/ =~ struct) ? 2 : 1 %>
2
+ /*
3
+ @overload <%=name%>()
4
+ @return [DFloat] narray of <%=name%> field in <%=struct%>.
5
+
6
+ returns <%=name%> field in <%=struct%> struct.
7
+ <%= description %>
8
+ */
9
+ static VALUE
10
+ <%=c_func(0)%>(VALUE self)
11
+ {
12
+ <%=struct%> *w;
13
+ double *d;
14
+ VALUE v;
15
+ size_t n, i, shape[<%=nd%>];
16
+
17
+ TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
18
+
19
+ <%if /([xy]?)range/ =~ name %>
20
+ shape[0] = n = w->n<%=$1%>+1;
21
+ <%elsif nd==1%>
22
+ shape[0] = n = w->n;
23
+ <%else%>
24
+ n = w->nx * w->ny;
25
+ shape[0] = w->nx;
26
+ shape[1] = w->ny;
27
+ <%end%>
28
+
29
+ v = rb_narray_new(cDF, <%=nd%>, shape);
30
+ d = (double*)na_get_pointer_for_write(v);
31
+ for (i=0; i<n; i++) {
32
+ d[i] = w-><%=name%>[i];
33
+ }
34
+ return v;
35
+ }
@@ -0,0 +1,47 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t n, i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ ssize_t x1;
8
+ size_t y1;
9
+ double y2;
10
+ <%=struct%> *w = (<%=struct%>*)(lp->opt_ptr);
11
+
12
+ INIT_COUNTER(lp, n);
13
+ INIT_PTR(lp, 0, p1, s1);
14
+ INIT_PTR(lp, 1, p2, s2);
15
+
16
+ for (i=0; i<n; i++) {
17
+ GET_DATA_STRIDE(p1,s1,ssize_t,x1);
18
+ if (x1 < 0) {
19
+ y1 = x1 + w->n;
20
+ } else {
21
+ y1 = x1;
22
+ }
23
+ y2 = <%=func_name%>(<%=get(:postpose) ? "y1,w" : "w,y1"%>);
24
+ SET_DATA_STRIDE(p2,s2,double,y2);
25
+ }
26
+ }
27
+ #undef FUNC
28
+
29
+ /*
30
+ @overload <%=name%>(<%=args[1][1]%>)
31
+ @param [Int32/64] <%=args[1][1]%>
32
+ @return [<%=class_name%>] self
33
+
34
+ <%= description %>
35
+ */
36
+ static VALUE
37
+ <%=c_func(1)%>(VALUE self, VALUE v1)
38
+ {
39
+ <%=struct%> *w;
40
+ ndfunc_arg_in_t ain[1] = {{cSSZ,0}};
41
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
42
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
43
+
44
+ TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
45
+
46
+ return na_ndloop3(&ndf, w, 1, v1);
47
+ }
@@ -0,0 +1,56 @@
1
+ <%
2
+ n = case name
3
+ when /_xrange/; "nx"
4
+ when /_yrange/; "ny"
5
+ when /_range/; "n"
6
+ end
7
+ %>
8
+
9
+ static void
10
+ iter_<%=c_func%>(na_loop_t *const lp)
11
+ {
12
+ size_t n, i;
13
+ char *p1, *p2, *p3;
14
+ ssize_t s1, s2, s3;
15
+ ssize_t x1;
16
+ size_t y1;
17
+ double y2, y3;
18
+ <%=struct%> *w = (<%=struct%>*)(lp->opt_ptr);
19
+
20
+ INIT_COUNTER(lp, n);
21
+ INIT_PTR(lp, 0, p1, s1);
22
+ INIT_PTR(lp, 1, p2, s2);
23
+ INIT_PTR(lp, 2, p3, s3);
24
+
25
+ for (i=0; i<n; i++) {
26
+ GET_DATA_STRIDE(p1,s1,ssize_t,x1);
27
+ if (x1 < 0) {
28
+ y1 = x1 + w-><%=n%>;
29
+ } else {
30
+ y1 = x1;
31
+ }
32
+ <%=func_name%>(<%=get(:postpose) ? "y1,&y2,&y3,w" : "w,y1,&y2,&y3"%>);
33
+ SET_DATA_STRIDE(p2,s2,double,y2);
34
+ SET_DATA_STRIDE(p3,s3,double,y3);
35
+ }
36
+ }
37
+
38
+ /*
39
+ @overload <%=name%>(<%=args[1][1]%>)
40
+ @param [Int32/64] <%=args[1][1]%> Int32/64 NArray
41
+ @return [Array] array of [[DFloat] <%=args[2][1]%>, [DFloat] <%=args[3][1]%>]
42
+
43
+ <%= description %>
44
+ */
45
+ static VALUE
46
+ <%=c_func(1)%>(VALUE self, VALUE v1)
47
+ {
48
+ <%=struct%> *w;
49
+ ndfunc_arg_in_t ain[1] = {{cSSZ,0}};
50
+ ndfunc_arg_out_t aout[2] = {{cDF,0},{cDF,0}};
51
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,2, ain,aout};
52
+
53
+ TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
54
+
55
+ return na_ndloop3(&ndf, w, 1, v1);
56
+ }
@@ -0,0 +1,19 @@
1
+ /*
2
+ @overload <%=name%>(<%=args[1][1]%>)
3
+ @param [<%=class_name%>] <%=args[1][1]%>
4
+ @return [Bool]
5
+
6
+ <%= description %>
7
+ */
8
+ static VALUE
9
+ <%=c_func(1)%>(VALUE self, VALUE v1)
10
+ {
11
+ int stat;
12
+ <%=struct%> *w, *w1;
13
+
14
+ TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
15
+ TypedData_Get_Struct(v1, <%=struct%>, &<%=data_type_var%>, w1);
16
+
17
+ stat = <%=func_name%>(w, w1);
18
+ return (stat) ? Qtrue: Qfalse;
19
+ }
@@ -0,0 +1,24 @@
1
+ <%
2
+ h_struct = struct.sub(/_pdf/,"")
3
+ h_data_type_var = data_type_var.sub(/_pdf/,"")
4
+ %>
5
+ /*
6
+ @overload <%=name%>(<%=args[1][1]%>)
7
+ @param [<%=class_name%>] <%=args[1][1]%>
8
+ @return [Bool]
9
+
10
+ <%= description %>
11
+ */
12
+ static VALUE
13
+ <%=c_func(1)%>(VALUE self, VALUE v1)
14
+ {
15
+ int stat;
16
+ <%=struct%> *w;
17
+ <%=h_struct%> *w1;
18
+
19
+ TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
20
+ TypedData_Get_Struct(v1, <%=h_struct%>, &<%=h_data_type_var%>, w1);
21
+
22
+ stat = <%=func_name%>(w, w1);
23
+ return (stat) ? Qtrue: Qfalse;
24
+ }
@@ -0,0 +1,26 @@
1
+ /*
2
+ @overload <%=name%>(<%=args[1][1]%>,<%=args[3][1]%>)
3
+ @param [DFloat] <%=args[1][1]%>
4
+ @param [DFloat] <%=args[3][1]%>
5
+ @return [<%=class_name%>] self
6
+
7
+ <%= description %>
8
+ */
9
+ static VALUE
10
+ <%=c_func(2)%>(VALUE self, VALUE v1, VALUE v2)
11
+ {
12
+ <%=struct%> *w;
13
+ double *p1, *p2;
14
+
15
+ TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
16
+
17
+ v1 = cast_1d_contiguous(v1, cDF);
18
+ p1 = (double*)na_get_pointer_for_read(v1);
19
+ v2 = cast_1d_contiguous(v2, cDF);
20
+ p2 = (double*)na_get_pointer_for_read(v2);
21
+
22
+ <%=func_name%>(w, p1, RNARRAY_SIZE(v1), p2, RNARRAY_SIZE(v2));
23
+ RB_GC_GUARD(v1);
24
+ RB_GC_GUARD(v2);
25
+ return self;
26
+ }
@@ -0,0 +1,21 @@
1
+ /*
2
+ @overload <%=name%>(<%=args[1][1]%>)
3
+ @param [DFloat] <%=args[1][1]%>
4
+ @return [<%=class_name%>] self
5
+
6
+ <%= description %>
7
+ */
8
+ static VALUE
9
+ <%=c_func(1)%>(VALUE self, VALUE v1)
10
+ {
11
+ <%=struct%> *w;
12
+ double *p1;
13
+
14
+ TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
15
+
16
+ v1 = cast_1d_contiguous(v1, cDF);
17
+ p1 = (double*)na_get_pointer_for_read(v1);
18
+ <%=func_name%>(w, p1, RNARRAY_SIZE(v1));
19
+ RB_GC_GUARD(v1);
20
+ return self;
21
+ }
@@ -0,0 +1,15 @@
1
+ /*
2
+ @overload <%=name%>
3
+ @return [Integer]
4
+
5
+ returns <%=name%> field in <%=struct%> struct.
6
+ */
7
+ static VALUE
8
+ <%=c_func(0)%>(VALUE self)
9
+ {
10
+ <%=struct%> *w;
11
+
12
+ TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);
13
+
14
+ return SIZET2NUM(w-><%=name%>);
15
+ }
@@ -0,0 +1,17 @@
1
+ COGEN=ruby erbpp_interp.rb
2
+ GENSRC=gsl_interp.c
3
+ GENDEPS=erbpp_interp.rb ../gen/*.rb ../gen/tmpl/*.c tmpl/*.c
4
+
5
+ src : $(GENSRC)
6
+
7
+ $(GENSRC) : $(GENDEPS)
8
+ $(COGEN) > $@
9
+
10
+ doc : $(GENSRC)
11
+ yard doc $(GENSRC)
12
+
13
+ clean: cleansrc cleandoc
14
+ cleansrc:
15
+ -$(Q)$(RM) $(GENSRC)
16
+ cleandoc:
17
+ -$(Q)$(RM_RF) doc .yardoc
@@ -0,0 +1,59 @@
1
+ require_relative "parse_interp"
2
+ require "erbpp/line_number"
3
+
4
+ gsl_list = ErbppGsl.read_func_pattern(
5
+ [/^gsl_interp_accel_(\w+)$/, interp_accel_list=[]],
6
+ [/^gsl_interp2d_(\w+)$/, interp2d_list=[]],
7
+ [/^gsl_interp_(\w+)$/, interp_list=[]],
8
+ [/^gsl_spline2d_(\w+)$/, spline2d_list=[]],
9
+ [/^gsl_spline_(\w+)$/, spline_list=[]],
10
+ )
11
+
12
+ desc = {}
13
+ gsl_list.each do |h|
14
+ desc[h[:func_name]] = h[:desc]
15
+ end
16
+ gsl_list.each do |h|
17
+ if /^gsl_spline/ =~ h[:func_name] && h[:desc].empty?
18
+ h[:desc] = desc[h[:func_name].sub(/_spline/,"_interp")]
19
+ end
20
+ end
21
+
22
+ DefLib.new do
23
+ set erb_dir: %w[tmpl ../gen/tmpl]
24
+ set erb_suffix: ".c"
25
+ set ns_var: "mG"
26
+
27
+ ErbPP.new(self,"cast_1d_contiguous")
28
+ ErbPP.new(self,"cast_2d_contiguous")
29
+
30
+ name = "Interp"
31
+ set file_name: "gsl_#{name}.c"
32
+ set include_files: %w[gsl/gsl_interp.h gsl/gsl_interp2d.h
33
+ gsl/gsl_spline.h gsl/gsl_spline2d.h]
34
+ set lib_name: name.downcase
35
+
36
+ [
37
+ #["Interp", "interp", interp_list],
38
+ ["InterpAccel", "interp_accel", interp_accel_list],
39
+ #["Interp2D", "interp2d", interp2d_list],
40
+ ["Spline", "spline", spline_list],
41
+ ["Spline2D", "spline2d", spline2d_list],
42
+ ].each do |name,base,list|
43
+
44
+ DefInterp.new(self) do
45
+ set name: base
46
+ set class_name: name
47
+ set class_var: "c"+name
48
+ set full_class_name: "Numo::GSL::"+name
49
+ set struct: "gsl_"+base
50
+
51
+ undef_alloc_func
52
+ init = nil
53
+ list.each do |h|
54
+ check_func(h)
55
+ end
56
+ end
57
+
58
+ end
59
+ end.run
@@ -0,0 +1,9 @@
1
+ require_relative '../extconf_gsl.rb'
2
+
3
+ # source file to compile
4
+ srcs = %w(
5
+ gsl_interp
6
+ )
7
+ $objs = srcs.collect{|i| i+".o"}
8
+
9
+ create_makefile('numo/gsl/interp')
@@ -0,0 +1,816 @@
1
+ [{:func_name=>"gsl_interp_alloc",
2
+ :func_type=>"gsl_interp *",
3
+ :args=>[["const gsl_interp_type *", "T"], ["size_t", "size"]],
4
+ :desc=>
5
+ "This function returns a pointer to a newly allocated interpolation\n" +
6
+ "object of type T for size data-points."},
7
+ {:func_name=>"gsl_interp_init",
8
+ :func_type=>"int",
9
+ :args=>
10
+ [["gsl_interp *", "interp"],
11
+ ["const double", "xa[]"],
12
+ ["const double", "ya[]"],
13
+ ["size_t", "size"]],
14
+ :desc=>
15
+ "This function initializes the interpolation object interp for the\n" +
16
+ "data (xa,ya) where xa and ya are arrays of size\n" +
17
+ "size. The interpolation object (gsl_interp) does not save\n" +
18
+ "the data arrays xa and ya and only stores the static state\n" +
19
+ "computed from the data. The xa data array is always assumed to be\n" +
20
+ "strictly ordered, with increasing x values; \n" +
21
+ "the behavior for other arrangements is not defined."},
22
+ {:func_name=>"gsl_interp_free",
23
+ :func_type=>"void",
24
+ :args=>[["gsl_interp *", "interp"]],
25
+ :desc=>"This function frees the interpolation object interp."},
26
+ {:func_name=>"gsl_interp_name",
27
+ :func_type=>"const char *",
28
+ :args=>[["const gsl_interp *", "interp"]],
29
+ :desc=>
30
+ "This function returns the name of the interpolation type used by interp.\n" +
31
+ "For example,\n" +
32
+ "\n" +
33
+ "printf (\"interp uses '%s' interpolation.\\n\", \n" +
34
+ " gsl_interp_name (interp));\n" +
35
+ "\n" +
36
+ "would print something like,\n" +
37
+ "\n" +
38
+ "interp uses 'cspline' interpolation."},
39
+ {:func_name=>"gsl_interp_min_size",
40
+ :func_type=>"unsigned int",
41
+ :args=>[["const gsl_interp *", "interp"]],
42
+ :desc=>
43
+ "These functions return the minimum number of points required by the\n" +
44
+ "interpolation object interp or interpolation type T. For\n" +
45
+ "example, Akima spline interpolation requires a minimum of 5 points."},
46
+ {:func_name=>"gsl_interp_type_min_size",
47
+ :func_type=>"unsigned int",
48
+ :args=>[["const gsl_interp_type *", "T"]],
49
+ :desc=>
50
+ "These functions return the minimum number of points required by the\n" +
51
+ "interpolation object interp or interpolation type T. For\n" +
52
+ "example, Akima spline interpolation requires a minimum of 5 points."},
53
+ {:func_name=>"gsl_interp_bsearch",
54
+ :func_type=>"size_t",
55
+ :args=>
56
+ [["const double", "x_array[]"],
57
+ ["double", "x"],
58
+ ["size_t", "index_lo"],
59
+ ["size_t", "index_hi"]],
60
+ :desc=>
61
+ "This function returns the index i of the array x_array such\n" +
62
+ "that x_array[i] <= x < x_array[i+1]. The index is searched for\n" +
63
+ "in the range [index_lo,index_hi]. "},
64
+ {:func_name=>"gsl_interp_accel_alloc",
65
+ :func_type=>"gsl_interp_accel *",
66
+ :args=>[["", "void"]],
67
+ :desc=>
68
+ "This function returns a pointer to an accelerator object, which is a\n" +
69
+ "kind of iterator for interpolation lookups. It tracks the state of\n" +
70
+ "lookups, thus allowing for application of various acceleration\n" +
71
+ "strategies."},
72
+ {:func_name=>"gsl_interp_accel_find",
73
+ :func_type=>"size_t",
74
+ :args=>
75
+ [["gsl_interp_accel *", "a"],
76
+ ["const double", "x_array[]"],
77
+ ["size_t", "size"],
78
+ ["double", "x"]],
79
+ :desc=>
80
+ "This function performs a lookup action on the data array x_array\n" +
81
+ "of size size, using the given accelerator a. This is how\n" +
82
+ "lookups are performed during evaluation of an interpolation. The\n" +
83
+ "function returns an index i such that x_array[i] <= x <\n" +
84
+ "x_array[i+1]. "},
85
+ {:func_name=>"gsl_interp_accel_reset",
86
+ :func_type=>"int",
87
+ :args=>[["gsl_interp_accel *", "acc"]],
88
+ :desc=>
89
+ "This function reinitializes the accelerator object acc. It\n" +
90
+ "should be used when the cached information is no longer\n" +
91
+ "applicable---for example, when switching to a new dataset."},
92
+ {:func_name=>"gsl_interp_accel_free",
93
+ :func_type=>"void",
94
+ :args=>[["gsl_interp_accel*", "acc"]],
95
+ :desc=>"This function frees the accelerator object acc."},
96
+ {:func_name=>"gsl_interp_eval",
97
+ :func_type=>"double",
98
+ :args=>
99
+ [["const gsl_interp *", "interp"],
100
+ ["const double", "xa[]"],
101
+ ["const double", "ya[]"],
102
+ ["double", "x"],
103
+ ["gsl_interp_accel *", "acc"]],
104
+ :desc=>
105
+ "These functions return the interpolated value of y for a given\n" +
106
+ "point x, using the interpolation object interp, data\n" +
107
+ "arrays xa and ya and the accelerator acc. When\n" +
108
+ "x is outside the range of xa, the error code\n" +
109
+ "GSL_EDOM is returned with a value of GSL_NAN for\n" +
110
+ "y."},
111
+ {:func_name=>"gsl_interp_eval_e",
112
+ :func_type=>"int",
113
+ :args=>
114
+ [["const gsl_interp *", "interp"],
115
+ ["const double", "xa[]"],
116
+ ["const double", "ya[]"],
117
+ ["double", "x"],
118
+ ["gsl_interp_accel *", "acc"],
119
+ ["double *", "y"]],
120
+ :desc=>
121
+ "These functions return the interpolated value of y for a given\n" +
122
+ "point x, using the interpolation object interp, data\n" +
123
+ "arrays xa and ya and the accelerator acc. When\n" +
124
+ "x is outside the range of xa, the error code\n" +
125
+ "GSL_EDOM is returned with a value of GSL_NAN for\n" +
126
+ "y."},
127
+ {:func_name=>"gsl_interp_eval_deriv",
128
+ :func_type=>"double",
129
+ :args=>
130
+ [["const gsl_interp *", "interp"],
131
+ ["const double", "xa[]"],
132
+ ["const double", "ya[]"],
133
+ ["double", "x"],
134
+ ["gsl_interp_accel *", "acc"]],
135
+ :desc=>
136
+ "These functions return the derivative d of an interpolated\n" +
137
+ "function for a given point x, using the interpolation object\n" +
138
+ "interp, data arrays xa and ya and the accelerator\n" +
139
+ "acc. "},
140
+ {:func_name=>"gsl_interp_eval_deriv_e",
141
+ :func_type=>"int",
142
+ :args=>
143
+ [["const gsl_interp *", "interp"],
144
+ ["const double", "xa[]"],
145
+ ["const double", "ya[]"],
146
+ ["double", "x"],
147
+ ["gsl_interp_accel *", "acc"],
148
+ ["double *", "d"]],
149
+ :desc=>
150
+ "These functions return the derivative d of an interpolated\n" +
151
+ "function for a given point x, using the interpolation object\n" +
152
+ "interp, data arrays xa and ya and the accelerator\n" +
153
+ "acc. "},
154
+ {:func_name=>"gsl_interp_eval_deriv2",
155
+ :func_type=>"double",
156
+ :args=>
157
+ [["const gsl_interp *", "interp"],
158
+ ["const double", "xa[]"],
159
+ ["const double", "ya[]"],
160
+ ["double", "x"],
161
+ ["gsl_interp_accel *", "acc"]],
162
+ :desc=>
163
+ "These functions return the second derivative d2 of an interpolated\n" +
164
+ "function for a given point x, using the interpolation object\n" +
165
+ "interp, data arrays xa and ya and the accelerator\n" +
166
+ "acc. "},
167
+ {:func_name=>"gsl_interp_eval_deriv2_e",
168
+ :func_type=>"int",
169
+ :args=>
170
+ [["const gsl_interp *", "interp"],
171
+ ["const double", "xa[]"],
172
+ ["const double", "ya[]"],
173
+ ["double", "x"],
174
+ ["gsl_interp_accel *", "acc"],
175
+ ["double *", "d2"]],
176
+ :desc=>
177
+ "These functions return the second derivative d2 of an interpolated\n" +
178
+ "function for a given point x, using the interpolation object\n" +
179
+ "interp, data arrays xa and ya and the accelerator\n" +
180
+ "acc. "},
181
+ {:func_name=>"gsl_interp_eval_integ",
182
+ :func_type=>"double",
183
+ :args=>
184
+ [["const gsl_interp *", "interp"],
185
+ ["const double", "xa[]"],
186
+ ["const double", "ya[]"],
187
+ ["double", "a"],
188
+ ["double", "b"],
189
+ ["gsl_interp_accel *", "acc"]],
190
+ :desc=>
191
+ "These functions return the numerical integral result of an\n" +
192
+ "interpolated function over the range [a, b], using the\n" +
193
+ "interpolation object interp, data arrays xa and ya and\n" +
194
+ "the accelerator acc."},
195
+ {:func_name=>"gsl_interp_eval_integ_e",
196
+ :func_type=>"int",
197
+ :args=>
198
+ [["const gsl_interp *", "interp"],
199
+ ["const double", "xa[]"],
200
+ ["const double", "ya[]"],
201
+ ["double", "a"],
202
+ ["double", "b"],
203
+ ["gsl_interp_accel *", "acc"],
204
+ ["double *", "result"]],
205
+ :desc=>
206
+ "These functions return the numerical integral result of an\n" +
207
+ "interpolated function over the range [a, b], using the\n" +
208
+ "interpolation object interp, data arrays xa and ya and\n" +
209
+ "the accelerator acc."},
210
+ {:func_name=>"gsl_spline_alloc",
211
+ :func_type=>"gsl_spline *",
212
+ :args=>[["const gsl_interp_type *", "T"], ["size_t", "size"]],
213
+ :desc=>""},
214
+ {:func_name=>"gsl_spline_init",
215
+ :func_type=>"int",
216
+ :args=>
217
+ [["gsl_spline *", "spline"],
218
+ ["const double", "xa[]"],
219
+ ["const double", "ya[]"],
220
+ ["size_t", "size"]],
221
+ :desc=>""},
222
+ {:func_name=>"gsl_spline_free",
223
+ :func_type=>"void",
224
+ :args=>[["gsl_spline *", "spline"]],
225
+ :desc=>""},
226
+ {:func_name=>"gsl_spline_name",
227
+ :func_type=>"const char *",
228
+ :args=>[["const gsl_spline *", "spline"]],
229
+ :desc=>""},
230
+ {:func_name=>"gsl_spline_min_size",
231
+ :func_type=>"unsigned int",
232
+ :args=>[["const gsl_spline *", "spline"]],
233
+ :desc=>""},
234
+ {:func_name=>"gsl_spline_eval",
235
+ :func_type=>"double",
236
+ :args=>
237
+ [["const gsl_spline *", "spline"],
238
+ ["double", "x"],
239
+ ["gsl_interp_accel *", "acc"]],
240
+ :desc=>""},
241
+ {:func_name=>"gsl_spline_eval_e",
242
+ :func_type=>"int",
243
+ :args=>
244
+ [["const gsl_spline *", "spline"],
245
+ ["double", "x"],
246
+ ["gsl_interp_accel *", "acc"],
247
+ ["double *", "y"]],
248
+ :desc=>""},
249
+ {:func_name=>"gsl_spline_eval_deriv",
250
+ :func_type=>"double",
251
+ :args=>
252
+ [["const gsl_spline *", "spline"],
253
+ ["double", "x"],
254
+ ["gsl_interp_accel *", "acc"]],
255
+ :desc=>""},
256
+ {:func_name=>"gsl_spline_eval_deriv_e",
257
+ :func_type=>"int",
258
+ :args=>
259
+ [["const gsl_spline *", "spline"],
260
+ ["double", "x"],
261
+ ["gsl_interp_accel *", "acc"],
262
+ ["double *", "d"]],
263
+ :desc=>""},
264
+ {:func_name=>"gsl_spline_eval_deriv2",
265
+ :func_type=>"double",
266
+ :args=>
267
+ [["const gsl_spline *", "spline"],
268
+ ["double", "x"],
269
+ ["gsl_interp_accel *", "acc"]],
270
+ :desc=>""},
271
+ {:func_name=>"gsl_spline_eval_deriv2_e",
272
+ :func_type=>"int",
273
+ :args=>
274
+ [["const gsl_spline *", "spline"],
275
+ ["double", "x"],
276
+ ["gsl_interp_accel *", "acc"],
277
+ ["double *", "d2"]],
278
+ :desc=>""},
279
+ {:func_name=>"gsl_spline_eval_integ",
280
+ :func_type=>"double",
281
+ :args=>
282
+ [["const gsl_spline *", "spline"],
283
+ ["double", "a"],
284
+ ["double", "b"],
285
+ ["gsl_interp_accel *", "acc"]],
286
+ :desc=>""},
287
+ {:func_name=>"gsl_spline_eval_integ_e",
288
+ :func_type=>"int",
289
+ :args=>
290
+ [["const gsl_spline *", "spline"],
291
+ ["double", "a"],
292
+ ["double", "b"],
293
+ ["gsl_interp_accel *", "acc"],
294
+ ["double *", "result"]],
295
+ :desc=>""},
296
+ {:func_name=>"gsl_interp2d_alloc",
297
+ :func_type=>"gsl_interp2d *",
298
+ :args=>
299
+ [["const gsl_interp2d_type *", "T"],
300
+ ["const size_t", "xsize"],
301
+ ["const size_t", "ysize"]],
302
+ :desc=>
303
+ "This function returns a pointer to a newly allocated interpolation\n" +
304
+ "object of type T for xsize grid points in the x\n" +
305
+ "direction and ysize grid points in the y direction."},
306
+ {:func_name=>"gsl_interp2d_init",
307
+ :func_type=>"int",
308
+ :args=>
309
+ [["gsl_interp2d *", "interp"],
310
+ ["const double", "xa[]"],
311
+ ["const double", "ya[]"],
312
+ ["const double", "za[]"],
313
+ ["const size_t", "xsize"],
314
+ ["const size_t", "ysize"]],
315
+ :desc=>
316
+ "This function initializes the interpolation object interp for the\n" +
317
+ "data (xa,ya,za) where xa and ya are arrays of\n" +
318
+ "the x and y grid points of size xsize and ysize\n" +
319
+ "respectively, and za is an array of function values of size\n" +
320
+ "xsize*ysize. The interpolation object (gsl_interp2d) does\n" +
321
+ "not save the data arrays xa, ya, and za and only stores the\n" +
322
+ "static state computed from the data. The xa and ya data arrays\n" +
323
+ "are always assumed to be strictly ordered, with increasing x,y values; \n" +
324
+ "the behavior for other arrangements is not defined."},
325
+ {:func_name=>"gsl_interp2d_free",
326
+ :func_type=>"void",
327
+ :args=>[["gsl_interp2d *", "interp"]],
328
+ :desc=>"This function frees the interpolation object interp."},
329
+ {:func_name=>"gsl_interp2d_set",
330
+ :func_type=>"int",
331
+ :args=>
332
+ [["const gsl_interp2d *", "interp"],
333
+ ["double", "za[]"],
334
+ ["const size_t", "i"],
335
+ ["const size_t", "j"],
336
+ ["const double", "z"]],
337
+ :desc=>
338
+ "This function sets the value z_{ij} for grid point\n" +
339
+ "(i,j) of the array za to z."},
340
+ {:func_name=>"gsl_interp2d_get",
341
+ :func_type=>"double",
342
+ :args=>
343
+ [["const gsl_interp2d *", "interp"],
344
+ ["const double", "za[]"],
345
+ ["const size_t", "i"],
346
+ ["const size_t", "j"]],
347
+ :desc=>
348
+ "This function returns the value z_{ij} for grid point\n" +
349
+ "(i,j) stored in the array za."},
350
+ {:func_name=>"gsl_interp2d_idx",
351
+ :func_type=>"size_t",
352
+ :args=>
353
+ [["const gsl_interp2d *", "interp"],
354
+ ["const size_t", "i"],
355
+ ["const size_t", "j"]],
356
+ :desc=>
357
+ "This function returns the index corresponding to the grid point\n" +
358
+ "(i,j). The index is given by j*xsize + i."},
359
+ {:func_name=>"gsl_interp2d_name",
360
+ :func_type=>"const char *",
361
+ :args=>[["const gsl_interp2d *", "interp"]],
362
+ :desc=>
363
+ "This function returns the name of the interpolation type used by interp.\n" +
364
+ "For example,\n" +
365
+ "\n" +
366
+ "printf (\"interp uses '%s' interpolation.\\n\", \n" +
367
+ " gsl_interp2d_name (interp));\n" +
368
+ "\n" +
369
+ "would print something like,\n" +
370
+ "\n" +
371
+ "interp uses 'bilinear' interpolation."},
372
+ {:func_name=>"gsl_interp2d_min_size",
373
+ :func_type=>"unsigned int",
374
+ :args=>[["const gsl_interp2d *", "interp"]],
375
+ :desc=>
376
+ "These functions return the minimum number of points required by the\n" +
377
+ "interpolation object interp or interpolation type T. For\n" +
378
+ "example, bicubic interpolation requires a minimum of 4 points."},
379
+ {:func_name=>"gsl_interp2d_type_min_size",
380
+ :func_type=>"unsigned int",
381
+ :args=>[["const gsl_interp2d_type *", "T"]],
382
+ :desc=>
383
+ "These functions return the minimum number of points required by the\n" +
384
+ "interpolation object interp or interpolation type T. For\n" +
385
+ "example, bicubic interpolation requires a minimum of 4 points."},
386
+ {:func_name=>"gsl_interp2d_eval",
387
+ :func_type=>"double",
388
+ :args=>
389
+ [["const gsl_interp2d *", "interp"],
390
+ ["const double", "xa[]"],
391
+ ["const double", "ya[]"],
392
+ ["const double", "za[]"],
393
+ ["const double", "x"],
394
+ ["const double", "y"],
395
+ ["gsl_interp_accel *", "xacc"],
396
+ ["gsl_interp_accel *", "yacc"]],
397
+ :desc=>
398
+ "These functions return the interpolated value of z for a given\n" +
399
+ "point (x,y), using the interpolation object interp, data\n" +
400
+ "arrays xa, ya, and za and the accelerators xacc\n" +
401
+ "and yacc. When x is outside the range of xa or y\n" +
402
+ "is outside the range of ya, the error code\n" +
403
+ "GSL_EDOM is returned."},
404
+ {:func_name=>"gsl_interp2d_eval_e",
405
+ :func_type=>"int",
406
+ :args=>
407
+ [["const gsl_interp2d *", "interp"],
408
+ ["const double", "xa[]"],
409
+ ["const double", "ya[]"],
410
+ ["const double", "za[]"],
411
+ ["const double", "x"],
412
+ ["const double", "y"],
413
+ ["gsl_interp_accel *", "xacc"],
414
+ ["gsl_interp_accel *", "yacc"],
415
+ ["double *", "z"]],
416
+ :desc=>
417
+ "These functions return the interpolated value of z for a given\n" +
418
+ "point (x,y), using the interpolation object interp, data\n" +
419
+ "arrays xa, ya, and za and the accelerators xacc\n" +
420
+ "and yacc. When x is outside the range of xa or y\n" +
421
+ "is outside the range of ya, the error code\n" +
422
+ "GSL_EDOM is returned."},
423
+ {:func_name=>"gsl_interp2d_eval_extrap",
424
+ :func_type=>"double",
425
+ :args=>
426
+ [["const gsl_interp2d *", "interp"],
427
+ ["const double", "xa[]"],
428
+ ["const double", "ya[]"],
429
+ ["const double", "za[]"],
430
+ ["const double", "x"],
431
+ ["const double", "y"],
432
+ ["gsl_interp_accel *", "xacc"],
433
+ ["gsl_interp_accel *", "yacc"]],
434
+ :desc=>
435
+ "These functions return the interpolated value of z for a given\n" +
436
+ "point (x,y), using the interpolation object interp, data\n" +
437
+ "arrays xa, ya, and za and the accelerators xacc\n" +
438
+ "and yacc. The functions perform no bounds checking, so\n" +
439
+ "when x is outside the range of xa or y\n" +
440
+ "is outside the range of ya, extrapolation is performed."},
441
+ {:func_name=>"gsl_interp2d_eval_extrap_e",
442
+ :func_type=>"int",
443
+ :args=>
444
+ [["const gsl_interp2d *", "interp"],
445
+ ["const double", "xa[]"],
446
+ ["const double", "ya[]"],
447
+ ["const double", "za[]"],
448
+ ["const double", "x"],
449
+ ["const double", "y"],
450
+ ["gsl_interp_accel *", "xacc"],
451
+ ["gsl_interp_accel *", "yacc"],
452
+ ["double *", "z"]],
453
+ :desc=>
454
+ "These functions return the interpolated value of z for a given\n" +
455
+ "point (x,y), using the interpolation object interp, data\n" +
456
+ "arrays xa, ya, and za and the accelerators xacc\n" +
457
+ "and yacc. The functions perform no bounds checking, so\n" +
458
+ "when x is outside the range of xa or y\n" +
459
+ "is outside the range of ya, extrapolation is performed."},
460
+ {:func_name=>"gsl_interp2d_eval_deriv_x",
461
+ :func_type=>"double",
462
+ :args=>
463
+ [["const gsl_interp2d *", "interp"],
464
+ ["const double", "xa[]"],
465
+ ["const double", "ya[]"],
466
+ ["const double", "za[]"],
467
+ ["const double", "x"],
468
+ ["const double", "y"],
469
+ ["gsl_interp_accel *", "xacc"],
470
+ ["gsl_interp_accel *", "yacc"]],
471
+ :desc=>
472
+ "These functions return the interpolated value d\n" +
473
+ "= \\partial z / \\partial x for a given point (x,y),\n" +
474
+ "using the interpolation object interp, data\n" +
475
+ "arrays xa, ya, and za and the accelerators xacc\n" +
476
+ "and yacc. When x is outside the range of xa or y\n" +
477
+ "is outside the range of ya, the error code\n" +
478
+ "GSL_EDOM is returned."},
479
+ {:func_name=>"gsl_interp2d_eval_deriv_x_e",
480
+ :func_type=>"int",
481
+ :args=>
482
+ [["const gsl_interp2d *", "interp"],
483
+ ["const double", "xa[]"],
484
+ ["const double", "ya[]"],
485
+ ["const double", "za[]"],
486
+ ["const double", "x"],
487
+ ["const double", "y"],
488
+ ["gsl_interp_accel *", "xacc"],
489
+ ["gsl_interp_accel *", "yacc"],
490
+ ["double *", "d"]],
491
+ :desc=>
492
+ "These functions return the interpolated value d\n" +
493
+ "= \\partial z / \\partial x for a given point (x,y),\n" +
494
+ "using the interpolation object interp, data\n" +
495
+ "arrays xa, ya, and za and the accelerators xacc\n" +
496
+ "and yacc. When x is outside the range of xa or y\n" +
497
+ "is outside the range of ya, the error code\n" +
498
+ "GSL_EDOM is returned."},
499
+ {:func_name=>"gsl_interp2d_eval_deriv_y",
500
+ :func_type=>"double",
501
+ :args=>
502
+ [["const gsl_interp2d *", "interp"],
503
+ ["const double", "xa[]"],
504
+ ["const double", "ya[]"],
505
+ ["const double", "za[]"],
506
+ ["const double", "x"],
507
+ ["const double", "y"],
508
+ ["gsl_interp_accel *", "xacc"],
509
+ ["gsl_interp_accel *", "yacc"]],
510
+ :desc=>
511
+ "These functions return the interpolated value d\n" +
512
+ "= \\partial z / \\partial y for a given point (x,y),\n" +
513
+ "using the interpolation object interp, data\n" +
514
+ "arrays xa, ya, and za and the accelerators xacc\n" +
515
+ "and yacc. When x is outside the range of xa or y\n" +
516
+ "is outside the range of ya, the error code\n" +
517
+ "GSL_EDOM is returned."},
518
+ {:func_name=>"gsl_interp2d_eval_deriv_y_e",
519
+ :func_type=>"int",
520
+ :args=>
521
+ [["const gsl_interp2d *", "interp"],
522
+ ["const double", "xa[]"],
523
+ ["const double", "ya[]"],
524
+ ["const double", "za[]"],
525
+ ["const double", "x"],
526
+ ["const double", "y"],
527
+ ["gsl_interp_accel *", "xacc"],
528
+ ["gsl_interp_accel *", "yacc"],
529
+ ["double *", "d"]],
530
+ :desc=>
531
+ "These functions return the interpolated value d\n" +
532
+ "= \\partial z / \\partial y for a given point (x,y),\n" +
533
+ "using the interpolation object interp, data\n" +
534
+ "arrays xa, ya, and za and the accelerators xacc\n" +
535
+ "and yacc. When x is outside the range of xa or y\n" +
536
+ "is outside the range of ya, the error code\n" +
537
+ "GSL_EDOM is returned."},
538
+ {:func_name=>"gsl_interp2d_eval_deriv_xx",
539
+ :func_type=>"double",
540
+ :args=>
541
+ [["const gsl_interp2d *", "interp"],
542
+ ["const double", "xa[]"],
543
+ ["const double", "ya[]"],
544
+ ["const double", "za[]"],
545
+ ["const double", "x"],
546
+ ["const double", "y"],
547
+ ["gsl_interp_accel *", "xacc"],
548
+ ["gsl_interp_accel *", "yacc"]],
549
+ :desc=>
550
+ "These functions return the interpolated value d\n" +
551
+ "= \\partial^2 z / \\partial x^2 for a given point (x,y),\n" +
552
+ "using the interpolation object interp, data\n" +
553
+ "arrays xa, ya, and za and the accelerators xacc\n" +
554
+ "and yacc. When x is outside the range of xa or y\n" +
555
+ "is outside the range of ya, the error code\n" +
556
+ "GSL_EDOM is returned."},
557
+ {:func_name=>"gsl_interp2d_eval_deriv_xx_e",
558
+ :func_type=>"int",
559
+ :args=>
560
+ [["const gsl_interp2d *", "interp"],
561
+ ["const double", "xa[]"],
562
+ ["const double", "ya[]"],
563
+ ["const double", "za[]"],
564
+ ["const double", "x"],
565
+ ["const double", "y"],
566
+ ["gsl_interp_accel *", "xacc"],
567
+ ["gsl_interp_accel *", "yacc"],
568
+ ["double *", "d"]],
569
+ :desc=>
570
+ "These functions return the interpolated value d\n" +
571
+ "= \\partial^2 z / \\partial x^2 for a given point (x,y),\n" +
572
+ "using the interpolation object interp, data\n" +
573
+ "arrays xa, ya, and za and the accelerators xacc\n" +
574
+ "and yacc. When x is outside the range of xa or y\n" +
575
+ "is outside the range of ya, the error code\n" +
576
+ "GSL_EDOM is returned."},
577
+ {:func_name=>"gsl_interp2d_eval_deriv_yy",
578
+ :func_type=>"double",
579
+ :args=>
580
+ [["const gsl_interp2d *", "interp"],
581
+ ["const double", "xa[]"],
582
+ ["const double", "ya[]"],
583
+ ["const double", "za[]"],
584
+ ["const double", "x"],
585
+ ["const double", "y"],
586
+ ["gsl_interp_accel *", "xacc"],
587
+ ["gsl_interp_accel *", "yacc"]],
588
+ :desc=>
589
+ "These functions return the interpolated value d\n" +
590
+ "= \\partial^2 z / \\partial y^2 for a given point (x,y),\n" +
591
+ "using the interpolation object interp, data\n" +
592
+ "arrays xa, ya, and za and the accelerators xacc\n" +
593
+ "and yacc. When x is outside the range of xa or y\n" +
594
+ "is outside the range of ya, the error code\n" +
595
+ "GSL_EDOM is returned."},
596
+ {:func_name=>"gsl_interp2d_eval_deriv_yy_e",
597
+ :func_type=>"int",
598
+ :args=>
599
+ [["const gsl_interp2d *", "interp"],
600
+ ["const double", "xa[]"],
601
+ ["const double", "ya[]"],
602
+ ["const double", "za[]"],
603
+ ["const double", "x"],
604
+ ["const double", "y"],
605
+ ["gsl_interp_accel *", "xacc"],
606
+ ["gsl_interp_accel *", "yacc"],
607
+ ["double *", "d"]],
608
+ :desc=>
609
+ "These functions return the interpolated value d\n" +
610
+ "= \\partial^2 z / \\partial y^2 for a given point (x,y),\n" +
611
+ "using the interpolation object interp, data\n" +
612
+ "arrays xa, ya, and za and the accelerators xacc\n" +
613
+ "and yacc. When x is outside the range of xa or y\n" +
614
+ "is outside the range of ya, the error code\n" +
615
+ "GSL_EDOM is returned."},
616
+ {:func_name=>"gsl_interp2d_eval_deriv_xy",
617
+ :func_type=>"double",
618
+ :args=>
619
+ [["const gsl_interp2d *", "interp"],
620
+ ["const double", "xa[]"],
621
+ ["const double", "ya[]"],
622
+ ["const double", "za[]"],
623
+ ["const double", "x"],
624
+ ["const double", "y"],
625
+ ["gsl_interp_accel *", "xacc"],
626
+ ["gsl_interp_accel *", "yacc"]],
627
+ :desc=>
628
+ "These functions return the interpolated value d\n" +
629
+ "= \\partial^2 z / \\partial x \\partial y for a given point (x,y),\n" +
630
+ "using the interpolation object interp, data\n" +
631
+ "arrays xa, ya, and za and the accelerators xacc\n" +
632
+ "and yacc. When x is outside the range of xa or y\n" +
633
+ "is outside the range of ya, the error code\n" +
634
+ "GSL_EDOM is returned."},
635
+ {:func_name=>"gsl_interp2d_eval_deriv_xy_e",
636
+ :func_type=>"int",
637
+ :args=>
638
+ [["const gsl_interp2d *", "interp"],
639
+ ["const double", "xa[]"],
640
+ ["const double", "ya[]"],
641
+ ["const double", "za[]"],
642
+ ["const double", "x"],
643
+ ["const double", "y"],
644
+ ["gsl_interp_accel *", "xacc"],
645
+ ["gsl_interp_accel *", "yacc"],
646
+ ["double *", "d"]],
647
+ :desc=>
648
+ "These functions return the interpolated value d\n" +
649
+ "= \\partial^2 z / \\partial x \\partial y for a given point (x,y),\n" +
650
+ "using the interpolation object interp, data\n" +
651
+ "arrays xa, ya, and za and the accelerators xacc\n" +
652
+ "and yacc. When x is outside the range of xa or y\n" +
653
+ "is outside the range of ya, the error code\n" +
654
+ "GSL_EDOM is returned."},
655
+ {:func_name=>"gsl_spline2d_alloc",
656
+ :func_type=>"gsl_spline2d *",
657
+ :args=>
658
+ [["const gsl_interp2d_type *", "T"],
659
+ ["size_t", "xsize"],
660
+ ["size_t", "ysize"]],
661
+ :desc=>""},
662
+ {:func_name=>"gsl_spline2d_init",
663
+ :func_type=>"int",
664
+ :args=>
665
+ [["gsl_spline2d *", "spline"],
666
+ ["const double", "xa[]"],
667
+ ["const double", "ya[]"],
668
+ ["const double", "za[]"],
669
+ ["size_t", "xsize"],
670
+ ["size_t", "ysize"]],
671
+ :desc=>""},
672
+ {:func_name=>"gsl_spline2d_free",
673
+ :func_type=>"void",
674
+ :args=>[["gsl_spline2d *", "spline"]],
675
+ :desc=>""},
676
+ {:func_name=>"gsl_spline2d_name",
677
+ :func_type=>"const char *",
678
+ :args=>[["const gsl_spline2d *", "spline"]],
679
+ :desc=>""},
680
+ {:func_name=>"gsl_spline2d_min_size",
681
+ :func_type=>"unsigned int",
682
+ :args=>[["const gsl_spline2d *", "spline"]],
683
+ :desc=>""},
684
+ {:func_name=>"gsl_spline2d_eval",
685
+ :func_type=>"double",
686
+ :args=>
687
+ [["const gsl_spline2d *", "spline"],
688
+ ["const double", "x"],
689
+ ["const double", "y"],
690
+ ["gsl_interp_accel *", "xacc"],
691
+ ["gsl_interp_accel *", "yacc"]],
692
+ :desc=>""},
693
+ {:func_name=>"gsl_spline2d_eval_e",
694
+ :func_type=>"int",
695
+ :args=>
696
+ [["const gsl_spline2d *", "spline"],
697
+ ["const double", "x"],
698
+ ["const double", "y"],
699
+ ["gsl_interp_accel *", "xacc"],
700
+ ["gsl_interp_accel *", "yacc"],
701
+ ["double *", "z"]],
702
+ :desc=>""},
703
+ {:func_name=>"gsl_spline2d_eval_deriv_x",
704
+ :func_type=>"double",
705
+ :args=>
706
+ [["const gsl_spline2d *", "spline"],
707
+ ["const double", "x"],
708
+ ["const double", "y"],
709
+ ["gsl_interp_accel *", "xacc"],
710
+ ["gsl_interp_accel *", "yacc"]],
711
+ :desc=>""},
712
+ {:func_name=>"gsl_spline2d_eval_deriv_x_e",
713
+ :func_type=>"int",
714
+ :args=>
715
+ [["const gsl_spline2d *", "spline"],
716
+ ["const double", "x"],
717
+ ["const double", "y"],
718
+ ["gsl_interp_accel *", "xacc"],
719
+ ["gsl_interp_accel *", "yacc"],
720
+ ["double *", "d"]],
721
+ :desc=>""},
722
+ {:func_name=>"gsl_spline2d_eval_deriv_y",
723
+ :func_type=>"double",
724
+ :args=>
725
+ [["const gsl_spline2d *", "spline"],
726
+ ["const double", "x"],
727
+ ["const double", "y"],
728
+ ["gsl_interp_accel *", "xacc"],
729
+ ["gsl_interp_accel *", "yacc"]],
730
+ :desc=>""},
731
+ {:func_name=>"gsl_spline2d_eval_deriv_y_e",
732
+ :func_type=>"int",
733
+ :args=>
734
+ [["const gsl_spline2d *", "spline"],
735
+ ["const double", "x"],
736
+ ["const double", "y"],
737
+ ["gsl_interp_accel *", "xacc"],
738
+ ["gsl_interp_accel *", "yacc"],
739
+ ["double *", "d"]],
740
+ :desc=>""},
741
+ {:func_name=>"gsl_spline2d_eval_deriv_xx",
742
+ :func_type=>"double",
743
+ :args=>
744
+ [["const gsl_spline2d *", "spline"],
745
+ ["const double", "x"],
746
+ ["const double", "y"],
747
+ ["gsl_interp_accel *", "xacc"],
748
+ ["gsl_interp_accel *", "yacc"]],
749
+ :desc=>""},
750
+ {:func_name=>"gsl_spline2d_eval_deriv_xx_e",
751
+ :func_type=>"int",
752
+ :args=>
753
+ [["const gsl_spline2d *", "spline"],
754
+ ["const double", "x"],
755
+ ["const double", "y"],
756
+ ["gsl_interp_accel *", "xacc"],
757
+ ["gsl_interp_accel *", "yacc"],
758
+ ["double *", "d"]],
759
+ :desc=>""},
760
+ {:func_name=>"gsl_spline2d_eval_deriv_yy",
761
+ :func_type=>"double",
762
+ :args=>
763
+ [["const gsl_spline2d *", "spline"],
764
+ ["const double", "x"],
765
+ ["const double", "y"],
766
+ ["gsl_interp_accel *", "xacc"],
767
+ ["gsl_interp_accel *", "yacc"]],
768
+ :desc=>""},
769
+ {:func_name=>"gsl_spline2d_eval_deriv_yy_e",
770
+ :func_type=>"int",
771
+ :args=>
772
+ [["const gsl_spline2d *", "spline"],
773
+ ["const double", "x"],
774
+ ["const double", "y"],
775
+ ["gsl_interp_accel *", "xacc"],
776
+ ["gsl_interp_accel *", "yacc"],
777
+ ["double *", "d"]],
778
+ :desc=>""},
779
+ {:func_name=>"gsl_spline2d_eval_deriv_xy",
780
+ :func_type=>"double",
781
+ :args=>
782
+ [["const gsl_spline2d *", "spline"],
783
+ ["const double", "x"],
784
+ ["const double", "y"],
785
+ ["gsl_interp_accel *", "xacc"],
786
+ ["gsl_interp_accel *", "yacc"]],
787
+ :desc=>""},
788
+ {:func_name=>"gsl_spline2d_eval_deriv_xy_e",
789
+ :func_type=>"int",
790
+ :args=>
791
+ [["const gsl_spline2d *", "spline"],
792
+ ["const double", "x"],
793
+ ["const double", "y"],
794
+ ["gsl_interp_accel *", "xacc"],
795
+ ["gsl_interp_accel *", "yacc"],
796
+ ["double *", "d"]],
797
+ :desc=>""},
798
+ {:func_name=>"gsl_spline2d_set",
799
+ :func_type=>"int",
800
+ :args=>
801
+ [["const gsl_spline2d *", "spline"],
802
+ ["double", "za[]"],
803
+ ["const size_t", "i"],
804
+ ["const size_t", "j"],
805
+ ["const double", "z"]],
806
+ :desc=>""},
807
+ {:func_name=>"gsl_spline2d_get",
808
+ :func_type=>"double",
809
+ :args=>
810
+ [["const gsl_spline2d *", "spline"],
811
+ ["const double", "za[]"],
812
+ ["const size_t", "i"],
813
+ ["const size_t", "j"]],
814
+ :desc=>
815
+ "This function returns the value z_{ij} for grid point\n" +
816
+ "(i,j) stored in the array za."}]