gsl 1.15.3 → 1.16.0.6

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 (446) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.travis.yml +24 -0
  4. data/AUTHORS +10 -2
  5. data/COPYING +341 -339
  6. data/ChangeLog +612 -554
  7. data/Gemfile +4 -0
  8. data/README.md +77 -0
  9. data/Rakefile +14 -93
  10. data/THANKS +1 -1
  11. data/examples/blas/blas.rb +1 -1
  12. data/examples/bspline.rb +3 -3
  13. data/examples/complex/functions.rb +4 -4
  14. data/examples/complex/mul.rb +1 -1
  15. data/examples/const/physconst.rb +4 -4
  16. data/examples/const/travel.rb +4 -4
  17. data/examples/eigen/nonsymmv.rb +1 -1
  18. data/examples/eigen/qhoscillator.rb +3 -3
  19. data/examples/fft/radix2.rb +1 -1
  20. data/examples/fft/real-halfcomplex.rb +3 -3
  21. data/examples/fft/real-halfcomplex2.rb +3 -3
  22. data/examples/fit/expfit.rb +1 -1
  23. data/examples/fit/multifit.rb +1 -1
  24. data/examples/fit/ndlinear.rb +44 -44
  25. data/examples/fit/nonlinearfit.rb +1 -1
  26. data/examples/fit/wlinear.rb +3 -3
  27. data/examples/function/function.rb +1 -1
  28. data/examples/function/min.rb +1 -1
  29. data/examples/function/synchrotron.rb +2 -2
  30. data/examples/gallery/koch.rb +1 -1
  31. data/examples/histogram/cauchy.rb +2 -2
  32. data/examples/histogram/exponential.rb +1 -1
  33. data/examples/histogram/histo3d.rb +1 -1
  34. data/examples/histogram/histogram-pdf.rb +2 -2
  35. data/examples/histogram/xexp.rb +1 -1
  36. data/examples/integration/ahmed.rb +2 -2
  37. data/examples/integration/cosmology.rb +7 -7
  38. data/examples/integration/friedmann.rb +4 -4
  39. data/examples/integration/qng.rb +1 -1
  40. data/examples/interp/demo.rb +2 -2
  41. data/examples/linalg/LQ_solve.rb +1 -1
  42. data/examples/linalg/LU.rb +1 -1
  43. data/examples/linalg/LU2.rb +1 -1
  44. data/examples/linalg/LU_narray.rb +1 -1
  45. data/examples/linalg/PTLQ.rb +1 -1
  46. data/examples/linalg/QRPT.rb +1 -1
  47. data/examples/linalg/chol.rb +1 -1
  48. data/examples/linalg/chol_narray.rb +1 -1
  49. data/examples/linalg/complex.rb +1 -1
  50. data/examples/math/elementary.rb +1 -1
  51. data/examples/math/functions.rb +1 -1
  52. data/examples/math/inf_nan.rb +1 -1
  53. data/examples/math/minmax.rb +1 -1
  54. data/examples/math/power.rb +1 -1
  55. data/examples/math/test.rb +1 -1
  56. data/examples/min.rb +1 -1
  57. data/examples/multimin/bundle.rb +1 -1
  58. data/examples/multimin/cqp.rb +17 -17
  59. data/examples/multiroot/fsolver3.rb +1 -1
  60. data/examples/odeiv/binarysystem.rb +12 -12
  61. data/examples/odeiv/demo.rb +3 -3
  62. data/examples/odeiv/frei1.rb +7 -7
  63. data/examples/odeiv/frei2.rb +4 -4
  64. data/examples/odeiv/oscillator.rb +1 -1
  65. data/examples/odeiv/sedov.rb +3 -3
  66. data/examples/odeiv/whitedwarf.rb +11 -11
  67. data/examples/permutation/ex1.rb +2 -2
  68. data/examples/permutation/permutation.rb +1 -1
  69. data/examples/poly/demo.rb +1 -1
  70. data/examples/random/diffusion.rb +1 -1
  71. data/examples/random/generator.rb +2 -2
  72. data/examples/random/randomwalk.rb +3 -3
  73. data/examples/random/rng.rb +1 -1
  74. data/examples/roots/bisection.rb +1 -1
  75. data/examples/roots/brent.rb +1 -1
  76. data/examples/roots/demo.rb +1 -1
  77. data/examples/roots/newton.rb +2 -2
  78. data/examples/roots/recombination.gp +0 -1
  79. data/examples/sf/hyperg.rb +1 -1
  80. data/examples/sf/sphbessel.rb +1 -1
  81. data/examples/sort/sort.rb +1 -1
  82. data/examples/tamu_anova.rb +4 -4
  83. data/examples/vector/add.rb +1 -1
  84. data/examples/vector/decimate.rb +1 -1
  85. data/examples/vector/gnuplot.rb +8 -8
  86. data/examples/vector/vector.rb +2 -2
  87. data/examples/wavelet/wavelet1.rb +1 -1
  88. data/ext/{alf.c → gsl_native/alf.c} +10 -10
  89. data/ext/{array.c → gsl_native/array.c} +70 -159
  90. data/ext/{array_complex.c → gsl_native/array_complex.c} +63 -66
  91. data/ext/{blas.c → gsl_native/blas.c} +2 -3
  92. data/ext/{blas1.c → gsl_native/blas1.c} +35 -36
  93. data/ext/{blas2.c → gsl_native/blas2.c} +57 -62
  94. data/ext/{blas3.c → gsl_native/blas3.c} +57 -58
  95. data/ext/{block.c → gsl_native/block.c} +14 -18
  96. data/ext/{block_source.c → gsl_native/block_source.h} +110 -112
  97. data/ext/gsl_native/bspline.c +122 -0
  98. data/ext/{bundle.c → gsl_native/bundle.c} +0 -0
  99. data/ext/{cdf.c → gsl_native/cdf.c} +79 -93
  100. data/ext/{cheb.c → gsl_native/cheb.c} +78 -89
  101. data/ext/{combination.c → gsl_native/combination.c} +11 -19
  102. data/ext/{common.c → gsl_native/common.c} +9 -41
  103. data/ext/{complex.c → gsl_native/complex.c} +116 -118
  104. data/ext/gsl_native/const.c +331 -0
  105. data/ext/{const_additional.c → gsl_native/const_additional.c} +13 -34
  106. data/ext/gsl_native/cqp.c +283 -0
  107. data/ext/{deriv.c → gsl_native/deriv.c} +25 -33
  108. data/ext/{dht.c → gsl_native/dht.c} +23 -31
  109. data/ext/{diff.c → gsl_native/diff.c} +26 -28
  110. data/ext/{dirac.c → gsl_native/dirac.c} +45 -46
  111. data/ext/{eigen.c → gsl_native/eigen.c} +1044 -1095
  112. data/ext/{error.c → gsl_native/error.c} +18 -18
  113. data/ext/gsl_native/extconf.rb +118 -0
  114. data/ext/{fft.c → gsl_native/fft.c} +197 -204
  115. data/ext/{fit.c → gsl_native/fit.c} +17 -18
  116. data/ext/gsl_native/fresnel.c +312 -0
  117. data/ext/{function.c → gsl_native/function.c} +37 -43
  118. data/ext/{geometry.c → gsl_native/geometry.c} +16 -16
  119. data/ext/{graph.c → gsl_native/graph.c} +39 -89
  120. data/ext/{gsl.c → gsl_native/gsl.c} +12 -33
  121. data/ext/{gsl_narray.c → gsl_native/gsl_narray.c} +20 -30
  122. data/ext/{histogram.c → gsl_native/histogram.c} +133 -160
  123. data/ext/{histogram2d.c → gsl_native/histogram2d.c} +78 -104
  124. data/ext/{histogram3d.c → gsl_native/histogram3d.c} +76 -76
  125. data/ext/{histogram3d_source.c → gsl_native/histogram3d_source.c} +196 -197
  126. data/ext/{histogram_find.c → gsl_native/histogram_find.c} +32 -34
  127. data/ext/{histogram_oper.c → gsl_native/histogram_oper.c} +43 -52
  128. data/ext/{ieee.c → gsl_native/ieee.c} +9 -21
  129. data/{include → ext/gsl_native/include}/rb_gsl.h +4 -26
  130. data/{include → ext/gsl_native/include}/rb_gsl_array.h +15 -39
  131. data/{include → ext/gsl_native/include}/rb_gsl_cheb.h +0 -2
  132. data/{include → ext/gsl_native/include}/rb_gsl_common.h +61 -61
  133. data/{include → ext/gsl_native/include}/rb_gsl_complex.h +1 -1
  134. data/{include → ext/gsl_native/include}/rb_gsl_const.h +0 -6
  135. data/ext/gsl_native/include/rb_gsl_dirac.h +6 -0
  136. data/{include → ext/gsl_native/include}/rb_gsl_eigen.h +1 -1
  137. data/{include → ext/gsl_native/include}/rb_gsl_fft.h +0 -13
  138. data/{include → ext/gsl_native/include}/rb_gsl_fit.h +0 -2
  139. data/{include → ext/gsl_native/include}/rb_gsl_function.h +0 -4
  140. data/{include → ext/gsl_native/include}/rb_gsl_graph.h +2 -4
  141. data/{include → ext/gsl_native/include}/rb_gsl_histogram.h +8 -8
  142. data/{include → ext/gsl_native/include}/rb_gsl_histogram3d.h +50 -50
  143. data/{include → ext/gsl_native/include}/rb_gsl_integration.h +1 -1
  144. data/{include → ext/gsl_native/include}/rb_gsl_interp.h +0 -5
  145. data/{include → ext/gsl_native/include}/rb_gsl_linalg.h +2 -6
  146. data/{include → ext/gsl_native/include}/rb_gsl_math.h +0 -6
  147. data/{include → ext/gsl_native/include}/rb_gsl_odeiv.h +0 -3
  148. data/{include → ext/gsl_native/include}/rb_gsl_poly.h +3 -7
  149. data/{include → ext/gsl_native/include}/rb_gsl_rational.h +1 -8
  150. data/{include → ext/gsl_native/include}/rb_gsl_rng.h +0 -1
  151. data/{include → ext/gsl_native/include}/rb_gsl_root.h +1 -1
  152. data/{include → ext/gsl_native/include}/rb_gsl_sf.h +39 -48
  153. data/{include → ext/gsl_native/include}/rb_gsl_statistics.h +1 -1
  154. data/{include → ext/gsl_native/include}/rb_gsl_tensor.h +0 -2
  155. data/{include → ext/gsl_native/include}/rb_gsl_with_narray.h +3 -1
  156. data/{include → ext/gsl_native/include}/templates_off.h +0 -0
  157. data/{include → ext/gsl_native/include}/templates_on.h +1 -1
  158. data/ext/{integration.c → gsl_native/integration.c} +164 -189
  159. data/ext/{interp.c → gsl_native/interp.c} +25 -38
  160. data/ext/gsl_native/jacobi.c +733 -0
  161. data/ext/{linalg.c → gsl_native/linalg.c} +462 -589
  162. data/ext/{linalg_complex.c → gsl_native/linalg_complex.c} +93 -106
  163. data/ext/{math.c → gsl_native/math.c} +48 -67
  164. data/ext/{matrix.c → gsl_native/matrix.c} +13 -16
  165. data/ext/{matrix_complex.c → gsl_native/matrix_complex.c} +119 -123
  166. data/ext/{matrix_double.c → gsl_native/matrix_double.c} +79 -82
  167. data/ext/{matrix_int.c → gsl_native/matrix_int.c} +53 -54
  168. data/ext/{matrix_source.c → gsl_native/matrix_source.h} +292 -318
  169. data/ext/{min.c → gsl_native/min.c} +45 -76
  170. data/ext/{monte.c → gsl_native/monte.c} +50 -64
  171. data/ext/{multifit.c → gsl_native/multifit.c} +142 -151
  172. data/ext/{multimin.c → gsl_native/multimin.c} +64 -92
  173. data/ext/{multimin_fsdf.c → gsl_native/multimin_fsdf.c} +16 -16
  174. data/ext/{multiroots.c → gsl_native/multiroots.c} +73 -76
  175. data/ext/{multiset.c → gsl_native/multiset.c} +4 -8
  176. data/ext/{ndlinear.c → gsl_native/ndlinear.c} +320 -321
  177. data/ext/{nmf.c → gsl_native/nmf.c} +11 -11
  178. data/ext/{nmf_wrap.c → gsl_native/nmf_wrap.c} +1 -1
  179. data/ext/{ntuple.c → gsl_native/ntuple.c} +23 -23
  180. data/ext/{odeiv.c → gsl_native/odeiv.c} +101 -116
  181. data/ext/gsl_native/ool.c +879 -0
  182. data/ext/{permutation.c → gsl_native/permutation.c} +39 -37
  183. data/ext/{poly.c → gsl_native/poly.c} +10 -13
  184. data/ext/{poly2.c → gsl_native/poly2.c} +16 -16
  185. data/ext/{poly_source.c → gsl_native/poly_source.h} +249 -293
  186. data/ext/{qrng.c → gsl_native/qrng.c} +9 -20
  187. data/ext/{randist.c → gsl_native/randist.c} +222 -247
  188. data/ext/{rational.c → gsl_native/rational.c} +12 -12
  189. data/ext/{rng.c → gsl_native/rng.c} +30 -47
  190. data/ext/{root.c → gsl_native/root.c} +47 -48
  191. data/ext/{sf.c → gsl_native/sf.c} +196 -244
  192. data/ext/{sf_airy.c → gsl_native/sf_airy.c} +2 -2
  193. data/ext/{sf_bessel.c → gsl_native/sf_bessel.c} +7 -7
  194. data/ext/{sf_clausen.c → gsl_native/sf_clausen.c} +1 -1
  195. data/ext/{sf_coulomb.c → gsl_native/sf_coulomb.c} +40 -40
  196. data/ext/{sf_coupling.c → gsl_native/sf_coupling.c} +30 -30
  197. data/ext/{sf_dawson.c → gsl_native/sf_dawson.c} +1 -1
  198. data/ext/{sf_debye.c → gsl_native/sf_debye.c} +1 -10
  199. data/ext/{sf_dilog.c → gsl_native/sf_dilog.c} +1 -1
  200. data/ext/{sf_elementary.c → gsl_native/sf_elementary.c} +3 -3
  201. data/ext/{sf_ellint.c → gsl_native/sf_ellint.c} +43 -43
  202. data/ext/{sf_elljac.c → gsl_native/sf_elljac.c} +3 -3
  203. data/ext/{sf_erfc.c → gsl_native/sf_erfc.c} +1 -5
  204. data/ext/{sf_exp.c → gsl_native/sf_exp.c} +3 -3
  205. data/ext/{sf_expint.c → gsl_native/sf_expint.c} +2 -12
  206. data/ext/{sf_fermi_dirac.c → gsl_native/sf_fermi_dirac.c} +1 -1
  207. data/ext/{sf_gamma.c → gsl_native/sf_gamma.c} +2 -6
  208. data/ext/{sf_gegenbauer.c → gsl_native/sf_gegenbauer.c} +1 -1
  209. data/ext/{sf_hyperg.c → gsl_native/sf_hyperg.c} +1 -1
  210. data/ext/{sf_laguerre.c → gsl_native/sf_laguerre.c} +4 -4
  211. data/ext/{sf_lambert.c → gsl_native/sf_lambert.c} +1 -1
  212. data/ext/{sf_legendre.c → gsl_native/sf_legendre.c} +1 -1
  213. data/ext/{sf_log.c → gsl_native/sf_log.c} +4 -4
  214. data/ext/gsl_native/sf_mathieu.c +235 -0
  215. data/ext/{sf_power.c → gsl_native/sf_power.c} +1 -1
  216. data/ext/{sf_psi.c → gsl_native/sf_psi.c} +3 -12
  217. data/ext/{sf_synchrotron.c → gsl_native/sf_synchrotron.c} +1 -1
  218. data/ext/{sf_transport.c → gsl_native/sf_transport.c} +1 -1
  219. data/ext/{sf_trigonometric.c → gsl_native/sf_trigonometric.c} +4 -4
  220. data/ext/{sf_zeta.c → gsl_native/sf_zeta.c} +1 -5
  221. data/ext/{signal.c → gsl_native/signal.c} +63 -68
  222. data/ext/{siman.c → gsl_native/siman.c} +45 -49
  223. data/ext/{sort.c → gsl_native/sort.c} +6 -7
  224. data/ext/{spline.c → gsl_native/spline.c} +28 -46
  225. data/ext/{stats.c → gsl_native/stats.c} +105 -118
  226. data/ext/{sum.c → gsl_native/sum.c} +34 -34
  227. data/ext/{tamu_anova.c → gsl_native/tamu_anova.c} +1 -1
  228. data/ext/{tensor.c → gsl_native/tensor.c} +8 -11
  229. data/ext/{tensor_source.c → gsl_native/tensor_source.h} +147 -148
  230. data/ext/{vector.c → gsl_native/vector.c} +11 -14
  231. data/ext/{vector_complex.c → gsl_native/vector_complex.c} +179 -184
  232. data/ext/{vector_double.c → gsl_native/vector_double.c} +178 -183
  233. data/ext/{vector_int.c → gsl_native/vector_int.c} +27 -29
  234. data/ext/{vector_source.c → gsl_native/vector_source.h} +428 -443
  235. data/ext/{wavelet.c → gsl_native/wavelet.c} +224 -246
  236. data/gsl.gemspec +29 -0
  237. data/lib/gsl.rb +8 -3
  238. data/lib/gsl/gnuplot.rb +3 -3
  239. data/lib/gsl/oper.rb +35 -60
  240. data/lib/gsl/version.rb +3 -0
  241. data/lib/rbgsl.rb +1 -3
  242. data/rdoc/alf.rdoc +5 -5
  243. data/rdoc/blas.rdoc +9 -9
  244. data/rdoc/bspline.rdoc +17 -17
  245. data/rdoc/changes.rdoc +4 -9
  246. data/rdoc/cheb.rdoc +25 -25
  247. data/rdoc/cholesky_complex.rdoc +21 -21
  248. data/rdoc/combi.rdoc +37 -37
  249. data/rdoc/complex.rdoc +22 -22
  250. data/rdoc/const.rdoc +47 -47
  251. data/rdoc/dht.rdoc +49 -49
  252. data/rdoc/diff.rdoc +42 -42
  253. data/rdoc/ehandling.rdoc +6 -6
  254. data/rdoc/eigen.rdoc +153 -153
  255. data/rdoc/fft.rdoc +146 -146
  256. data/rdoc/fit.rdoc +109 -109
  257. data/rdoc/function.rdoc +11 -11
  258. data/rdoc/graph.rdoc +17 -17
  259. data/rdoc/hist.rdoc +103 -103
  260. data/rdoc/hist2d.rdoc +42 -42
  261. data/rdoc/hist3d.rdoc +9 -9
  262. data/rdoc/integration.rdoc +110 -110
  263. data/rdoc/interp.rdoc +71 -71
  264. data/rdoc/intro.rdoc +8 -8
  265. data/rdoc/linalg.rdoc +188 -188
  266. data/rdoc/linalg_complex.rdoc +1 -1
  267. data/rdoc/math.rdoc +58 -58
  268. data/rdoc/matrix.rdoc +275 -275
  269. data/rdoc/min.rdoc +57 -57
  270. data/rdoc/monte.rdoc +22 -22
  271. data/rdoc/multimin.rdoc +95 -95
  272. data/rdoc/multiroot.rdoc +80 -80
  273. data/rdoc/narray.rdoc +32 -32
  274. data/rdoc/ndlinear.rdoc +54 -54
  275. data/rdoc/nonlinearfit.rdoc +100 -100
  276. data/rdoc/ntuple.rdoc +31 -31
  277. data/rdoc/odeiv.rdoc +88 -88
  278. data/rdoc/perm.rdoc +90 -90
  279. data/rdoc/poly.rdoc +66 -66
  280. data/rdoc/qrng.rdoc +21 -21
  281. data/rdoc/randist.rdoc +82 -82
  282. data/rdoc/ref.rdoc +57 -57
  283. data/rdoc/rng.rdoc +85 -85
  284. data/rdoc/roots.rdoc +57 -57
  285. data/rdoc/sf.rdoc +428 -428
  286. data/rdoc/siman.rdoc +19 -19
  287. data/rdoc/sort.rdoc +30 -30
  288. data/rdoc/start.rdoc +8 -8
  289. data/rdoc/stats.rdoc +52 -52
  290. data/rdoc/sum.rdoc +12 -12
  291. data/rdoc/tensor.rdoc +31 -31
  292. data/rdoc/tut.rdoc +1 -1
  293. data/rdoc/use.rdoc +39 -39
  294. data/rdoc/vector.rdoc +188 -188
  295. data/rdoc/vector_complex.rdoc +24 -24
  296. data/rdoc/wavelet.rdoc +46 -46
  297. data/test/gsl/blas_test.rb +79 -0
  298. data/test/gsl/bspline_test.rb +63 -0
  299. data/test/gsl/cdf_test.rb +1512 -0
  300. data/test/gsl/cheb_test.rb +80 -0
  301. data/test/gsl/combination_test.rb +100 -0
  302. data/test/gsl/complex_test.rb +20 -0
  303. data/test/gsl/const_test.rb +29 -0
  304. data/test/gsl/deriv_test.rb +62 -0
  305. data/test/gsl/dht_test.rb +79 -0
  306. data/test/gsl/diff_test.rb +53 -0
  307. data/test/gsl/eigen_test.rb +563 -0
  308. data/test/gsl/err_test.rb +23 -0
  309. data/test/gsl/fit_test.rb +101 -0
  310. data/test/gsl/histo_test.rb +14 -0
  311. data/test/gsl/index_test.rb +61 -0
  312. data/test/gsl/integration_test.rb +274 -0
  313. data/test/gsl/interp_test.rb +27 -0
  314. data/test/gsl/linalg_test.rb +463 -0
  315. data/test/gsl/matrix_nmf_test.rb +37 -0
  316. data/test/gsl/matrix_test.rb +98 -0
  317. data/test/gsl/min_test.rb +89 -0
  318. data/test/gsl/monte_test.rb +77 -0
  319. data/test/gsl/multifit_test.rb +753 -0
  320. data/test/gsl/multimin_test.rb +157 -0
  321. data/test/gsl/multiroot_test.rb +135 -0
  322. data/test/gsl/multiset_test.rb +52 -0
  323. data/test/gsl/odeiv_test.rb +275 -0
  324. data/test/gsl/oper_test.rb +98 -0
  325. data/test/gsl/poly_test.rb +338 -0
  326. data/test/gsl/qrng_test.rb +94 -0
  327. data/test/gsl/quartic_test.rb +28 -0
  328. data/test/gsl/randist_test.rb +122 -0
  329. data/test/gsl/rng_test.rb +303 -0
  330. data/test/gsl/roots_test.rb +78 -0
  331. data/test/gsl/sf_test.rb +2079 -0
  332. data/test/gsl/stats_test.rb +122 -0
  333. data/test/gsl/sum_test.rb +69 -0
  334. data/test/gsl/tensor_test.rb +396 -0
  335. data/test/gsl/vector_test.rb +223 -0
  336. data/test/gsl/wavelet_test.rb +130 -0
  337. data/test/gsl_test.rb +321 -0
  338. data/test/test_helper.rb +42 -0
  339. data/uncrustify.cfg +1693 -0
  340. metadata +337 -378
  341. data/README +0 -32
  342. data/VERSION +0 -1
  343. data/ext/bspline.c +0 -130
  344. data/ext/const.c +0 -673
  345. data/ext/cqp.c +0 -283
  346. data/ext/extconf.rb +0 -295
  347. data/ext/fcmp.c +0 -66
  348. data/ext/fresnel.c +0 -312
  349. data/ext/jacobi.c +0 -739
  350. data/ext/ool.c +0 -879
  351. data/ext/oper_complex_source.c +0 -253
  352. data/ext/sf_mathieu.c +0 -238
  353. data/include/rb_gsl_config.h +0 -62
  354. data/include/rb_gsl_dirac.h +0 -13
  355. data/rdoc/index.rdoc +0 -62
  356. data/rdoc/rngextra.rdoc +0 -11
  357. data/rdoc/screenshot.rdoc +0 -40
  358. data/setup.rb +0 -1585
  359. data/tests/blas/amax.rb +0 -14
  360. data/tests/blas/asum.rb +0 -16
  361. data/tests/blas/axpy.rb +0 -25
  362. data/tests/blas/copy.rb +0 -23
  363. data/tests/blas/dot.rb +0 -23
  364. data/tests/bspline.rb +0 -53
  365. data/tests/cdf.rb +0 -1388
  366. data/tests/cheb.rb +0 -112
  367. data/tests/combination.rb +0 -123
  368. data/tests/complex.rb +0 -17
  369. data/tests/const.rb +0 -24
  370. data/tests/deriv.rb +0 -85
  371. data/tests/dht/dht1.rb +0 -17
  372. data/tests/dht/dht2.rb +0 -23
  373. data/tests/dht/dht3.rb +0 -23
  374. data/tests/dht/dht4.rb +0 -23
  375. data/tests/diff.rb +0 -78
  376. data/tests/eigen/eigen.rb +0 -220
  377. data/tests/eigen/gen.rb +0 -105
  378. data/tests/eigen/genherm.rb +0 -66
  379. data/tests/eigen/gensymm.rb +0 -68
  380. data/tests/eigen/nonsymm.rb +0 -53
  381. data/tests/eigen/nonsymmv.rb +0 -53
  382. data/tests/eigen/symm-herm.rb +0 -74
  383. data/tests/err.rb +0 -58
  384. data/tests/fit.rb +0 -124
  385. data/tests/gsl_test.rb +0 -118
  386. data/tests/gsl_test2.rb +0 -110
  387. data/tests/histo.rb +0 -12
  388. data/tests/integration/integration1.rb +0 -72
  389. data/tests/integration/integration2.rb +0 -71
  390. data/tests/integration/integration3.rb +0 -71
  391. data/tests/integration/integration4.rb +0 -71
  392. data/tests/interp.rb +0 -45
  393. data/tests/linalg/HH.rb +0 -64
  394. data/tests/linalg/LU.rb +0 -47
  395. data/tests/linalg/QR.rb +0 -77
  396. data/tests/linalg/SV.rb +0 -24
  397. data/tests/linalg/TDN.rb +0 -116
  398. data/tests/linalg/TDS.rb +0 -122
  399. data/tests/linalg/bidiag.rb +0 -73
  400. data/tests/linalg/cholesky.rb +0 -20
  401. data/tests/linalg/linalg.rb +0 -158
  402. data/tests/matrix/matrix_complex_test.rb +0 -36
  403. data/tests/matrix/matrix_nmf_test.rb +0 -39
  404. data/tests/matrix/matrix_test.rb +0 -48
  405. data/tests/min.rb +0 -99
  406. data/tests/monte/miser.rb +0 -31
  407. data/tests/monte/vegas.rb +0 -45
  408. data/tests/multifit/test_2dgauss.rb +0 -112
  409. data/tests/multifit/test_brown.rb +0 -90
  410. data/tests/multifit/test_enso.rb +0 -246
  411. data/tests/multifit/test_filip.rb +0 -155
  412. data/tests/multifit/test_gauss.rb +0 -97
  413. data/tests/multifit/test_longley.rb +0 -110
  414. data/tests/multifit/test_multifit.rb +0 -52
  415. data/tests/multimin.rb +0 -139
  416. data/tests/multiroot.rb +0 -131
  417. data/tests/multiset.rb +0 -52
  418. data/tests/narray/blas_dnrm2.rb +0 -20
  419. data/tests/odeiv.rb +0 -353
  420. data/tests/poly/poly.rb +0 -290
  421. data/tests/poly/special.rb +0 -65
  422. data/tests/qrng.rb +0 -131
  423. data/tests/quartic.rb +0 -29
  424. data/tests/randist.rb +0 -134
  425. data/tests/rng.rb +0 -305
  426. data/tests/roots.rb +0 -76
  427. data/tests/run-test.sh +0 -17
  428. data/tests/sf/gsl_test_sf.rb +0 -249
  429. data/tests/sf/test_airy.rb +0 -83
  430. data/tests/sf/test_bessel.rb +0 -306
  431. data/tests/sf/test_coulomb.rb +0 -17
  432. data/tests/sf/test_dilog.rb +0 -25
  433. data/tests/sf/test_gamma.rb +0 -209
  434. data/tests/sf/test_hyperg.rb +0 -356
  435. data/tests/sf/test_legendre.rb +0 -227
  436. data/tests/sf/test_mathieu.rb +0 -59
  437. data/tests/sf/test_mode.rb +0 -19
  438. data/tests/sf/test_sf.rb +0 -839
  439. data/tests/stats.rb +0 -174
  440. data/tests/stats_mt.rb +0 -16
  441. data/tests/sum.rb +0 -98
  442. data/tests/sys.rb +0 -323
  443. data/tests/tensor.rb +0 -419
  444. data/tests/vector/vector_complex_test.rb +0 -101
  445. data/tests/vector/vector_test.rb +0 -141
  446. data/tests/wavelet.rb +0 -142
data/ext/cqp.c DELETED
@@ -1,283 +0,0 @@
1
- #ifdef HAVE_GSL_GSL_CQP_H
2
-
3
- #include "rb_gsl.h"
4
- #include "gsl/gsl_cqp.h"
5
-
6
- static const gsl_cqpminimizer_type* type_by_string(VALUE t);
7
- static const gsl_cqpminimizer_type* get_type(VALUE t)
8
- {
9
-
10
- switch (TYPE(t)) {
11
- case T_STRING:
12
- return type_by_string(t);
13
- break;
14
- default:
15
- rb_raise(rb_eTypeError, "Wrong argument type %s.", rb_class2name(CLASS_OF(t)));
16
- }
17
- }
18
-
19
- static const gsl_cqpminimizer_type* type_by_string(VALUE t)
20
- {
21
- char *name;
22
- name = STR2CSTR(t);
23
- if (strcmp(name, "mg_pdip") == 0) {
24
- return gsl_cqpminimizer_mg_pdip;
25
- } else {
26
- rb_raise(rb_eRuntimeError, "Unknown minimizer type %s.", name);
27
- }
28
- return NULL; /* never reach here */
29
- }
30
-
31
- static VALUE rb_cqpminimizer_alloc(VALUE klass, VALUE t, VALUE n, VALUE me, VALUE mi)
32
- {
33
- gsl_cqpminimizer *m;
34
- m = gsl_cqpminimizer_alloc(get_type(t), (size_t) FIX2INT(n), (size_t) FIX2INT(me), (size_t) FIX2INT(mi));
35
- return Data_Wrap_Struct(klass, 0, gsl_cqpminimizer_free, m);
36
- }
37
-
38
- static VALUE rb_cqpminimizer_set(VALUE obj, VALUE data)
39
- {
40
- gsl_cqpminimizer *m;
41
- gsl_cqp_data *d;
42
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
43
- Data_Get_Struct(data, gsl_cqp_data, d);
44
- gsl_cqpminimizer_set(m, d);
45
- return Qtrue;
46
- }
47
-
48
- static VALUE rb_cqpminimizer_name(VALUE obj)
49
- {
50
- gsl_cqpminimizer *m;
51
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
52
- return rb_str_new2(gsl_cqpminimizer_name(m));
53
- }
54
-
55
- static VALUE rb_cqpminimizer_iterate(VALUE obj)
56
- {
57
- gsl_cqpminimizer *m;
58
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
59
- return INT2FIX(gsl_cqpminimizer_iterate(m));
60
- }
61
-
62
- static VALUE rb_cqpminimizer_x(VALUE obj)
63
- {
64
- gsl_cqpminimizer *m;
65
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
66
- return Data_Wrap_Struct(cgsl_vector_view, 0, NULL, gsl_cqpminimizer_x(m));
67
- }
68
-
69
- static VALUE rb_cqpminimizer_lm_eq(VALUE obj)
70
- {
71
- gsl_cqpminimizer *m;
72
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
73
- return Data_Wrap_Struct(cgsl_vector_view, 0, NULL, gsl_cqpminimizer_lm_eq(m));
74
- }
75
- static VALUE rb_cqpminimizer_lm_ineq(VALUE obj)
76
- {
77
- gsl_cqpminimizer *m;
78
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
79
- return Data_Wrap_Struct(cgsl_vector_view, 0, NULL, gsl_cqpminimizer_lm_ineq(m));
80
- }
81
- static VALUE rb_cqpminimizer_f(VALUE obj)
82
- {
83
- gsl_cqpminimizer *m;
84
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
85
- return rb_float_new(gsl_cqpminimizer_f(m));
86
- }
87
- static VALUE rb_cqpminimizer_gap(VALUE obj)
88
- {
89
- gsl_cqpminimizer *m;
90
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
91
- return rb_float_new(gsl_cqpminimizer_gap(m));
92
- }
93
- static VALUE rb_cqpminimizer_residuals_norm(VALUE obj)
94
- {
95
- gsl_cqpminimizer *m;
96
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
97
- return rb_float_new(gsl_cqpminimizer_residuals_norm(m));
98
- }
99
- /*
100
- static VALUE rb_cqpminimizer_minimum(VALUE obj)
101
- {
102
- gsl_cqpminimizer *m;
103
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
104
- return rb_float_new(gsl_cqpminimizer_minimum(m));
105
- }
106
- */
107
- static VALUE rb_cqpminimizer_test_convergence(VALUE obj, VALUE g, VALUE r)
108
- {
109
- gsl_cqpminimizer *m;
110
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
111
- return INT2FIX(gsl_cqpminimizer_test_convergence(m, NUM2DBL(g), NUM2DBL(r)));
112
- }
113
- static VALUE rb_cqpminimizer_test_infeasibility(VALUE obj, VALUE e)
114
- {
115
- gsl_cqpminimizer *m;
116
- Data_Get_Struct(obj, gsl_cqpminimizer, m);
117
- return INT2FIX(gsl_cqp_minimizer_test_infeasibility(m, NUM2DBL(e)));
118
- }
119
-
120
- static VALUE rb_cqp_data_alloc(VALUE klass)
121
- {
122
- gsl_cqp_data *d;
123
- d = (gsl_cqp_data*) malloc(sizeof(gsl_cqp_data));
124
- return Data_Wrap_Struct(klass, 0, free, d);
125
- }
126
-
127
- static VALUE rb_cqp_data_Q(VALUE obj)
128
- {
129
- gsl_cqp_data *d;
130
- Data_Get_Struct(obj, gsl_cqp_data, d);
131
- return Data_Wrap_Struct(cgsl_matrix_view, 0, NULL, d->Q);
132
- }
133
-
134
- static VALUE rb_cqp_data_q(VALUE obj)
135
- {
136
- gsl_cqp_data *d;
137
- Data_Get_Struct(obj, gsl_cqp_data, d);
138
- return Data_Wrap_Struct(cgsl_vector_view, 0, NULL, d->q);
139
- }
140
-
141
- static VALUE rb_cqp_data_A(VALUE obj)
142
- {
143
- gsl_cqp_data *d;
144
- Data_Get_Struct(obj, gsl_cqp_data, d);
145
- return Data_Wrap_Struct(cgsl_matrix_view, 0, NULL, d->A);
146
- }
147
-
148
- static VALUE rb_cqp_data_b(VALUE obj)
149
- {
150
- gsl_cqp_data *d;
151
- Data_Get_Struct(obj, gsl_cqp_data, d);
152
- return Data_Wrap_Struct(cgsl_vector_view, 0, NULL, d->b);
153
- }
154
-
155
- static VALUE rb_cqp_data_C(VALUE obj)
156
- {
157
- gsl_cqp_data *d;
158
- Data_Get_Struct(obj, gsl_cqp_data, d);
159
- return Data_Wrap_Struct(cgsl_matrix_view, 0, NULL, d->C);
160
- }
161
-
162
- static VALUE rb_cqp_data_d(VALUE obj)
163
- {
164
- gsl_cqp_data *d;
165
- Data_Get_Struct(obj, gsl_cqp_data, d);
166
- return Data_Wrap_Struct(cgsl_vector_view, 0, NULL, d->d);
167
- }
168
-
169
- static VALUE rb_cqp_data_set_Q(VALUE obj, VALUE mm)
170
- {
171
- gsl_cqp_data *d;
172
- gsl_matrix *m;
173
- Data_Get_Struct(obj, gsl_cqp_data, d);
174
- CHECK_MATRIX(mm);
175
- Data_Get_Struct(mm, gsl_matrix, m);
176
- d->Q = m;
177
- return Qtrue;
178
- }
179
-
180
- static VALUE rb_cqp_data_set_q(VALUE obj, VALUE vv)
181
- {
182
- gsl_cqp_data *d;
183
- gsl_vector *v;
184
- Data_Get_Struct(obj, gsl_cqp_data, d);
185
- CHECK_VECTOR(vv);
186
- Data_Get_Struct(vv, gsl_vector, v);
187
- d->q = v;
188
- return Qtrue;
189
- }
190
-
191
- static VALUE rb_cqp_data_set_A(VALUE obj, VALUE mm)
192
- {
193
- gsl_cqp_data *d;
194
- gsl_matrix *m;
195
- Data_Get_Struct(obj, gsl_cqp_data, d);
196
- CHECK_MATRIX(mm);
197
- Data_Get_Struct(mm, gsl_matrix, m);
198
- d->A = m;
199
- return Qtrue;
200
- }
201
-
202
- static VALUE rb_cqp_data_set_b(VALUE obj, VALUE vv)
203
- {
204
- gsl_cqp_data *d;
205
- gsl_vector *v;
206
- Data_Get_Struct(obj, gsl_cqp_data, d);
207
- CHECK_VECTOR(vv);
208
- Data_Get_Struct(vv, gsl_vector, v);
209
- d->b = v;
210
- return Qtrue;
211
- }
212
-
213
- static VALUE rb_cqp_data_set_C(VALUE obj, VALUE mm)
214
- {
215
- gsl_cqp_data *d;
216
- gsl_matrix *m;
217
- Data_Get_Struct(obj, gsl_cqp_data, d);
218
- CHECK_MATRIX(mm);
219
- Data_Get_Struct(mm, gsl_matrix, m);
220
- d->C = m;
221
- return Qtrue;
222
- }
223
-
224
- static VALUE rb_cqp_data_set_d(VALUE obj, VALUE vv)
225
- {
226
- gsl_cqp_data *d;
227
- gsl_vector *v;
228
- Data_Get_Struct(obj, gsl_cqp_data, d);
229
- CHECK_VECTOR(vv);
230
- Data_Get_Struct(vv, gsl_vector, v);
231
- d->d = v;
232
- return Qtrue;
233
- }
234
-
235
- void Init_cqp(VALUE module)
236
- {
237
- VALUE mCQP, cMinimizer, cData;
238
-
239
- mCQP = rb_define_module_under(module, "CQP");
240
- cMinimizer = rb_define_class_under(mCQP, "Minimizer", cGSL_Object);
241
- cData = rb_define_class_under(mCQP, "Data", cGSL_Object);
242
-
243
- rb_define_singleton_method(cMinimizer, "alloc", rb_cqpminimizer_alloc, 4);
244
-
245
- rb_define_method(cMinimizer, "set", rb_cqpminimizer_set, 1);
246
- rb_define_method(cMinimizer, "name", rb_cqpminimizer_name, 0);
247
- rb_define_method(cMinimizer, "iterate", rb_cqpminimizer_iterate, 0);
248
- rb_define_method(cMinimizer, "x", rb_cqpminimizer_x, 0);
249
- rb_define_method(cMinimizer, "lm_eq", rb_cqpminimizer_lm_eq, 0);
250
- rb_define_method(cMinimizer, "lm_ineq", rb_cqpminimizer_lm_ineq, 0);
251
- rb_define_method(cMinimizer, "f", rb_cqpminimizer_f, 0);
252
- rb_define_method(cMinimizer, "gap", rb_cqpminimizer_gap, 0);
253
- rb_define_method(cMinimizer, "residuals_norm", rb_cqpminimizer_residuals_norm, 0);
254
- /* rb_define_method(cMinimizer, "minimum", rb_cqpminimizer_minimum, 0); */
255
- rb_define_method(cMinimizer, "test_convergence", rb_cqpminimizer_test_convergence, 2);
256
- rb_define_method(cMinimizer, "test_infeasibility", rb_cqpminimizer_test_infeasibility, 1);
257
-
258
- /*****/
259
- rb_define_singleton_method(cData, "alloc", rb_cqp_data_alloc, 0);
260
-
261
- rb_define_method(cData, "Q", rb_cqp_data_Q, 0);
262
- rb_define_method(cData, "q", rb_cqp_data_q, 0);
263
- rb_define_method(cData, "A", rb_cqp_data_A, 0);
264
- rb_define_method(cData, "b", rb_cqp_data_b, 0);
265
- rb_define_method(cData, "C", rb_cqp_data_C, 0);
266
- rb_define_method(cData, "d", rb_cqp_data_d, 0);
267
-
268
- rb_define_method(cData, "set_Q", rb_cqp_data_set_Q, 1);
269
- rb_define_method(cData, "set_q", rb_cqp_data_set_q, 1);
270
- rb_define_method(cData, "set_A", rb_cqp_data_set_A, 1);
271
- rb_define_method(cData, "set_b", rb_cqp_data_set_b, 1);
272
- rb_define_method(cData, "set_C", rb_cqp_data_set_C, 1);
273
- rb_define_method(cData, "set_d", rb_cqp_data_set_d, 1);
274
- rb_define_alias(cData, "Q=", "set_Q");
275
- rb_define_alias(cData, "q=", "set_q");
276
- rb_define_alias(cData, "A=", "set_A");
277
- rb_define_alias(cData, "b=", "set_b");
278
- rb_define_alias(cData, "C=", "set_C");
279
- rb_define_alias(cData, "d=", "set_d");
280
- }
281
-
282
- #endif
283
-
@@ -1,295 +0,0 @@
1
- require 'mkmf'
2
-
3
-
4
- module GSL
5
- class Version
6
- def initialize(str)
7
- @str = str
8
- @ary = str.split(".").collect { |elm| elm.to_i }
9
- end
10
- def to_s; @str; end
11
- def inspect; @str; end
12
- def >=(ver)
13
- ary2 = ver.split(".").collect { |elm| elm.to_i }
14
- if @ary[0] > ary2[0]; return true; end
15
- if @ary[0] < ary2[0]; return false; end
16
- if @ary[1] > ary2[1]; return true; end
17
- if @ary[1] < ary2[1]; return false; end
18
- if @ary.size < ary2.size; return false; end
19
- if @ary.size == 3 and ary2.size == 3
20
- if @ary[2] < ary2[2]; return false; end
21
- end
22
- return true
23
- end
24
- def <(ver)
25
- ary2 = ver.split(".").collect { |elm| elm.to_i }
26
- if @ary[0] >= ary2[0]; return false; end
27
- if @ary[0] >= ary2[0]; return false; end
28
- return true
29
- end
30
- end
31
- end
32
-
33
- if /mingw/ =~ RUBY_PLATFORM
34
- GSL_CONFIG = "sh gsl-config"
35
- else
36
- GSL_CONFIG = "gsl-config"
37
- end
38
-
39
- def gsl_config()
40
- print("checking gsl cflags... ")
41
- IO.popen("#{GSL_CONFIG} --cflags") do |f|
42
- cflags = f.gets.chomp
43
- puts(cflags)
44
- $CFLAGS += " " + cflags
45
- end
46
-
47
- IO.popen("#{GSL_CONFIG} --libs") do |f|
48
- libs = f.gets.chomp
49
- dir_config("cblas")
50
- dir_config("atlas")
51
- if have_library("cblas") and have_library("atlas")
52
- libs.gsub!("-lgslcblas", "-lcblas -latlas")
53
- $LOCAL_LIBS += " " + libs.gsub(" -lgslcblas", "")
54
- print("checking gsl libs... ")
55
- puts(libs)
56
- else
57
- print("checking gsl libs... ")
58
- puts(libs)
59
- $LOCAL_LIBS += " " + libs
60
- end
61
- end
62
-
63
- end
64
-
65
- def check_version(configfile)
66
-
67
- print("checking gsl version... ")
68
- IO.popen("#{GSL_CONFIG} --version") do |f|
69
- ver = GSL::Version.new(f.gets.chomp)
70
- puts(ver)
71
- configfile.printf("#ifndef GSL_VERSION\n#define GSL_VERSION \"#{ver}\"\n#endif\n")
72
-
73
- if ver >= "0.9.4"
74
- configfile.printf("#ifndef GSL_0_9_4_LATER\n#define GSL_0_9_4_LATER\n#endif\n")
75
- else
76
- configfile.close
77
- raise("Ruby/GSL requires gsl-0.9.4 or later.")
78
- end
79
- if ver >= "1.0"
80
- configfile.printf("#ifndef GSL_1_0_LATER\n#define GSL_1_0_LATER\n#endif\n")
81
- end
82
- if ver >= "1.1"
83
- configfile.printf("#ifndef GSL_1_1_LATER\n#define GSL_1_1_LATER\n#endif\n")
84
- end
85
- if ver >= "1.1.1"
86
- configfile.printf("#ifndef GSL_1_1_1_LATER\n#define GSL_1_1_1_LATER\n#endif\n")
87
- end
88
- if ver >= "1.2"
89
- configfile.printf("#ifndef GSL_1_2_LATER\n#define GSL_1_2_LATER\n#endif\n")
90
- end
91
- if ver >= "1.3"
92
- configfile.printf("#ifndef GSL_1_3_LATER\n#define GSL_1_3_LATER\n#endif\n")
93
- end
94
- if ver >= "1.4"
95
- configfile.printf("#ifndef GSL_1_4_LATER\n#define GSL_1_4_LATER\n#endif\n")
96
- end
97
- if ver >= "1.4.90"
98
- configfile.printf("#ifndef GSL_1_4_9_LATER\n#define GSL_1_4_9_LATER\n#endif\n")
99
- end
100
-
101
- if ver >= "1.5.90"
102
- configfile.printf("#ifndef GSL_1_6_LATER\n#define GSL_1_6_LATER\n#endif\n")
103
- end
104
-
105
- if ver >= "1.7.90"
106
- configfile.printf("#ifndef GSL_1_8_LATER\n#define GSL_1_8_LATER\n#endif\n")
107
- end
108
- if ver >= "1.8.90"
109
- configfile.printf("#ifndef GSL_1_9_LATER\n#define GSL_1_9_LATER\n#endif\n")
110
- end
111
-
112
- if ver >= "1.9.90"
113
- configfile.printf("#ifndef GSL_1_10_LATER\n#define GSL_1_10_LATER\n#endif\n")
114
- end
115
- if ver < "1.4"
116
- configfile.printf("#ifndef GSL_CONST_OLD\n#define GSL_CONST_OLD\n#endif\n")
117
- end
118
-
119
- if ver >= "1.11"
120
- configfile.printf("#ifndef GSL_1_11_LATER\n#define GSL_1_11_LATER\n#endif\n")
121
- end
122
-
123
- if ver >= "1.12.90"
124
- configfile.printf("#ifndef GSL_1_13_LATER\n#define GSL_1_13_LATER\n#endif\n")
125
- end
126
-
127
- if ver >= "1.14"
128
- configfile.printf("#ifndef GSL_1_14_LATER\n#define GSL_1_14_LATER\n#endif\n")
129
- end
130
-
131
- if ver >= "1.15"
132
- configfile.printf("#ifndef GSL_1_15_LATER\n#define GSL_1_15_LATER\n#endif\n")
133
- end
134
-
135
- end
136
- end
137
-
138
- #####
139
-
140
- $CFLAGS ||= ''
141
- $CFLAGS += " -Wall -I../include "
142
-
143
- begin
144
- RB_GSL_CONFIG = File.open("../include/rb_gsl_config.h", "w")
145
- RB_GSL_CONFIG.printf("#ifndef ___RB_GSL_CONFIG_H___\n")
146
- RB_GSL_CONFIG.printf("#define ___RB_GSL_CONFIG_H___\n\n")
147
-
148
- check_version(RB_GSL_CONFIG)
149
-
150
- gsl_config()
151
-
152
- have_func("round")
153
-
154
- # Check GSL extensions
155
-
156
- if have_header("rngextra/rngextra.h")
157
- have_library("rngextra")
158
- end
159
-
160
- if have_header("qrngextra/qrngextra.h")
161
- have_library("qrngextra")
162
- end
163
-
164
- if have_header("ool/ool_version.h")
165
- have_library("ool")
166
- end
167
-
168
- if have_header("tensor/tensor.h")
169
- have_library("tensor")
170
- end
171
-
172
- if have_header("jacobi.h")
173
- have_library("jacobi")
174
- end
175
- if have_header("gsl/gsl_cqp.h")
176
- have_library("cqp")
177
- end
178
- if have_header("gsl/gsl_multimin_fsdf.h")
179
- have_library("bundle_method")
180
- end
181
-
182
- if have_library("gsl", "gsl_poly_solve_quartic")
183
- RB_GSL_CONFIG.printf("#ifndef HAVE_POLY_SOLVE_QUARTIC\n#define HAVE_POLY_SOLVE_QUARTIC\n#endif\n")
184
- end
185
- if have_library("gsl", "gsl_eigen_francis")
186
- RB_GSL_CONFIG.printf("#ifndef HAVE_EIGEN_FRANCIS\n#define HAVE_EIGEN_FRANCIS\n#endif\n")
187
- end
188
-
189
- if have_header("ndlinear/gsl_multifit_ndlinear.h")
190
- have_library("ndlinear")
191
- end
192
-
193
- # Added 2009/Apr/20
194
- if have_header("alf/alf.h")
195
- have_library("alf")
196
- end
197
-
198
- begin
199
- print("checking rb-gsl version...")
200
- IO.popen("cat ../VERSION") do |f|
201
- ver = GSL::Version.new(f.gets.chomp)
202
- puts(ver)
203
- RB_GSL_CONFIG.printf("#ifndef RUBY_GSL_VERSION\n#define RUBY_GSL_VERSION \"#{ver}\"\n#endif\n")
204
- end
205
- end
206
-
207
- RUBY_VERSION2 = GSL::Version.new(RUBY_VERSION)
208
-
209
- puts("checking ruby version... #{RUBY_VERSION2}")
210
- if RUBY_VERSION2 >= "1.8"
211
- RB_GSL_CONFIG.printf("#ifndef RUBY_1_8_LATER\n#define RUBY_1_8_LATER\n#endif\n")
212
-
213
- if find_executable("graph")
214
- RB_GSL_CONFIG.printf("#ifndef HAVE_GNU_GRAPH\n#define HAVE_GNU_GRAPH\n#endif\n")
215
- end
216
- else
217
- path = (path || ENV['PATH']).split(File::PATH_SEPARATOR)
218
- flag = 0
219
- print("checking for GNU graph... ")
220
- path.each do |dir|
221
- if File.executable?(file = File.join(dir, "graph"))
222
- puts("yes")
223
- RB_GSL_CONFIG.printf("#ifndef HAVE_GNU_GRAPH\n#define HAVE_GNU_GRAPH\n#endif\n")
224
- flag = 1
225
- break
226
- end
227
- end
228
- puts("no") if flag == 0
229
- end
230
- if RUBY_VERSION2 >= "1.9"
231
- RB_GSL_CONFIG.printf("#ifndef RUBY_1_9_LATER\n#define RUBY_1_9_LATER\n#endif\n")
232
- # Added 2010/Sep/29
233
- if RUBY_VERSION2 >= "1.9.2"
234
- RB_GSL_CONFIG.printf("#ifndef RUBY_1_9_2_LATER\n#define RUBY_1_9_2_LATER\n#endif\n")
235
- end
236
- end
237
-
238
- RB_GSL_CONFIG.printf("\n#endif\n")
239
- RB_GSL_CONFIG.close
240
-
241
- rescue
242
- raise("Check GSL>=0.9.4 is installed, and the command \"gsl-config\" is in search path.")
243
- end
244
-
245
- #narray_config = dir_config("narray")
246
- narray_config = dir_config('narray',$sitearchdir,$sitearchdir)
247
- # Try to find narray with RubyGems
248
- begin
249
- require 'rubygems'
250
- na_gemspec=Gem::Specification.find_by_path('narray.h')
251
- if na_gemspec
252
- narray_config = File.join(na_gemspec.full_gem_path, na_gemspec.require_path)
253
- $CPPFLAGS = " -I#{narray_config} "+$CPPFLAGS
254
- end
255
- rescue LoadError
256
- end
257
- have_narray_h = have_header("narray.h")
258
- if narray_config
259
- if RUBY_PLATFORM =~ /cygwin|mingw/
260
- # have_library("narray") || raise("ERROR: narray import library is not found")
261
- have_library("narray")
262
- end
263
- end
264
-
265
- tamu_anova_config = dir_config('tamu_anova',$sitearchdir,$sitearchdir)
266
- have_tamu_anova_h = have_header("tamu_anova/tamu_anova.h")
267
- if tamu_anova_config
268
- have_library("tamuanova")
269
- # if RUBY_PLATFORM =~ /cygwin|mingw/
270
- # have_library("tamuanova") || raise("ERROR: tamu_anova import library is not found")
271
- # end
272
- end
273
-
274
- File.open("../lib/gsl.rb", "w") do |file|
275
- if have_narray_h
276
- file.print("require('narray')\n")
277
- end
278
- # file.print("require('rb_gsl')\ninclude GSL\n")
279
- file.print("require('rb_gsl')\n")
280
- file.print("require('gsl/oper.rb')\n")
281
- end
282
-
283
- File.open("../lib/rbgsl.rb", "w") do |file|
284
- if have_narray_h
285
- file.print("require('narray')\n")
286
- end
287
- file.print("require('rb_gsl')\n")
288
- file.print("require('gsl/oper.rb')\n")
289
- end
290
-
291
- srcs = Dir.glob("*.c") - ["vector_source.c", "matrix_source.c", "tensor_source.c", "poly_source.c", "block_source.c"]
292
-
293
- $objs = srcs.collect { |f| f.sub(".c", ".o") }
294
-
295
- create_makefile("rb_gsl")