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/ool.c DELETED
@@ -1,879 +0,0 @@
1
- #ifdef HAVE_OOL_OOL_VERSION_H
2
- #include "rb_gsl.h"
3
- #include "rb_gsl_array.h"
4
- #include <ool/ool_conmin.h>
5
-
6
- static VALUE cool_conmin_function;
7
- static VALUE cool_conmin_constraint;
8
- static VALUE cool_conmin_pgrad;
9
- static VALUE cool_conmin_spg;
10
- static VALUE cool_conmin_gencan;
11
- static VALUE cool_conmin_pgrad_parameters;
12
- static VALUE cool_conmin_spg_parameters;
13
- static VALUE cool_conmin_gencan_parameters;
14
-
15
- #ifndef CHECK_OOL_CONMIN_FUNCTION
16
- #define CHECK_OOL_CONMIN_FUNCTION(x) if(CLASS_OF(x)!=cool_conmin_function)\
17
- rb_raise(rb_eTypeError,\
18
- "wrong argument type %s (OOL::Conmin::Function expected)",\
19
- rb_class2name(CLASS_OF(x)));
20
- #endif
21
-
22
- enum enum_ool_conmin_minimizer_type {
23
- OOL_CONMIN_PGRAD,
24
- OOL_CONMIN_SPG,
25
- OOL_CONMIN_GENCAN,
26
- };
27
-
28
- static const ool_conmin_minimizer_type* get_minimizer_type(VALUE t)
29
- {
30
- char name[64];
31
-
32
- switch (TYPE(t)) {
33
- case T_STRING:
34
- strcpy(name, STR2CSTR(t));
35
- if (str_tail_grep(name, "pgrad") == 0) {
36
- return ool_conmin_minimizer_pgrad;
37
- } else if (str_tail_grep(name, "spg") == 0) {
38
- return ool_conmin_minimizer_spg;
39
- } else if (str_tail_grep(name, "gencan") == 0) {
40
- return ool_conmin_minimizer_gencan;
41
- } else {
42
- rb_raise(rb_eTypeError, "%s: unknown minimizer type", name);
43
- }
44
- break;
45
- case T_FIXNUM:
46
- switch (FIX2INT(t)) {
47
- case OOL_CONMIN_PGRAD:
48
- return ool_conmin_minimizer_pgrad;
49
- break;
50
- case OOL_CONMIN_SPG:
51
- return ool_conmin_minimizer_spg;
52
- break;
53
- case OOL_CONMIN_GENCAN:
54
- return ool_conmin_minimizer_gencan;
55
- break;
56
- default:
57
- rb_raise(rb_eTypeError, "%d: unknown minimizer type", FIX2INT(t));
58
- break;
59
- }
60
- break;
61
- default:
62
- if (t == cool_conmin_pgrad) return ool_conmin_minimizer_pgrad;
63
- else if (t == cool_conmin_spg) return ool_conmin_minimizer_spg;
64
- else if (t == cool_conmin_gencan) return ool_conmin_minimizer_gencan;
65
- else rb_raise(rb_eTypeError, "type is given by a String or a Fixnum");
66
- break;
67
- }
68
- }
69
-
70
- static void def_const(VALUE module)
71
- {
72
- rb_define_const(module, "CONTINUE", INT2FIX(OOL_CONTINUE));
73
- rb_define_const(module, "SUCCESS", INT2FIX(OOL_SUCCESS));
74
- }
75
-
76
-
77
- static VALUE rb_ool_conmin_minimizer_set(int argc, VALUE *argv, VALUE obj);
78
- static VALUE rb_ool_conmin_minimizer_alloc(int argc, VALUE *argv, VALUE klass)
79
- {
80
- ool_conmin_minimizer *m;
81
- VALUE obj;
82
- if (argc < 2) rb_raise(rb_eArgError, "Too few arguments (%d for >= 2)", argc);
83
- m = ool_conmin_minimizer_alloc(get_minimizer_type(argv[0]), FIX2INT(argv[1]));
84
- obj = Data_Wrap_Struct(klass, 0, ool_conmin_minimizer_free, m);
85
- if (argc > 2) rb_ool_conmin_minimizer_set(argc-2, argv+2, obj);
86
- return obj;
87
- }
88
-
89
- static void* get_parameter(const ool_conmin_minimizer_type *T, ool_conmin_pgrad_parameters *Pp,
90
- ool_conmin_spg_parameters *Ps, ool_conmin_gencan_parameters *Pg, VALUE ary);
91
- static VALUE rb_ool_conmin_minimizer_set(int argc, VALUE *argv, VALUE obj)
92
- {
93
- ool_conmin_minimizer *m;
94
- ool_conmin_function *F;
95
- ool_conmin_constraint *C;
96
- gsl_vector *v;
97
- ool_conmin_pgrad_parameters Pp;
98
- ool_conmin_spg_parameters Ps;
99
- ool_conmin_gencan_parameters Pg;
100
- void *P;
101
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
102
- switch (argc) {
103
- case 3:
104
- if (CLASS_OF(argv[0]) != cool_conmin_function)
105
- rb_raise(rb_eTypeError, "Wrong argument type 0 (OOL::Conmin::Function expected)");
106
- if (CLASS_OF(argv[1]) != cool_conmin_constraint)
107
- rb_raise(rb_eTypeError, "Wrong argument type 1 (OOL::Conmin::Constraint expected)");
108
- if (!VECTOR_P(argv[2]))
109
- rb_raise(rb_eTypeError, "Wrong argument type 2 (GSL::Vector expected)");
110
- Data_Get_Struct(argv[0], ool_conmin_function, F);
111
- Data_Get_Struct(argv[1], ool_conmin_constraint, C);
112
- Data_Get_Struct(argv[2], gsl_vector, v);
113
- P = get_parameter(m->type, &Pp, &Ps, &Pg, Qnil);
114
- ool_conmin_minimizer_set(m, F, C, v, P);
115
- break;
116
- case 4:
117
- if (CLASS_OF(argv[0]) != cool_conmin_function)
118
- rb_raise(rb_eTypeError, "Wrong argument type 0 (OOL::Conmin::Function expected)");
119
- if (CLASS_OF(argv[1]) != cool_conmin_constraint)
120
- rb_raise(rb_eTypeError, "Wrong argument type 1 (OOL::Conmin::Constraint expected)");
121
- if (!VECTOR_P(argv[2]))
122
- rb_raise(rb_eTypeError, "Wrong argument type 2 (GSL::Vector expected)");
123
- if (!rb_obj_is_kind_of(argv[3], rb_cArray) && argv[3] != Qnil)
124
- rb_raise(rb_eTypeError, "Wrong argument type 3 (Array expected)");
125
- Data_Get_Struct(argv[0], ool_conmin_function, F);
126
- Data_Get_Struct(argv[1], ool_conmin_constraint, C);
127
- Data_Get_Struct(argv[2], gsl_vector, v);
128
- P = get_parameter(m->type, &Pp, &Ps, &Pg, argv[3]);
129
- ool_conmin_minimizer_set(m, F, C, v, P);
130
- break;
131
- default:
132
- rb_raise(rb_eArgError, "Wrong number of arguments (%d for 3 or 4)", argc);
133
- }
134
- return obj;
135
- }
136
-
137
- static void* get_parameter(const ool_conmin_minimizer_type *T, ool_conmin_pgrad_parameters *Pp,
138
- ool_conmin_spg_parameters *Ps, ool_conmin_gencan_parameters *Pg, VALUE ary)
139
- {
140
- if (T == ool_conmin_minimizer_pgrad) {
141
- if (ary == Qnil) {
142
- ool_conmin_parameters_default(T, (void*) Pp);
143
- } else {
144
- Pp->fmin = NUM2DBL(rb_ary_entry(ary, 0));
145
- Pp->tol = NUM2DBL(rb_ary_entry(ary, 1));
146
- Pp->alpha = NUM2DBL(rb_ary_entry(ary, 2));
147
- Pp->sigma1 = NUM2DBL(rb_ary_entry(ary, 3));
148
- Pp->sigma2 = NUM2DBL(rb_ary_entry(ary, 4));
149
- }
150
- return (void*) Pp;
151
- } else if (T == ool_conmin_minimizer_spg) {
152
- if (ary == Qnil) {
153
- ool_conmin_parameters_default(T, (void*) Ps);
154
- } else {
155
- Ps->fmin = NUM2DBL(rb_ary_entry(ary, 0));
156
- Ps->tol = NUM2DBL(rb_ary_entry(ary, 1));
157
- Ps->M = NUM2DBL(rb_ary_entry(ary, 2));
158
- Ps->alphamin = NUM2DBL(rb_ary_entry(ary, 3));
159
- Ps->alphamax = NUM2DBL(rb_ary_entry(ary, 4));
160
- Ps->gamma = NUM2DBL(rb_ary_entry(ary, 5));
161
- Ps->sigma2 = NUM2DBL(rb_ary_entry(ary, 6));
162
- Ps->sigma2 = NUM2DBL(rb_ary_entry(ary, 7));
163
- }
164
- return (void*) Ps;
165
- } else {
166
- if (ary == Qnil) {
167
- ool_conmin_parameters_default(T, (void*) Pg);
168
- } else {
169
- Pg->epsgpen = NUM2DBL(rb_ary_entry(ary, 0));
170
- Pg->epsgpsn = NUM2DBL(rb_ary_entry(ary, 1));
171
- Pg->fmin = NUM2DBL(rb_ary_entry(ary, 2));
172
- Pg->udelta0 = NUM2DBL(rb_ary_entry(ary, 3));
173
- Pg->ucgmia = NUM2DBL(rb_ary_entry(ary, 4));
174
- Pg->ucgmib = NUM2DBL(rb_ary_entry(ary, 5));
175
- Pg->cg_scre = FIX2INT(rb_ary_entry(ary, 6));
176
- Pg->cg_gpnf = NUM2DBL(rb_ary_entry(ary, 7));
177
- Pg->cg_epsi = NUM2DBL(rb_ary_entry(ary, 8));
178
- Pg->cg_epsf = NUM2DBL(rb_ary_entry(ary, 9));
179
- Pg->cg_epsnqmp = NUM2DBL(rb_ary_entry(ary, 10));
180
- Pg->cg_maxitnqmp = (size_t) FIX2INT(rb_ary_entry(ary, 11));
181
- Pg->nearlyq = FIX2INT(rb_ary_entry(ary, 12));
182
- Pg->nint = NUM2DBL(rb_ary_entry(ary, 13));
183
- Pg->next = NUM2DBL(rb_ary_entry(ary, 14));
184
- Pg->mininterp = (size_t) FIX2INT(rb_ary_entry(ary, 15));
185
- Pg->maxextrap = (size_t) FIX2INT(rb_ary_entry(ary, 16));
186
- Pg->trtype = FIX2INT(rb_ary_entry(ary, 17));
187
- Pg->eta = NUM2DBL(rb_ary_entry(ary, 18));
188
- Pg->delmin = NUM2DBL(rb_ary_entry(ary, 19));
189
- Pg->lspgmi = NUM2DBL(rb_ary_entry(ary, 20));
190
- Pg->lspgma = NUM2DBL(rb_ary_entry(ary, 21));
191
- Pg->theta = NUM2DBL(rb_ary_entry(ary, 22));
192
- Pg->gamma = NUM2DBL(rb_ary_entry(ary, 23));
193
- Pg->beta = NUM2DBL(rb_ary_entry(ary, 24));
194
- Pg->sigma1 = NUM2DBL(rb_ary_entry(ary, 25));
195
- Pg->sigma2 = NUM2DBL(rb_ary_entry(ary, 26));
196
- Pg->epsrel = NUM2DBL(rb_ary_entry(ary, 27));
197
- Pg->epsabs = NUM2DBL(rb_ary_entry(ary, 28));
198
- Pg->infrel = NUM2DBL(rb_ary_entry(ary, 29));
199
- Pg->infabs = NUM2DBL(rb_ary_entry(ary, 30));
200
- }
201
- return (void*) Pg;
202
- }
203
- }
204
-
205
- static VALUE create_parameters_ary_pgrad(ool_conmin_pgrad_parameters *Pp)
206
- {
207
- VALUE ary;
208
- ary = rb_ary_new2(5);
209
- rb_ary_store(ary, 0, rb_float_new(Pp->fmin));
210
- rb_ary_store(ary, 1, rb_float_new(Pp->tol));
211
- rb_ary_store(ary, 2, rb_float_new(Pp->alpha));
212
- rb_ary_store(ary, 3, rb_float_new(Pp->sigma1));
213
- rb_ary_store(ary, 4, rb_float_new(Pp->sigma2));
214
- return ary;
215
- }
216
-
217
- static VALUE create_parameters_ary_spg(ool_conmin_spg_parameters *Ps)
218
- {
219
- VALUE ary;
220
- ary = rb_ary_new2(8);
221
- rb_ary_store(ary, 0, rb_float_new(Ps->fmin));
222
- rb_ary_store(ary, 1, rb_float_new(Ps->tol));
223
- rb_ary_store(ary, 2, rb_float_new(Ps->M));
224
- rb_ary_store(ary, 3, rb_float_new(Ps->alphamin));
225
- rb_ary_store(ary, 4, rb_float_new(Ps->alphamax));
226
- rb_ary_store(ary, 5, rb_float_new(Ps->gamma));
227
- rb_ary_store(ary, 6, rb_float_new(Ps->sigma2));
228
- rb_ary_store(ary, 7, rb_float_new(Ps->sigma2));
229
- return ary;
230
- }
231
-
232
- static VALUE create_parameters_ary_gencan(ool_conmin_gencan_parameters *Pg)
233
- {
234
- VALUE ary;
235
- ary = rb_ary_new2(31);
236
- rb_ary_store(ary, 0, rb_float_new(Pg->epsgpen));
237
- rb_ary_store(ary, 1, rb_float_new(Pg->epsgpsn));
238
- rb_ary_store(ary, 2, rb_float_new(Pg->fmin));
239
- rb_ary_store(ary, 3, rb_float_new(Pg->udelta0));
240
- rb_ary_store(ary, 4, rb_float_new(Pg->ucgmia));
241
- rb_ary_store(ary, 5, rb_float_new(Pg->ucgmib));
242
- rb_ary_store(ary, 6, INT2FIX(Pg->cg_scre));
243
- rb_ary_store(ary, 7, rb_float_new(Pg->cg_gpnf));
244
- rb_ary_store(ary, 8, rb_float_new(Pg->cg_epsi));
245
- rb_ary_store(ary, 9, rb_float_new(Pg->cg_epsf));
246
- rb_ary_store(ary, 10, rb_float_new(Pg->cg_epsnqmp));
247
- rb_ary_store(ary, 11, INT2FIX((int) Pg->cg_maxitnqmp));
248
- rb_ary_store(ary, 12, INT2FIX(Pg->nearlyq));
249
- rb_ary_store(ary, 13, rb_float_new(Pg->nint));
250
- rb_ary_store(ary, 14, rb_float_new(Pg->next));
251
- rb_ary_store(ary, 15, INT2FIX((int)Pg->mininterp));
252
- rb_ary_store(ary, 16, INT2FIX((int)Pg->maxextrap));
253
- rb_ary_store(ary, 17, INT2FIX(Pg->trtype));
254
- rb_ary_store(ary, 18, rb_float_new(Pg->eta));
255
- rb_ary_store(ary, 19, rb_float_new(Pg->delmin));
256
- rb_ary_store(ary, 20, rb_float_new(Pg->lspgmi));
257
- rb_ary_store(ary, 21, rb_float_new(Pg->lspgma));
258
- rb_ary_store(ary, 22, rb_float_new(Pg->theta));
259
- rb_ary_store(ary, 23, rb_float_new(Pg->gamma));
260
- rb_ary_store(ary, 24, rb_float_new(Pg->beta));
261
- rb_ary_store(ary, 25, rb_float_new(Pg->sigma1));
262
- rb_ary_store(ary, 26, rb_float_new(Pg->sigma2));
263
- rb_ary_store(ary, 27, rb_float_new(Pg->epsrel));
264
- rb_ary_store(ary, 28, rb_float_new(Pg->epsabs));
265
- rb_ary_store(ary, 29, rb_float_new(Pg->infrel));
266
- rb_ary_store(ary, 30, rb_float_new(Pg->infabs));
267
- return ary;
268
- }
269
- static VALUE rb_ool_conmin_minimizer_parameters_get(VALUE obj)
270
- {
271
- ool_conmin_minimizer *m;
272
- ool_conmin_pgrad_parameters *Pp;
273
- ool_conmin_spg_parameters *Ps;
274
- ool_conmin_gencan_parameters *Pg;
275
- void *P;
276
- VALUE ary;
277
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
278
- ool_conmin_parameters_get(m, P);
279
- if (m->type == ool_conmin_minimizer_pgrad) {
280
- Pp = (ool_conmin_pgrad_parameters*) P;
281
- ary = create_parameters_ary_pgrad(Pp);
282
- } else if (m->type == ool_conmin_minimizer_spg) {
283
- Ps = (ool_conmin_spg_parameters*) P;
284
- ary = create_parameters_ary_spg(Ps);
285
- } else {
286
- Pg = (ool_conmin_gencan_parameters*) P;
287
- ary = create_parameters_ary_gencan(Pg);
288
- }
289
- return ary;
290
- }
291
-
292
- static VALUE rb_ool_conmin_minimizer_parameters_set(VALUE obj, VALUE params)
293
- {
294
- ool_conmin_minimizer *m;
295
- ool_conmin_pgrad_parameters *Pp;
296
- ool_conmin_spg_parameters *Ps;
297
- ool_conmin_gencan_parameters *Pg;
298
- void *P;
299
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
300
- P = get_parameter(m->type, Pp, Ps, Pg, params);
301
- ool_conmin_parameters_set(m, P);
302
- return params;
303
- }
304
-
305
- static VALUE rb_ool_conmin_minimizer_name(VALUE obj)
306
- {
307
- ool_conmin_minimizer *m;
308
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
309
- return rb_str_new2(ool_conmin_minimizer_name(m));
310
- }
311
- static VALUE rb_ool_conmin_minimizer_f(VALUE obj)
312
- {
313
- ool_conmin_minimizer *m;
314
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
315
- return rb_float_new(m->f);
316
- }
317
- static VALUE rb_ool_conmin_minimizer_x(VALUE obj)
318
- {
319
- ool_conmin_minimizer *m;
320
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
321
- return Data_Wrap_Struct(cgsl_vector, 0, NULL, m->x);
322
- }
323
- static VALUE rb_ool_conmin_minimizer_gradient(VALUE obj)
324
- {
325
- ool_conmin_minimizer *m;
326
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
327
- return Data_Wrap_Struct(cgsl_vector, 0, NULL, m->gradient);
328
- }
329
- static VALUE rb_ool_conmin_minimizer_minimum(VALUE obj)
330
- {
331
- ool_conmin_minimizer *m;
332
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
333
- return rb_float_new(ool_conmin_minimizer_minimum(m));
334
- }
335
- static VALUE rb_ool_conmin_minimizer_dx(VALUE obj)
336
- {
337
- ool_conmin_minimizer *m;
338
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
339
- return Data_Wrap_Struct(cgsl_vector, 0, NULL, m->dx);
340
- }
341
- static VALUE rb_ool_conmin_minimizer_size(VALUE obj)
342
- {
343
- ool_conmin_minimizer *m;
344
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
345
- return rb_float_new(ool_conmin_minimizer_size(m));
346
- }
347
- static VALUE rb_ool_conmin_minimizer_fcount(VALUE obj)
348
- {
349
- ool_conmin_minimizer *m;
350
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
351
- return INT2FIX((int) ool_conmin_minimizer_fcount(m));
352
- }
353
- static VALUE rb_ool_conmin_minimizer_gcount(VALUE obj)
354
- {
355
- ool_conmin_minimizer *m;
356
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
357
- return INT2FIX((int) ool_conmin_minimizer_gcount(m));
358
- }
359
- static VALUE rb_ool_conmin_minimizer_hcount(VALUE obj)
360
- {
361
- ool_conmin_minimizer *m;
362
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
363
- return INT2FIX((int) ool_conmin_minimizer_hcount(m));
364
- }
365
- static VALUE rb_ool_conmin_minimizer_is_optimal(VALUE obj)
366
- {
367
- ool_conmin_minimizer *m;
368
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
369
- return INT2FIX((int) ool_conmin_is_optimal(m));
370
- }
371
- static VALUE rb_ool_conmin_minimizer_is_optimal2(VALUE obj)
372
- {
373
- ool_conmin_minimizer *m;
374
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
375
- if (ool_conmin_is_optimal(m)) return Qtrue;
376
- else return Qfalse;
377
- }
378
- static VALUE rb_ool_conmin_minimizer_iterate(VALUE obj)
379
- {
380
- ool_conmin_minimizer *m;
381
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
382
- return INT2FIX((int) ool_conmin_minimizer_iterate(m));
383
- }
384
- static VALUE rb_ool_conmin_minimizer_restart(VALUE obj)
385
- {
386
- ool_conmin_minimizer *m;
387
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
388
- return INT2FIX((int) ool_conmin_minimizer_restart(m));
389
- }
390
-
391
- static VALUE rb_ool_conmin_pgrad_parameters_default(VALUE klass);
392
- static VALUE rb_ool_conmin_spg_parameters_default(VALUE klass);
393
- static VALUE rb_ool_conmin_gencan_parameters_default(VALUE klass);
394
-
395
- static VALUE rb_ool_conmin_minimizer_parameters_default(VALUE obj)
396
- {
397
- ool_conmin_minimizer *m;
398
- Data_Get_Struct(obj, ool_conmin_minimizer, m);
399
- if (m->type == ool_conmin_minimizer_spg) {
400
- return rb_ool_conmin_spg_parameters_default(cool_conmin_spg);
401
- } else if (m->type == ool_conmin_minimizer_pgrad) {
402
- return rb_ool_conmin_pgrad_parameters_default(cool_conmin_pgrad);
403
- } else if (m->type == ool_conmin_minimizer_gencan) {
404
- return rb_ool_conmin_gencan_parameters_default(cool_conmin_gencan);
405
- } else {
406
- rb_raise(rb_eRuntimeError, "Unkowm minimizer type.");
407
- }
408
- return Qnil; /* never reaches here */
409
- }
410
-
411
- /***/
412
-
413
- static void rb_ool_conmin_function_mark(ool_conmin_function *F)
414
- {
415
- rb_gc_mark((VALUE) F->params);
416
- }
417
-
418
- static double rb_ool_conmin_function_f(const gsl_vector *x, void *p);
419
- static void rb_ool_conmin_function_df(const gsl_vector *x, void *p, gsl_vector *g);
420
- static void rb_ool_conmin_function_fdf(const gsl_vector *x, void *p,
421
- double *f, gsl_vector *g);
422
- static void rb_ool_conmin_function_Hv(const gsl_vector *X, void *params,
423
- const gsl_vector *V, gsl_vector *hv);
424
- static void set_functions(int argc, VALUE *argv, ool_conmin_function *F);
425
- static void set_params(ool_conmin_function *F, VALUE p);
426
- static VALUE rb_ool_conmin_function_set_n(VALUE obj, VALUE nn);
427
- static VALUE rb_ool_conmin_function_set_functions(int argc, VALUE *argv, VALUE obj);
428
- static VALUE rb_ool_conmin_function_set(int argc, VALUE *argv, VALUE obj);
429
-
430
- static VALUE rb_ool_conmin_function_alloc(int argc, VALUE *argv, VALUE klass)
431
- {
432
- ool_conmin_function *F = NULL;
433
- VALUE ary, obj;
434
-
435
- F = ALLOC(ool_conmin_function);
436
- F->f = &rb_ool_conmin_function_f;
437
- F->df = &rb_ool_conmin_function_df;
438
- F->fdf = &rb_ool_conmin_function_fdf;
439
- F->Hv = &rb_ool_conmin_function_Hv;
440
- F->n = 0;
441
- ary = rb_ary_new2(5);
442
-
443
- F->params = (void *) ary;
444
- rb_ary_store(ary, 0, Qnil); /* proc f */
445
- rb_ary_store(ary, 1, Qnil); /* proc df */
446
- rb_ary_store(ary, 2, Qnil); /* proc fdf */
447
- rb_ary_store(ary, 3, Qnil); /* proc Hv */
448
- rb_ary_store(ary, 4, Qnil); /* params */
449
- // set_functions(argc, argv, F);
450
- obj = Data_Wrap_Struct(klass, rb_ool_conmin_function_mark, free, F);
451
- rb_ool_conmin_function_set(argc, argv, obj);
452
- return obj;
453
- }
454
-
455
- static VALUE rb_ool_conmin_function_set(int argc, VALUE *argv, VALUE obj)
456
- {
457
- ool_conmin_function *F;
458
- Data_Get_Struct(obj, ool_conmin_function, F);
459
- switch (argc) {
460
- case 0:
461
- break;
462
- case 1:
463
- rb_ool_conmin_function_set_n(obj, argv[0]);
464
- break;
465
- case 4:
466
- set_functions(argc, argv, F);
467
- break;
468
- case 5:
469
- if (FIXNUM_P(argv[0])) {
470
- rb_ool_conmin_function_set_n(obj, argv[0]);
471
- set_functions(argc-1, argv+1, F);
472
- } else {
473
- set_functions(argc-1, argv, F);
474
- set_params(F, argv[argc-1]);
475
- }
476
- break;
477
- case 6:
478
- rb_ool_conmin_function_set_n(obj, argv[0]);
479
- set_functions(argc-2, argv+1, F);
480
- set_params(F, argv[argc-1]);
481
- break;
482
- default:
483
- rb_raise(rb_eArgError, "Wrong number of arguments.");
484
- }
485
- return obj;
486
- }
487
-
488
- static VALUE rb_ool_conmin_function_set_n(VALUE obj, VALUE nn)
489
- {
490
- ool_conmin_function *F = NULL;
491
- if (FIXNUM_P(nn)) {
492
- Data_Get_Struct(obj, ool_conmin_function, F);
493
- F->n = (size_t) FIX2INT(nn);
494
- } else {
495
- rb_raise(rb_eArgError, "Wrong argument type %s (Fixnum expected)",
496
- rb_class2name(CLASS_OF(nn)));
497
- }
498
- return nn;
499
- }
500
-
501
- static VALUE rb_ool_conmin_function_n(VALUE obj)
502
- {
503
- ool_conmin_function *F = NULL;
504
- Data_Get_Struct(obj, ool_conmin_function, F);
505
- return INT2FIX((int) F->n);
506
- }
507
- static double rb_ool_conmin_function_f(const gsl_vector *x, void *p)
508
- {
509
- VALUE vx, proc, vp, result, ary;
510
- vx = Data_Wrap_Struct(cgsl_vector, 0, NULL, (gsl_vector *) x);
511
- ary = (VALUE) p;
512
- proc = rb_ary_entry(ary, 0);
513
- vp = rb_ary_entry(ary, RARRAY_LEN(ary)-1);
514
- if (NIL_P(vp)) result = rb_funcall(proc, RBGSL_ID_call, 1, vx);
515
- else result = rb_funcall(proc, RBGSL_ID_call, 2, vx, vp);
516
- return NUM2DBL(result);
517
- }
518
-
519
- static void rb_ool_conmin_function_df(const gsl_vector *x, void *p, gsl_vector *g)
520
- {
521
- VALUE vx, vg, proc, vp, ary;
522
- vx = Data_Wrap_Struct(cgsl_vector, 0, NULL, (gsl_vector *) x);
523
- vg = Data_Wrap_Struct(cgsl_vector, 0, NULL, g);
524
- ary = (VALUE) p;
525
- proc = rb_ary_entry(ary, 1);
526
- vp = rb_ary_entry(ary, RARRAY_LEN(ary)-1);
527
- if (NIL_P(vp)) {
528
- rb_funcall(proc, RBGSL_ID_call, 2, vx, vg);
529
- } else {
530
- rb_funcall(proc, RBGSL_ID_call, 3, vx, vp, vg);
531
- }
532
- }
533
-
534
- static void rb_ool_conmin_function_fdf(const gsl_vector *x, void *p,
535
- double *f, gsl_vector *g)
536
- {
537
- VALUE vx, vf, vg, proc_fdf, proc_f, proc_df, vp, ary, result;
538
- vx = Data_Wrap_Struct(cgsl_vector, 0, NULL, (gsl_vector *) x);
539
- vg = Data_Wrap_Struct(cgsl_vector, 0, NULL, g);
540
- vf = rb_float_new(*f);
541
- ary = (VALUE) p;
542
- proc_f = rb_ary_entry(ary, 0);
543
- proc_df = rb_ary_entry(ary, 1);
544
- proc_fdf = rb_ary_entry(ary, 2);
545
- vp = rb_ary_entry(ary, RARRAY_LEN(ary)-1);
546
- if (NIL_P(vp)) {
547
- result = rb_funcall(proc_f, RBGSL_ID_call, 1, vx);
548
- rb_funcall(proc_df, RBGSL_ID_call, 2, vx, vg);
549
- } else {
550
- result = rb_funcall(proc_f, RBGSL_ID_call, 2, vx, vp);
551
- rb_funcall(proc_df, RBGSL_ID_call, 3, vx, vp, vg);
552
- }
553
- *f = NUM2DBL(result);
554
- }
555
-
556
- static void rb_ool_conmin_function_Hv(const gsl_vector *X, void *params,
557
- const gsl_vector *V, gsl_vector *hv)
558
- {
559
- VALUE vX, vV, vHv, ary, proc_Hv, vp;
560
- vX = Data_Wrap_Struct(cgsl_vector, 0, NULL, (gsl_vector*) X);
561
- vV = Data_Wrap_Struct(cgsl_vector, 0, NULL, (gsl_vector*) V);
562
- vHv = Data_Wrap_Struct(cgsl_vector, 0, NULL, (gsl_vector*) hv);
563
- ary = (VALUE) params;
564
- proc_Hv = rb_ary_entry(ary, 3);
565
- vp = rb_ary_entry(ary, RARRAY_LEN(ary)-1);
566
- if (NIL_P(vp)) {
567
- rb_funcall(proc_Hv, RBGSL_ID_call, 3, vX, vV, vHv);
568
- } else {
569
- rb_funcall(proc_Hv, RBGSL_ID_call, 4, vX, vp, vV, vHv);
570
- }
571
- }
572
-
573
- static VALUE rb_ool_conmin_function_set_functions(int argc, VALUE *argv, VALUE obj)
574
- {
575
- ool_conmin_function *F;
576
- Data_Get_Struct(obj, ool_conmin_function, F);
577
- set_functions(argc, argv, F);
578
- return obj;
579
- }
580
-
581
- static void set_functions(int argc, VALUE *argv, ool_conmin_function *F)
582
- {
583
- VALUE ary;
584
- size_t i;
585
- if (F->params == NULL) {
586
- ary = rb_ary_new2(5);
587
- /* (VALUE) F->params = ary;*/
588
- F->params = (void *) ary;
589
- } else {
590
- ary = (VALUE) F->params;
591
- }
592
- switch (argc) {
593
- case 4:
594
- for (i = 0; i < argc; i++) rb_ary_store(ary, i, argv[i]);
595
- break;
596
- default:
597
- rb_raise(rb_eArgError,"Wrong number of arguments (%d for 4)", argc);
598
- }
599
- }
600
-
601
- static VALUE rb_ool_conmin_function_set_f(VALUE obj, VALUE proc)
602
- {
603
- ool_conmin_function *F;
604
- VALUE ary;
605
- Data_Get_Struct(obj, ool_conmin_function, F);
606
- if (F->params == NULL) {
607
- ary = rb_ary_new2(5);
608
- F->params = (void *) ary;
609
- } else {
610
- ary = (VALUE) F->params;
611
- }
612
- rb_ary_store(ary, 0, proc);
613
- return proc;
614
- }
615
-
616
- static VALUE rb_ool_conmin_function_set_df(VALUE obj, VALUE proc)
617
- {
618
- ool_conmin_function *F;
619
- VALUE ary;
620
- Data_Get_Struct(obj, ool_conmin_function, F);
621
- if (F->params == NULL) {
622
- ary = rb_ary_new2(5);
623
- F->params = (void *) ary;
624
- } else {
625
- ary = (VALUE) F->params;
626
- }
627
- rb_ary_store(ary, 1, proc);
628
- return proc;
629
- }
630
-
631
- static VALUE rb_ool_conmin_function_set_fdf(VALUE obj, VALUE proc)
632
- {
633
- ool_conmin_function *F;
634
- VALUE ary;
635
- Data_Get_Struct(obj, ool_conmin_function, F);
636
- if (F->params == NULL) {
637
- ary = rb_ary_new2(5);
638
- F->params = (void *) ary;
639
- } else {
640
- ary = (VALUE) F->params;
641
- }
642
- rb_ary_store(ary, 2, proc);
643
- return proc;
644
- }
645
-
646
- static VALUE rb_ool_conmin_function_set_Hv(VALUE obj, VALUE proc)
647
- {
648
- ool_conmin_function *F;
649
- VALUE ary;
650
- Data_Get_Struct(obj, ool_conmin_function, F);
651
- if (F->params == NULL) {
652
- ary = rb_ary_new2(5);
653
- F->params = (void *) ary;
654
- } else {
655
- ary = (VALUE) F->params;
656
- }
657
- rb_ary_store(ary, 3, proc);
658
- return proc;
659
- }
660
-
661
- static VALUE rb_ool_conmin_function_set_params(VALUE obj, VALUE p)
662
- {
663
- ool_conmin_function *F;
664
- Data_Get_Struct(obj, ool_conmin_function, F);
665
- set_params(F, p);
666
- return p;
667
- }
668
-
669
- static void set_params(ool_conmin_function *F, VALUE p)
670
- {
671
- VALUE ary;
672
- if (F->params == NULL) {
673
- ary = rb_ary_new2(5);
674
- /* (VALUE) F->params = ary;*/
675
- F->params = (void *) ary;
676
- } else {
677
- ary = (VALUE) F->params;
678
- }
679
- rb_ary_store(ary, 4, p);
680
- }
681
-
682
- static VALUE rb_ool_conmin_function_params(VALUE obj)
683
- {
684
- ool_conmin_function *F;
685
- Data_Get_Struct(obj, ool_conmin_function, F);
686
- return rb_ary_entry((VALUE) F->params, 4);;
687
- }
688
-
689
- static VALUE rb_ool_conmin_constraint_set(int argc, VALUE *argv, VALUE obj);
690
- static VALUE rb_ool_conmin_constraint_set_n(VALUE obj, VALUE n);
691
- static VALUE rb_ool_conmin_constraint_alloc(int argc, VALUE *argv, VALUE klass)
692
- {
693
- ool_conmin_constraint *C;
694
- VALUE obj;
695
- C = ALLOC(ool_conmin_constraint);
696
- C->n = 0;
697
- C->L = NULL;
698
- C->U = NULL;
699
-
700
- obj = Data_Wrap_Struct(klass, 0, free, C);
701
- rb_ool_conmin_constraint_set(argc, argv, obj);
702
- return obj;
703
- }
704
-
705
- static VALUE rb_ool_conmin_constraint_set_n(VALUE obj, VALUE n)
706
- {
707
- ool_conmin_constraint *C;
708
- if (!FIXNUM_P(n)) rb_raise(rb_eArgError, "Wrong argument type %s (Fixnum expected)",
709
- rb_class2name(CLASS_OF(n)));
710
- Data_Get_Struct(obj, ool_conmin_constraint, C);
711
- C->n = (size_t) FIX2INT(n);
712
- return n;
713
- }
714
-
715
- static VALUE rb_ool_conmin_constraint_set_L(VALUE obj, VALUE vL)
716
- {
717
- ool_conmin_constraint *C;
718
- gsl_vector *L;
719
- CHECK_VECTOR(vL);
720
- Data_Get_Struct(obj, ool_conmin_constraint, C);
721
- Data_Get_Struct(vL, gsl_vector, L);
722
- C->L = L;
723
- return vL;
724
- }
725
-
726
- static VALUE rb_ool_conmin_constraint_set_U(VALUE obj, VALUE vU)
727
- {
728
- ool_conmin_constraint *C;
729
- gsl_vector *U;
730
- CHECK_VECTOR(vU);
731
- Data_Get_Struct(obj, ool_conmin_constraint, C);
732
- Data_Get_Struct(vU, gsl_vector, U);
733
- C->U = U;
734
- return vU;
735
- }
736
-
737
- static VALUE rb_ool_conmin_constraint_set_LU(VALUE obj, VALUE vL, VALUE vU)
738
- {
739
- rb_ool_conmin_constraint_set_L(obj, vL);
740
- rb_ool_conmin_constraint_set_U(obj, vU);
741
- return obj;
742
- }
743
-
744
- static VALUE rb_ool_conmin_constraint_set(int argc, VALUE *argv, VALUE obj)
745
- {
746
- ool_conmin_constraint *C;
747
- Data_Get_Struct(obj, ool_conmin_constraint, C);
748
- switch (argc) {
749
- case 0:
750
- break;
751
- case 1:
752
- rb_ool_conmin_constraint_set_n(obj, argv[0]);
753
- break;
754
- case 2:
755
- rb_ool_conmin_constraint_set_LU(obj, argv[0], argv[1]);
756
- break;
757
- case 3:
758
- rb_ool_conmin_constraint_set_n(obj, argv[0]);
759
- rb_ool_conmin_constraint_set_LU(obj, argv[1], argv[2]);
760
- break;
761
- default:
762
- rb_raise(rb_eArgError, "Wrong number of arguments (%d for 1-3)", argc);
763
- }
764
- return obj;
765
- }
766
-
767
- static VALUE rb_ool_conmin_pgrad_parameters_default(VALUE klass)
768
- {
769
- ool_conmin_pgrad_parameters P;
770
- VALUE ary;
771
- ool_conmin_parameters_default(ool_conmin_minimizer_pgrad, (void*) &P);
772
- ary = create_parameters_ary_pgrad(&P);
773
- RBASIC(ary)->klass = cool_conmin_pgrad_parameters;
774
- return ary;
775
- }
776
-
777
- static VALUE rb_ool_conmin_spg_parameters_default(VALUE klass)
778
- {
779
- ool_conmin_spg_parameters P;
780
- VALUE ary;
781
- ool_conmin_parameters_default(ool_conmin_minimizer_spg, (void*) &P);
782
- ary = create_parameters_ary_spg(&P);
783
- RBASIC(ary)->klass = cool_conmin_spg_parameters;
784
- return ary;
785
- }
786
-
787
- static VALUE rb_ool_conmin_gencan_parameters_default(VALUE klass)
788
- {
789
- ool_conmin_gencan_parameters P;
790
- VALUE ary;
791
- ool_conmin_parameters_default(ool_conmin_minimizer_gencan, (void*) &P);
792
- ary = create_parameters_ary_gencan(&P);
793
- RBASIC(ary)->klass = cool_conmin_gencan_parameters;
794
- return ary;
795
- }
796
-
797
- /*************************************************/
798
- void Init_ool(VALUE module)
799
- {
800
- VALUE mOOL, mConmin;
801
- VALUE cool_conmin_minimizer;
802
-
803
- mOOL = rb_define_module("OOL");
804
- mConmin = rb_define_module_under(mOOL, "Conmin");
805
- cool_conmin_function = rb_define_class_under(mConmin, "Function", cgsl_function);
806
- cool_conmin_constraint = rb_define_class_under(mConmin, "Constraint", cGSL_Object);
807
- cool_conmin_minimizer = rb_define_class_under(mConmin, "Minimizer", cGSL_Object);
808
- cool_conmin_pgrad = rb_define_class_under(cool_conmin_minimizer, "Pgrad", cGSL_Object);
809
- cool_conmin_spg = rb_define_class_under(cool_conmin_minimizer, "Spg", cGSL_Object);
810
- cool_conmin_gencan = rb_define_class_under(cool_conmin_minimizer, "Gencan", cGSL_Object);
811
-
812
- def_const(mOOL);
813
-
814
- rb_define_singleton_method(cool_conmin_minimizer, "alloc", rb_ool_conmin_minimizer_alloc, -1);
815
- rb_define_method(cool_conmin_minimizer, "set", rb_ool_conmin_minimizer_set, -1);
816
- rb_define_method(cool_conmin_minimizer, "parameters_default", rb_ool_conmin_minimizer_parameters_default, 0);
817
- rb_define_method(cool_conmin_minimizer, "name", rb_ool_conmin_minimizer_name, 0);
818
- rb_define_method(cool_conmin_minimizer, "size", rb_ool_conmin_minimizer_size, 0);
819
- rb_define_method(cool_conmin_minimizer, "f", rb_ool_conmin_minimizer_f, 0);
820
- rb_define_method(cool_conmin_minimizer, "x", rb_ool_conmin_minimizer_x, 0);
821
- rb_define_method(cool_conmin_minimizer, "dx", rb_ool_conmin_minimizer_dx, 0);
822
- rb_define_method(cool_conmin_minimizer, "gradient", rb_ool_conmin_minimizer_gradient, 0);
823
- rb_define_method(cool_conmin_minimizer, "minimum", rb_ool_conmin_minimizer_minimum, 0);
824
- rb_define_method(cool_conmin_minimizer, "fcount", rb_ool_conmin_minimizer_fcount, 0);
825
- rb_define_method(cool_conmin_minimizer, "gcount", rb_ool_conmin_minimizer_gcount, 0);
826
- rb_define_method(cool_conmin_minimizer, "hcount", rb_ool_conmin_minimizer_hcount, 0);
827
- rb_define_method(cool_conmin_minimizer, "is_optimal", rb_ool_conmin_minimizer_is_optimal, 0);
828
- rb_define_method(cool_conmin_minimizer, "is_optimal?", rb_ool_conmin_minimizer_is_optimal2, 0);
829
- rb_define_method(cool_conmin_minimizer, "iterate", rb_ool_conmin_minimizer_iterate, 0);
830
- rb_define_method(cool_conmin_minimizer, "restart", rb_ool_conmin_minimizer_restart, 0);
831
- rb_define_method(cool_conmin_minimizer, "parameters_get", rb_ool_conmin_minimizer_parameters_get, 0);
832
- rb_define_method(cool_conmin_minimizer, "parameters_set", rb_ool_conmin_minimizer_parameters_set, 1);
833
-
834
- rb_define_singleton_method(cool_conmin_function, "alloc", rb_ool_conmin_function_alloc, -1);
835
- rb_define_method(cool_conmin_function, "set", rb_ool_conmin_function_set, -1);
836
- rb_define_method(cool_conmin_function, "set_n", rb_ool_conmin_function_set_n, 1);
837
- rb_define_alias(cool_conmin_function, "n=", "set_n");
838
- rb_define_method(cool_conmin_function, "n", rb_ool_conmin_function_n, 0);
839
- rb_define_method(cool_conmin_function, "params", rb_ool_conmin_function_params, 0);
840
- rb_define_method(cool_conmin_function, "set_params", rb_ool_conmin_function_set_params, 1);
841
- rb_define_alias(cool_conmin_function, "params=", "set_params");
842
- rb_define_method(cool_conmin_function, "set_functions", rb_ool_conmin_function_set_functions, 1);
843
- rb_define_alias(cool_conmin_function, "functions=", "set_functions");
844
- rb_define_method(cool_conmin_function, "set_f", rb_ool_conmin_function_set_f, 1);
845
- rb_define_alias(cool_conmin_function, "f=", "set_f");
846
- rb_define_method(cool_conmin_function, "set_df", rb_ool_conmin_function_set_df, 1);
847
- rb_define_alias(cool_conmin_function, "df=", "set_df");
848
- rb_define_method(cool_conmin_function, "set_fdf", rb_ool_conmin_function_set_fdf, 1);
849
- rb_define_alias(cool_conmin_function, "fdf=", "set_fdf");
850
- rb_define_method(cool_conmin_function, "set_Hv", rb_ool_conmin_function_set_Hv, 1);
851
- rb_define_alias(cool_conmin_function, "Hv=", "set_Hv");
852
-
853
- rb_define_singleton_method(cool_conmin_constraint, "alloc", rb_ool_conmin_constraint_alloc,
854
- -1);
855
- rb_define_method(cool_conmin_constraint, "set", rb_ool_conmin_constraint_set, -1);
856
- rb_define_method(cool_conmin_constraint, "set_n", rb_ool_conmin_constraint_set_n, 1);
857
- rb_define_alias(cool_conmin_constraint, "n=", "set_n");
858
- rb_define_method(cool_conmin_constraint, "set_L", rb_ool_conmin_constraint_set_L, 1);
859
- rb_define_alias(cool_conmin_constraint, "L=", "set_L");
860
- rb_define_method(cool_conmin_constraint, "set_U", rb_ool_conmin_constraint_set_U, 1);
861
- rb_define_alias(cool_conmin_constraint, "U=", "set_U");
862
- rb_define_method(cool_conmin_constraint, "set_LU", rb_ool_conmin_constraint_set_LU, 2);
863
- rb_define_alias(cool_conmin_constraint, "LU=", "set_LU");
864
-
865
- cool_conmin_pgrad_parameters = rb_define_class_under(cool_conmin_pgrad, "Parameters",
866
- rb_cArray);
867
- cool_conmin_spg_parameters = rb_define_class_under(cool_conmin_spg, "Parameters",
868
- rb_cArray);
869
- cool_conmin_gencan_parameters = rb_define_class_under(cool_conmin_gencan, "Parameters",
870
- rb_cArray);
871
- rb_define_singleton_method(cool_conmin_pgrad, "parameters_default",
872
- rb_ool_conmin_pgrad_parameters_default, 0);
873
- rb_define_singleton_method(cool_conmin_spg, "parameters_default",
874
- rb_ool_conmin_spg_parameters_default, 0);
875
- rb_define_singleton_method(cool_conmin_gencan, "parameters_default",
876
- rb_ool_conmin_gencan_parameters_default, 0);
877
- }
878
-
879
- #endif