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,38 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2, *p3;
6
+ ssize_t s1, s2, s3;
7
+ double x, y, z;
8
+
9
+ INIT_COUNTER(lp, i);
10
+ INIT_PTR(lp, 0, p1, s1);
11
+ INIT_PTR(lp, 1, p2, s2);
12
+ INIT_PTR(lp, 2, p3, s3);
13
+
14
+ for (; i--; ) {
15
+ GET_DATA_STRIDE(p1,s1,double,x);
16
+ GET_DATA_STRIDE(p2,s2,double,y);
17
+ z = <%=func_name%>(x,y);
18
+ SET_DATA_STRIDE(p3,s3,double,z);
19
+ }
20
+ }
21
+
22
+ /*
23
+ @overload <%=name%>(<%=args[0][1]%>, <%=args[1][1]%>)
24
+ @param [DFloat] <%=args[0][1]%>
25
+ @param [DFloat] <%=args[1][1]%>
26
+ @return [DFloat] result
27
+
28
+ <%= description %>
29
+ */
30
+ static VALUE
31
+ <%=c_func(2)%>(VALUE mod, VALUE v0, VALUE v1)
32
+ {
33
+ ndfunc_arg_in_t ain[2] = {{cDF,0},{cDF,0}};
34
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
35
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 2,1, ain,aout};
36
+
37
+ return na_ndloop(&ndf, 2, v0, v1);
38
+ }
@@ -0,0 +1,41 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2, *p3, *p4;
6
+ ssize_t s1, s2, s3, s4;
7
+ double x1, x2, x3, y;
8
+
9
+ INIT_COUNTER(lp, i);
10
+ INIT_PTR(lp, 0, p1, s1);
11
+ INIT_PTR(lp, 1, p2, s2);
12
+ INIT_PTR(lp, 2, p3, s3);
13
+ INIT_PTR(lp, 3, p4, s4);
14
+
15
+ for (; i--; ) {
16
+ GET_DATA_STRIDE(p1,s1,double,x1);
17
+ GET_DATA_STRIDE(p2,s2,double,x2);
18
+ GET_DATA_STRIDE(p3,s3,double,x3);
19
+ y = <%=func_name%>(x1,x2,x3);
20
+ SET_DATA_STRIDE(p4,s4,double,y);
21
+ }
22
+ }
23
+
24
+ /*
25
+ @overload <%=name%>(<%=args[0][1]%>, <%=args[1][1]%>, <%=args[2][1]%>)
26
+ @param [DFloat] <%=args[0][1]%>
27
+ @param [DFloat] <%=args[1][1]%>
28
+ @param [DFloat] <%=args[2][1]%>
29
+ @return [DFloat] result
30
+
31
+ <%= description %>
32
+ */
33
+ static VALUE
34
+ <%=c_func(3)%>(VALUE mod, VALUE v0, VALUE v1, VALUE v2)
35
+ {
36
+ ndfunc_arg_in_t ain[3] = {{cDF,0},{cDF,0},{cDF,0}};
37
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
38
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 3,1, ain,aout};
39
+
40
+ return na_ndloop(&ndf, 3, v0, v1, v2);
41
+ }
@@ -0,0 +1,36 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ int x;
8
+ double y;
9
+
10
+ INIT_COUNTER(lp, i);
11
+ INIT_PTR(lp, 0, p1, s1);
12
+ INIT_PTR(lp, 1, p2, s2);
13
+
14
+ for (; i--; ) {
15
+ GET_DATA_STRIDE(p1,s1,int,x);
16
+ y = <%=func_name%>(x);
17
+ SET_DATA_STRIDE(p2,s2,double,y);
18
+ }
19
+ }
20
+
21
+ /*
22
+ @overload <%=name%>(<%=args[0][1]%>)
23
+ @param [Int] <%=args[0][1]%>
24
+ @return [DFloat] result
25
+
26
+ <%= description %>
27
+ */
28
+ static VALUE
29
+ <%=c_func(1)%>(VALUE mod, VALUE v0)
30
+ {
31
+ ndfunc_arg_in_t ain[1] = {{cInt,0}};
32
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
33
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
34
+
35
+ return na_ndloop(&ndf, 1, v0);
36
+ }
@@ -0,0 +1,36 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ unsigned int x;
8
+ double y;
9
+
10
+ INIT_COUNTER(lp, i);
11
+ INIT_PTR(lp, 0, p1, s1);
12
+ INIT_PTR(lp, 1, p2, s2);
13
+
14
+ for (; i--;) {
15
+ GET_DATA_STRIDE(p1,s1,unsigned int,x);
16
+ y = <%=func_name%>(x);
17
+ SET_DATA_STRIDE(p2,s2,double,y);
18
+ }
19
+ }
20
+
21
+ /*
22
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
23
+ @param [UInt] <%=args[0][1]%>
24
+ @return [DFloat] result
25
+
26
+ <%= description %>
27
+ */
28
+ static VALUE
29
+ <%=c_func(1)%>(VALUE mod, VALUE v0)
30
+ {
31
+ ndfunc_arg_in_t ain[1] = {{cUI,0}};
32
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
33
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
34
+
35
+ return na_ndloop(&ndf, 1, v0);
36
+ }
@@ -0,0 +1,36 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ unsigned int x;
8
+ double y;
9
+
10
+ INIT_COUNTER(lp, i);
11
+ INIT_PTR(lp, 0, p1, s1);
12
+ INIT_PTR(lp, 1, p2, s2);
13
+
14
+ for (; i--;) {
15
+ GET_DATA_STRIDE(p1,s1,unsigned int,x);
16
+ y = <%=func_name%>(x);
17
+ SET_DATA_STRIDE(p2,s2,double,y);
18
+ }
19
+ }
20
+
21
+ /*
22
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
23
+ @param [UInt32] <%=args[0][1]%>
24
+ @return [DFloat] result
25
+
26
+ <%= description %>
27
+ */
28
+ static VALUE
29
+ <%=c_func(1)%>(VALUE mod, VALUE v0)
30
+ {
31
+ ndfunc_arg_in_t ain[1] = {{numo_cUInt32,0}};
32
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
33
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
34
+
35
+ return na_ndloop(&ndf, 1, v0);
36
+ }
@@ -0,0 +1,43 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ unsigned int x;
8
+ double y;
9
+ double c1;
10
+
11
+ INIT_COUNTER(lp, i);
12
+ INIT_PTR(lp, 0, p1, s1);
13
+ INIT_PTR(lp, 1, p2, s2);
14
+
15
+ c1 = *(double*)(lp->opt_ptr);
16
+
17
+ for (; i--;) {
18
+ GET_DATA_STRIDE(p1,s1,unsigned int,x);
19
+ y = <%=func_name%>(x, c1);
20
+ SET_DATA_STRIDE(p2,s2,double,y);
21
+ }
22
+ }
23
+
24
+ /*
25
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
26
+ @param [UInt32] <%=args[0][1]%>
27
+ @param [Float] <%=args[1][1]%> parameter
28
+ @return [DFloat] result
29
+
30
+ <%= description %>
31
+ */
32
+ static VALUE
33
+ <%=c_func(2)%>(VALUE mod, VALUE v0, VALUE v1)
34
+ {
35
+ ndfunc_arg_in_t ain[1] = {{numo_cUInt32,0}};
36
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
37
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
38
+ double c1;
39
+
40
+ c1 = NUM2DBL(v1);
41
+
42
+ return na_ndloop3(&ndf, &c1, 1, v0);
43
+ }
@@ -0,0 +1,49 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ unsigned int x;
8
+ double y;
9
+ struct opt_d_u *opt;
10
+ double c1;
11
+ unsigned int c2;
12
+
13
+ INIT_COUNTER(lp, i);
14
+ INIT_PTR(lp, 0, p1, s1);
15
+ INIT_PTR(lp, 1, p2, s2);
16
+
17
+ opt = (struct opt_d_u*)(lp->opt_ptr);
18
+ c1 = opt->d;
19
+ c2 = opt->u;
20
+
21
+ for (; i--;) {
22
+ GET_DATA_STRIDE(p1,s1,double,x);
23
+ y = <%=func_name%>(x, c1, c2);
24
+ SET_DATA_STRIDE(p2,s2,double,y);
25
+ }
26
+ }
27
+
28
+ /*
29
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
30
+ @param [UInt32] <%=args[0][1]%>
31
+ @param [Integer] <%=args[1][1]%> parameter
32
+ @param [Float] <%=args[2][1]%> parameter
33
+ @return [DFloat] result
34
+
35
+ <%= description %>
36
+ */
37
+ static VALUE
38
+ <%=c_func(3)%>(VALUE mod, VALUE v0, VALUE v1, VALUE v2)
39
+ {
40
+ ndfunc_arg_in_t ain[1] = {{numo_cUInt32,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
+ struct opt_d_u opt;
44
+
45
+ opt.d = NUM2DBL(v1);
46
+ opt.u = NUM2UINT(v2);
47
+
48
+ return na_ndloop3(&ndf, &opt, 1, v0);
49
+ }
@@ -0,0 +1,48 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ unsigned int x;
8
+ double y;
9
+ double *opt;
10
+ double c1, c2;
11
+
12
+ INIT_COUNTER(lp, i);
13
+ INIT_PTR(lp, 0, p1, s1);
14
+ INIT_PTR(lp, 1, p2, s2);
15
+
16
+ opt = (double*)(lp->opt_ptr);
17
+ c1 = opt[0];
18
+ c2 = opt[1];
19
+
20
+ for (; i--;) {
21
+ GET_DATA_STRIDE(p1,s1,double,x);
22
+ y = <%=func_name%>(x, c1, c2);
23
+ SET_DATA_STRIDE(p2,s2,double,y);
24
+ }
25
+ }
26
+
27
+ /*
28
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
29
+ @param [UInt32] <%=args[0][1]%>
30
+ @param [Float] <%=args[1][1]%> parameter
31
+ @param [Float] <%=args[2][1]%> parameter
32
+ @return [DFloat] result
33
+
34
+ <%= description %>
35
+ */
36
+ static VALUE
37
+ <%=c_func(3)%>(VALUE mod , VALUE v0, VALUE v1, VALUE v2)
38
+ {
39
+ ndfunc_arg_in_t ain[1] = {{numo_cUInt32,0}};
40
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
41
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
42
+ double opt[2];
43
+
44
+ opt[0] = NUM2DBL(v1);
45
+ opt[1] = NUM2DBL(v2);
46
+
47
+ return na_ndloop3(&ndf, opt, 1, v0);
48
+ }
@@ -0,0 +1,51 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ unsigned int x;
8
+ double y;
9
+ unsigned int *opt;
10
+ unsigned int c1, c2, c3;
11
+
12
+ INIT_COUNTER(lp, i);
13
+ INIT_PTR(lp, 0, p1, s1);
14
+ INIT_PTR(lp, 1, p2, s2);
15
+
16
+ opt = (unsigned int*)(lp->opt_ptr);
17
+ c1 = opt[0];
18
+ c2 = opt[1];
19
+ c3 = opt[2];
20
+
21
+ for (; i--;) {
22
+ GET_DATA_STRIDE(p1,s1,double,x);
23
+ y = <%=func_name%>(x, c1, c2, c3);
24
+ SET_DATA_STRIDE(p2,s2,double,y);
25
+ }
26
+ }
27
+
28
+ /*
29
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
30
+ @param [UInt32] <%=args[0][1]%>
31
+ @param [Integer] <%=args[1][1]%> parameter
32
+ @param [Integer] <%=args[2][1]%> parameter
33
+ @param [Integer] <%=args[3][1]%> parameter
34
+ @return [DFloat] result
35
+
36
+ <%= description %>
37
+ */
38
+ static VALUE
39
+ <%=c_func(4)%>(VALUE mod, VALUE v0, VALUE v1, VALUE v2, VALUE v3)
40
+ {
41
+ ndfunc_arg_in_t ain[1] = {{numo_cUInt32,0}};
42
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
43
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
44
+ unsigned int opt[3];
45
+
46
+ opt[0] = NUM2UINT(v1);
47
+ opt[1] = NUM2UINT(v2);
48
+ opt[2] = NUM2UINT(v3);
49
+
50
+ return na_ndloop3(&ndf, opt, 1, v0);
51
+ }
@@ -0,0 +1,43 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ unsigned int x;
8
+ double y;
9
+ double c1;
10
+
11
+ INIT_COUNTER(lp, i);
12
+ INIT_PTR(lp, 0, p1, s1);
13
+ INIT_PTR(lp, 1, p2, s2);
14
+
15
+ c1 = *(double*)(lp->opt_ptr);
16
+
17
+ for (; i--;) {
18
+ GET_DATA_STRIDE(p1,s1,unsigned int,x);
19
+ y = <%=func_name%>(x, c1);
20
+ SET_DATA_STRIDE(p2,s2,double,y);
21
+ }
22
+ }
23
+
24
+ /*
25
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
26
+ @param [UInt] <%=args[0][1]%>
27
+ @param [Float] <%=args[1][1]%> parameter
28
+ @return [DFloat] result
29
+
30
+ <%= description %>
31
+ */
32
+ static VALUE
33
+ <%=c_func(2)%>(VALUE mod, VALUE v0, VALUE v1)
34
+ {
35
+ ndfunc_arg_in_t ain[1] = {{cUI,0}};
36
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
37
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
38
+ double c1;
39
+
40
+ c1 = NUM2DBL(v1);
41
+
42
+ return na_ndloop3(&ndf, &c1, 1, v0);
43
+ }
@@ -0,0 +1,50 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ unsigned int x;
8
+ double y;
9
+ char *opt;
10
+ double c1;
11
+ unsigned int c2;
12
+
13
+ INIT_COUNTER(lp, i);
14
+ INIT_PTR(lp, 0, p1, s1);
15
+ INIT_PTR(lp, 1, p2, s2);
16
+
17
+ opt = (char*)(lp->opt_ptr);
18
+ c1 = *(double*)opt;
19
+ c2 = *(unsigned int*)(opt+sizeof(double));
20
+
21
+ for (; i--;) {
22
+ GET_DATA_STRIDE(p1,s1,double,x);
23
+ y = <%=func_name%>(x, c1, c2);
24
+ SET_DATA_STRIDE(p2,s2,double,y);
25
+ }
26
+ }
27
+
28
+ /*
29
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
30
+ @param [UInt] <%=args[0][1]%>
31
+ @param [Integer] <%=args[1][1]%> parameter
32
+ @param [Float] <%=args[2][1]%> parameter
33
+ @return [DFloat] result
34
+
35
+ <%= description %>
36
+ */
37
+ static VALUE
38
+ <%=c_func(3)%>(VALUE mod, VALUE v0, VALUE v1, VALUE v2)
39
+ {
40
+ ndfunc_arg_in_t ain[1] = {{cUI,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
+ char *opt;
44
+ opt = ALLOCA_N(char,sizeof(double)+sizeof(unsigned int));
45
+
46
+ *(double*)opt = NUM2DBL(v1);
47
+ *(unsigned int*)(opt+sizeof(double)) = NUM2UINT(v2);
48
+
49
+ return na_ndloop3(&ndf, opt, 1, v0);
50
+ }
@@ -0,0 +1,48 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ unsigned int x;
8
+ double y;
9
+ double *opt;
10
+ double c1, c2;
11
+
12
+ INIT_COUNTER(lp, i);
13
+ INIT_PTR(lp, 0, p1, s1);
14
+ INIT_PTR(lp, 1, p2, s2);
15
+
16
+ opt = (double*)(lp->opt_ptr);
17
+ c1 = opt[0];
18
+ c2 = opt[1];
19
+
20
+ for (; i--;) {
21
+ GET_DATA_STRIDE(p1,s1,double,x);
22
+ y = <%=func_name%>(x, c1, c2);
23
+ SET_DATA_STRIDE(p2,s2,double,y);
24
+ }
25
+ }
26
+
27
+ /*
28
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
29
+ @param [UInt] <%=args[0][1]%>
30
+ @param [Float] <%=args[1][1]%> parameter
31
+ @param [Float] <%=args[2][1]%> parameter
32
+ @return [DFloat] result
33
+
34
+ <%= description %>
35
+ */
36
+ static VALUE
37
+ <%=c_func(3)%>(VALUE mod , VALUE v0, VALUE v1, VALUE v2)
38
+ {
39
+ ndfunc_arg_in_t ain[1] = {{cUI,0}};
40
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
41
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
42
+ double opt[2];
43
+
44
+ opt[0] = NUM2DBL(v1);
45
+ opt[1] = NUM2DBL(v2);
46
+
47
+ return na_ndloop3(&ndf, opt, 1, v0);
48
+ }
@@ -0,0 +1,51 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ unsigned int x;
8
+ double y;
9
+ unsigned int *opt;
10
+ unsigned int c1, c2, c3;
11
+
12
+ INIT_COUNTER(lp, i);
13
+ INIT_PTR(lp, 0, p1, s1);
14
+ INIT_PTR(lp, 1, p2, s2);
15
+
16
+ opt = (unsigned int*)(lp->opt_ptr);
17
+ c1 = opt[0];
18
+ c2 = opt[1];
19
+ c3 = opt[2];
20
+
21
+ for (; i--;) {
22
+ GET_DATA_STRIDE(p1,s1,double,x);
23
+ y = <%=func_name%>(x, c1, c2, c3);
24
+ SET_DATA_STRIDE(p2,s2,double,y);
25
+ }
26
+ }
27
+
28
+ /*
29
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
30
+ @param [UInt] <%=args[0][1]%>
31
+ @param [Integer] <%=args[1][1]%> parameter
32
+ @param [Integer] <%=args[2][1]%> parameter
33
+ @param [Integer] <%=args[3][1]%> parameter
34
+ @return [DFloat] result
35
+
36
+ <%= description %>
37
+ */
38
+ static VALUE
39
+ <%=c_func(4)%>(VALUE mod, VALUE v0, VALUE v1, VALUE v2, VALUE v3)
40
+ {
41
+ ndfunc_arg_in_t ain[1] = {{cUI,0}};
42
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
43
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
44
+ unsigned int opt[3];
45
+
46
+ opt[0] = NUM2UINT(v1);
47
+ opt[1] = NUM2UINT(v2);
48
+ opt[2] = NUM2UINT(v3);
49
+
50
+ return na_ndloop3(&ndf, opt, 1, v0);
51
+ }
@@ -0,0 +1,41 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2;
6
+ ssize_t s1, s2;
7
+ double x, y;
8
+ int c0;
9
+
10
+ INIT_COUNTER(lp, i);
11
+ INIT_PTR(lp, 0, p1, s1);
12
+ INIT_PTR(lp, 1, p2, s2);
13
+ c0 = *(int*)(lp->opt_ptr);
14
+
15
+ for (; i--; ) {
16
+ GET_DATA_STRIDE(p1,s1,double,x);
17
+ y = <%=func_name%>(c0, x);
18
+ SET_DATA_STRIDE(p2,s2,double,y);
19
+ }
20
+ }
21
+
22
+ /*
23
+ @overload <%=name%>(<%=args[0][1]%>, <%=args[1][1]%>)
24
+ @param [Integer] <%=args[0][1]%>
25
+ @param [DFloat] <%=args[1][1]%>
26
+ @return [DFloat] result
27
+
28
+ <%= description %>
29
+ */
30
+ static VALUE
31
+ <%=c_func(2)%>(VALUE mod, VALUE v0, VALUE v1)
32
+ {
33
+ ndfunc_arg_in_t ain[1] = {{cDF,0}};
34
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
35
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 1,1, ain,aout};
36
+ int c0;
37
+
38
+ c0 = NUM2INT(v0);
39
+
40
+ return na_ndloop3(&ndf, &c0, 1, v1);
41
+ }
@@ -0,0 +1,44 @@
1
+ static void
2
+ iter_<%=c_func%>(na_loop_t *const lp)
3
+ {
4
+ size_t i;
5
+ char *p1, *p2, *p3;
6
+ ssize_t s1, s2, s3;
7
+ double x, y, z;
8
+ int *opts;
9
+
10
+ INIT_COUNTER(lp, i);
11
+ INIT_PTR(lp, 0, p1, s1);
12
+ INIT_PTR(lp, 1, p2, s2);
13
+ INIT_PTR(lp, 2, p3, s3);
14
+ opts = (int*)(lp->opt_ptr);
15
+
16
+ for (; i--; ) {
17
+ GET_DATA_STRIDE(p1,s1,double,x);
18
+ GET_DATA_STRIDE(p2,s2,double,y);
19
+ z = <%=func_name%>(opts[0],x,y);
20
+ SET_DATA_STRIDE(p3,s3,double,z);
21
+ }
22
+ }
23
+
24
+ /*
25
+ @overload <%=name%>(<%=args.map{|a| a[1]}.join(",")%>)
26
+ @param [Integer] <%=args[0][1]%> parameter
27
+ @param [DFloat] <%=args[1][1]%>
28
+ @param [DFloat] <%=args[2][1]%>
29
+ @return [DFloat] result
30
+
31
+ <%= description %>
32
+ */
33
+ static VALUE
34
+ <%=c_func(3)%>(VALUE mod, VALUE v0, VALUE v1, VALUE v2)
35
+ {
36
+ ndfunc_arg_in_t ain[2] = {{cDF,0},{cDF,0}};
37
+ ndfunc_arg_out_t aout[1] = {{cDF,0}};
38
+ ndfunc_t ndf = {iter_<%=c_func%>, STRIDE_LOOP|NDF_EXTRACT, 2,1, ain,aout};
39
+ int opts[1];
40
+
41
+ opts[0] = NUM2INT(v0);
42
+
43
+ return na_ndloop3(&ndf, opts, 2, v1, v2);
44
+ }