ruby-dcl 1.6.2

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 (319) hide show
  1. data/ChangeLog +321 -0
  2. data/GenWrapper/Makefile +14 -0
  3. data/GenWrapper/cproto2init.rb +41 -0
  4. data/GenWrapper/dcl_narrayed_funcs.rb +181 -0
  5. data/GenWrapper/dcl_rb_footing +29 -0
  6. data/GenWrapper/dcl_rb_heading +129 -0
  7. data/GenWrapper/def.rb +20 -0
  8. data/GenWrapper/elim_ary_size.rb +398 -0
  9. data/GenWrapper/etc/Mk_proto +375 -0
  10. data/GenWrapper/etc/dcl_gen +13 -0
  11. data/GenWrapper/etc/p_header +63 -0
  12. data/GenWrapper/etc/p_init +410 -0
  13. data/GenWrapper/pparse.rb +137 -0
  14. data/GenWrapper/proto/Makefile +35 -0
  15. data/GenWrapper/proto/grph1_00 +17 -0
  16. data/GenWrapper/proto/grph1_csgi.fp +27 -0
  17. data/GenWrapper/proto/grph1_scpack.fp +442 -0
  18. data/GenWrapper/proto/grph1_sgpack.fp +1406 -0
  19. data/GenWrapper/proto/grph1_slpack.fp +316 -0
  20. data/GenWrapper/proto/grph1_stpack.fp +411 -0
  21. data/GenWrapper/proto/grph1_swpack.fp +746 -0
  22. data/GenWrapper/proto/grph2_00 +16 -0
  23. data/GenWrapper/proto/grph2_grpack.fp +139 -0
  24. data/GenWrapper/proto/grph2_ucpack.fp +522 -0
  25. data/GenWrapper/proto/grph2_udpack.fp +692 -0
  26. data/GenWrapper/proto/grph2_uepack.fp +601 -0
  27. data/GenWrapper/proto/grph2_ugpack.fp +436 -0
  28. data/GenWrapper/proto/grph2_uhpack.fp +246 -0
  29. data/GenWrapper/proto/grph2_ulpack.fp +516 -0
  30. data/GenWrapper/proto/grph2_umpack.fp +676 -0
  31. data/GenWrapper/proto/grph2_uspack.fp +989 -0
  32. data/GenWrapper/proto/grph2_uupack.fp +663 -0
  33. data/GenWrapper/proto/grph2_uvpack.fp +246 -0
  34. data/GenWrapper/proto/grph2_uwpack.fp +203 -0
  35. data/GenWrapper/proto/grph2_uxpack.fp +295 -0
  36. data/GenWrapper/proto/grph2_uypack.fp +295 -0
  37. data/GenWrapper/proto/grph2_uzpack.fp +574 -0
  38. data/GenWrapper/proto/math1_00 +12 -0
  39. data/GenWrapper/proto/math1_blklib.fp +58 -0
  40. data/GenWrapper/proto/math1_chrlib.fp +83 -0
  41. data/GenWrapper/proto/math1_fnclib.fp +79 -0
  42. data/GenWrapper/proto/math1_gnmlib.fp +118 -0
  43. data/GenWrapper/proto/math1_gt2dlib.fp +144 -0
  44. data/GenWrapper/proto/math1_ifalib.fp +123 -0
  45. data/GenWrapper/proto/math1_indxlib.fp +222 -0
  46. data/GenWrapper/proto/math1_intlib.fp +46 -0
  47. data/GenWrapper/proto/math1_lrllib.fp +276 -0
  48. data/GenWrapper/proto/math1_maplib.fp +24 -0
  49. data/GenWrapper/proto/math1_oslib.fp +28 -0
  50. data/GenWrapper/proto/math1_rfalib.fp +420 -0
  51. data/GenWrapper/proto/math1_rfblib.fp +51 -0
  52. data/GenWrapper/proto/math1_sublib.fp +60 -0
  53. data/GenWrapper/proto/math1_syslib.fp +767 -0
  54. data/GenWrapper/proto/math1_vialib.fp +339 -0
  55. data/GenWrapper/proto/math1_viblib.fp +264 -0
  56. data/GenWrapper/proto/math1_vralib.fp +339 -0
  57. data/GenWrapper/proto/math1_vrblib.fp +264 -0
  58. data/GenWrapper/proto/math1_xfclib.fp +68 -0
  59. data/GenWrapper/proto/math2_00 +12 -0
  60. data/GenWrapper/proto/math2_fftlib.fp +803 -0
  61. data/GenWrapper/proto/math2_intrlib.fp +32 -0
  62. data/GenWrapper/proto/math2_odelib.fp_notused +568 -0
  63. data/GenWrapper/proto/math2_rnmlib.fp +54 -0
  64. data/GenWrapper/proto/math2_shtlib.fp +1292 -0
  65. data/GenWrapper/proto/math2_shtlib.fp_old +1294 -0
  66. data/GenWrapper/proto/math2_vstlib.fp +84 -0
  67. data/GenWrapper/proto/misc1_00 +17 -0
  68. data/GenWrapper/proto/misc1_chnlib.fp +47 -0
  69. data/GenWrapper/proto/misc1_datelib.fp +352 -0
  70. data/GenWrapper/proto/misc1_fmtlib.fp +19 -0
  71. data/GenWrapper/proto/misc1_misclib.fp +26 -0
  72. data/GenWrapper/proto/misc1_randlib.fp +36 -0
  73. data/GenWrapper/proto/misc1_timelib.fp +151 -0
  74. data/GenWrapper/proto2c.rb +13 -0
  75. data/GenWrapper/prototype.rb +209 -0
  76. data/GenWrapper/util.rb +9 -0
  77. data/GenWrapper/variable.rb +671 -0
  78. data/README +29 -0
  79. data/Rakefile +44 -0
  80. data/ToDo +2 -0
  81. data/dcl_cary2obj.c +354 -0
  82. data/dcl_narrayed_funcs.c +518 -0
  83. data/dcl_obj2cary.c +512 -0
  84. data/dcl_rubydcloriginal.c +129 -0
  85. data/demo/gokuraku/hop/hop.rb +26 -0
  86. data/demo/gokuraku/jump/jump1.rb +64 -0
  87. data/demo/gokuraku/jump/jump2.rb +50 -0
  88. data/demo/gokuraku/layout/lay1.rb +46 -0
  89. data/demo/gokuraku/layout/lay2.rb +44 -0
  90. data/demo/gokuraku/step/step0.rb +34 -0
  91. data/demo/gokuraku/step/step1.rb +84 -0
  92. data/demo/gokuraku/step/step2.rb +62 -0
  93. data/demo/gokuraku/u1d/u1d1.rb +37 -0
  94. data/demo/gokuraku/u1d/u1d2.rb +50 -0
  95. data/demo/gokuraku/u2d/u2d1.rb +46 -0
  96. data/demo/gokuraku/u2d/u2d2.rb +49 -0
  97. data/demo/gokuraku/u2d/u2d3.rb +45 -0
  98. data/demo/gokuraku/u2d/u2d4.rb +61 -0
  99. data/demo/grph1/scpack/scpkt2.rb +40 -0
  100. data/demo/grph1/scpack/scpkt3.rb +102 -0
  101. data/demo/grph1/scpack/scpkt6.rb +84 -0
  102. data/demo/grph1/scpack/scpkt7.rb +59 -0
  103. data/demo/grph1/scpack/scpkt8.rb +60 -0
  104. data/demo/grph1/scpack/t810630.dat +296 -0
  105. data/demo/grph1/scpack/t811231.dat +296 -0
  106. data/demo/grph1/sgpack/sgfont.rb +52 -0
  107. data/demo/grph1/sgpack/sgfonz.rb +53 -0
  108. data/demo/grph1/sgpack/sgksx1.rb +44 -0
  109. data/demo/grph1/sgpack/sgksx2.rb +90 -0
  110. data/demo/grph1/sgpack/sgksx3.rb +75 -0
  111. data/demo/grph1/sgpack/sglidx.rb +40 -0
  112. data/demo/grph1/sgpack/sgltyp.rb +48 -0
  113. data/demo/grph1/sgpack/sgpk01.rb +39 -0
  114. data/demo/grph1/sgpack/sgpk02.rb +79 -0
  115. data/demo/grph1/sgpack/sgpk03.rb +107 -0
  116. data/demo/grph1/sgpack/sgpk04.rb +86 -0
  117. data/demo/grph1/sgpack/sgpk05.rb +66 -0
  118. data/demo/grph1/sgpack/sgpk06.rb +91 -0
  119. data/demo/grph1/sgpack/sgpk07.rb +66 -0
  120. data/demo/grph1/sgpack/sgpk08.rb +67 -0
  121. data/demo/grph1/sgpack/sgpk09.rb +61 -0
  122. data/demo/grph1/sgpack/sgpk10.rb +58 -0
  123. data/demo/grph1/sgpack/sgtclr.rb +59 -0
  124. data/demo/grph1/sgpack/sgtone.rb +70 -0
  125. data/demo/grph1/sgpack/sgtonz.rb +66 -0
  126. data/demo/grph1/slpack/slpk01.rb +37 -0
  127. data/demo/grph1/slpack/slpk02.rb +29 -0
  128. data/demo/grph1/slpack/slpk03.rb +36 -0
  129. data/demo/grph1/slpack/slpk04.rb +36 -0
  130. data/demo/grph2/g2pack/g2pk01.rb +78 -0
  131. data/demo/grph2/g2pack/g2pk02.rb +75 -0
  132. data/demo/grph2/grpack/grpk01.rb +65 -0
  133. data/demo/grph2/ucpack/ucpk01.rb +95 -0
  134. data/demo/grph2/ucpack/ucpk02.rb +95 -0
  135. data/demo/grph2/udegpk/u2df01.rb +50 -0
  136. data/demo/grph2/udegpk/u2df02.rb +76 -0
  137. data/demo/grph2/udegpk/u2df03.rb +80 -0
  138. data/demo/grph2/udegpk/u2df04.rb +52 -0
  139. data/demo/grph2/udegpk/u2df05.rb +70 -0
  140. data/demo/grph2/udegpk/u2df06.rb +59 -0
  141. data/demo/grph2/udegpk/u2df07.rb +68 -0
  142. data/demo/grph2/udegpk/u2df08.rb +91 -0
  143. data/demo/grph2/udegpk/u2df09b.rb +88 -0
  144. data/demo/grph2/udegpk/u2df09c.rb +89 -0
  145. data/demo/grph2/udegpk/u2df09e.rb +88 -0
  146. data/demo/grph2/udegpk/u2df09f.rb +89 -0
  147. data/demo/grph2/ulpack/ulpk01.rb +111 -0
  148. data/demo/grph2/ulpack/ulpk01n.rb +111 -0
  149. data/demo/grph2/ulpack/ulpk02.rb +111 -0
  150. data/demo/grph2/ulpack/ulpk02n.rb +111 -0
  151. data/demo/grph2/umpack/t811231.dat +296 -0
  152. data/demo/grph2/umpack/test01.rb +69 -0
  153. data/demo/grph2/umpack/test02.rb +64 -0
  154. data/demo/grph2/umpack/test03.rb +84 -0
  155. data/demo/grph2/umpack/test04.rb +54 -0
  156. data/demo/grph2/umpack/test05.rb +85 -0
  157. data/demo/grph2/umpack/test06.rb +44 -0
  158. data/demo/grph2/umpack/test07.rb +43 -0
  159. data/demo/grph2/umpack/test08.rb +37 -0
  160. data/demo/grph2/umpack/test09.rb +86 -0
  161. data/demo/grph2/umpack/test10.rb +52 -0
  162. data/demo/grph2/umpack/umpk01.rb +65 -0
  163. data/demo/grph2/umpack/umpk02.rb +54 -0
  164. data/demo/grph2/umpack/umpk03.rb +46 -0
  165. data/demo/grph2/umpack/umpk04.rb +65 -0
  166. data/demo/grph2/umpack/umpk05.rb +84 -0
  167. data/demo/grph2/uspack/uspk01.rb +39 -0
  168. data/demo/grph2/uspack/uspk02.rb +47 -0
  169. data/demo/grph2/uspack/uspk03.rb +38 -0
  170. data/demo/grph2/uspack/uspk04.rb +64 -0
  171. data/demo/grph2/uspack/uspk05.rb +68 -0
  172. data/demo/grph2/uspack/uspk06.rb +43 -0
  173. data/demo/grph2/uspack/uspk07.rb +62 -0
  174. data/demo/grph2/uspack/uspk08.rb +46 -0
  175. data/demo/grph2/uspack/uspk09.rb +89 -0
  176. data/demo/grph2/uspack/uspk10.rb +48 -0
  177. data/demo/grph2/uspack/uspk11.rb +71 -0
  178. data/demo/grph2/uspack/uspk12.rb +51 -0
  179. data/demo/grph2/uupack/uupk01.rb +50 -0
  180. data/demo/grph2/uupack/uupk02.rb +74 -0
  181. data/demo/grph2/uupack/uupk03.rb +56 -0
  182. data/demo/grph2/uupack/uupk04.rb +84 -0
  183. data/demo/grph2/uupack/uupk05.rb +74 -0
  184. data/demo/grph2/uupack/uupk06.rb +77 -0
  185. data/demo/grph2/uupack/uupk07.rb +88 -0
  186. data/demo/grph2/uxyzpk/uxyz01.rb +38 -0
  187. data/demo/grph2/uxyzpk/uxyz02.rb +36 -0
  188. data/demo/grph2/uxyzpk/uxyz03.rb +37 -0
  189. data/demo/grph2/uxyzpk/uxyz04.rb +54 -0
  190. data/demo/grph2/uxyzpk/uxyz05.rb +41 -0
  191. data/demo/grph2/uxyzpk/uxyz06.rb +42 -0
  192. data/demo/grph2/uxyzpk/uxyz07.rb +38 -0
  193. data/demo/grph2/uxyzpk/uxyz08.rb +60 -0
  194. data/demo/grph2/uxyzpk/uxyz09.rb +52 -0
  195. data/demo/grph2/uxyzpk/uxyz10.rb +57 -0
  196. data/demo/grph2/ximage/MEMO +23 -0
  197. data/demo/grph2/ximage/tomsclm.dat +1344 -0
  198. data/demo/grph2/ximage/ximg01.rb +145 -0
  199. data/demo/math1/gt2dlib/gt2d01.rb +33 -0
  200. data/demo/math2/fftlib/fftl01.rb +28 -0
  201. data/demo/math2/fftlib/fftl02.rb +224 -0
  202. data/demo/math2/intrlib/intr01.rb +22 -0
  203. data/demo/math2/rnmlib/rnml01.rb +21 -0
  204. data/demo/math2/vstlib/vstl01.rb +29 -0
  205. data/demo/math2/vstlib/vstl02.rb +38 -0
  206. data/demo/rakuraku/color/color1.rb +61 -0
  207. data/demo/rakuraku/color/color2.rb +57 -0
  208. data/demo/rakuraku/color/color3.rb +81 -0
  209. data/demo/rakuraku/kihon/kihon1.rb +39 -0
  210. data/demo/rakuraku/kihon/kihon2.rb +56 -0
  211. data/demo/rakuraku/kihon/kihon3.rb +57 -0
  212. data/demo/rakuraku/kihon/kihon4.rb +70 -0
  213. data/demo/rakuraku/kihon/kihon5.rb +56 -0
  214. data/demo/rakuraku/kihon/kihon6.rb +40 -0
  215. data/demo/rakuraku/kihon/kihon7.rb +98 -0
  216. data/demo/rakuraku/kihon/kihon8.rb +93 -0
  217. data/demo/rakuraku/kihon/kihon9.rb +77 -0
  218. data/demo/rakuraku/kihon/kihona.rb +123 -0
  219. data/demo/rakuraku/kihon/kihonb.rb +73 -0
  220. data/demo/rakuraku/kihon/kihonc.rb +110 -0
  221. data/demo/rakuraku/layout/lay1.rb +29 -0
  222. data/demo/rakuraku/layout/lay2.rb +28 -0
  223. data/demo/rakuraku/layout/lay3.rb +29 -0
  224. data/demo/rakuraku/map3d/map3d1.rb +68 -0
  225. data/demo/rakuraku/map3d/map3d2.rb +67 -0
  226. data/demo/rakuraku/map3d/map3d3.rb +66 -0
  227. data/demo/rakuraku/map3d/map3d4.rb +107 -0
  228. data/demo/rakuraku/map3d/map3d5.rb +118 -0
  229. data/demo/rakuraku/map3d/map3d6.rb +96 -0
  230. data/demo/rakuraku/map3d/map3d7.rb +98 -0
  231. data/demo/rakuraku/miss/miss1.rb +76 -0
  232. data/demo/rakuraku/miss/miss2.rb +60 -0
  233. data/demo/rakuraku/quick/quick1.rb +35 -0
  234. data/demo/rakuraku/quick/quick2.rb +33 -0
  235. data/demo/rakuraku/quick/quick3.rb +46 -0
  236. data/demo/rakuraku/quick/quick4.rb +47 -0
  237. data/demo/rakuraku/quick/quick5.rb +46 -0
  238. data/demo/rakuraku/u2d/u2d1.rb +50 -0
  239. data/demo/rakuraku/u2d/u2d2.rb +51 -0
  240. data/demo/rakuraku/u2d/u2d3.rb +70 -0
  241. data/demo/rakuraku/u2d/u2d4.rb +59 -0
  242. data/demo/rakuraku/u2d/u2d5.rb +61 -0
  243. data/demo/rakuraku/u2d/u2d6.rb +57 -0
  244. data/demo/rakuraku/u2d/u2d7.rb +103 -0
  245. data/demo/rakuraku/uspack/uspac1.rb +35 -0
  246. data/demo/rakuraku/uspack/uspac2.rb +66 -0
  247. data/demo/rakuraku/uspack/uspac3.rb +37 -0
  248. data/demo/rakuraku/uspack/uspac4.rb +49 -0
  249. data/demo/rakuraku/uxyz/uxyz1.rb +37 -0
  250. data/demo/rakuraku/uxyz/uxyz2.rb +35 -0
  251. data/demo/rakuraku/uxyz/uxyz3.rb +38 -0
  252. data/demo/rakuraku/uxyz/uxyz4.rb +36 -0
  253. data/demo/rakuraku/uxyz/uxyz5.rb +57 -0
  254. data/demo/rakuraku/uxyz/uxyz6.rb +43 -0
  255. data/demo/rakuraku/uxyz/uxyz7.rb +39 -0
  256. data/demo/rakuraku/uxyz/uxyz8.rb +56 -0
  257. data/demo/rubydcloriginal/uemrkz1.rb +37 -0
  258. data/dummy.c +9 -0
  259. data/extconf.rb +133 -0
  260. data/grph1_csgi.c +119 -0
  261. data/grph1_scpack.c +1388 -0
  262. data/grph1_sgpack.c +3876 -0
  263. data/grph1_slpack.c +432 -0
  264. data/grph1_stpack.c +1044 -0
  265. data/grph1_swpack.c +1922 -0
  266. data/grph1_zgpack.c.org +141 -0
  267. data/grph2_grpack.c +368 -0
  268. data/grph2_ucpack.c +1232 -0
  269. data/grph2_udpack.c +1404 -0
  270. data/grph2_uepack.c +1443 -0
  271. data/grph2_ugpack.c +1073 -0
  272. data/grph2_uhpack.c +943 -0
  273. data/grph2_ulpack.c +1304 -0
  274. data/grph2_umpack.c +1540 -0
  275. data/grph2_uspack.c +2481 -0
  276. data/grph2_uupack.c +1689 -0
  277. data/grph2_uvpack.c +943 -0
  278. data/grph2_uwpack.c +552 -0
  279. data/grph2_uxpack.c +555 -0
  280. data/grph2_uypack.c +555 -0
  281. data/grph2_uzpack.c +1455 -0
  282. data/init.c.default +187 -0
  283. data/init.c.gtk +189 -0
  284. data/lib/dcl.rb +5084 -0
  285. data/math1_blklib.c +227 -0
  286. data/math1_chrlib.c +239 -0
  287. data/math1_fnclib.c +254 -0
  288. data/math1_gnmlib.c +356 -0
  289. data/math1_gt2dlib.c +514 -0
  290. data/math1_ifalib.c +427 -0
  291. data/math1_indxlib.c +709 -0
  292. data/math1_intlib.c +167 -0
  293. data/math1_lrllib.c +817 -0
  294. data/math1_maplib.c +172 -0
  295. data/math1_oslib.c +111 -0
  296. data/math1_rfalib.c +1417 -0
  297. data/math1_rfblib.c +232 -0
  298. data/math1_sublib.c +221 -0
  299. data/math1_syslib.c +2025 -0
  300. data/math1_vialib.c +1156 -0
  301. data/math1_viblib.c +1027 -0
  302. data/math1_vralib.c +1156 -0
  303. data/math1_vrblib.c +1027 -0
  304. data/math1_xfclib.c +142 -0
  305. data/math2_fftlib.c +833 -0
  306. data/math2_intrlib.c +138 -0
  307. data/math2_rnmlib.c +226 -0
  308. data/math2_shtlib.c +1568 -0
  309. data/math2_vstlib.c +366 -0
  310. data/misc1_chnlib.c +179 -0
  311. data/misc1_datelib.c +953 -0
  312. data/misc1_fmtlib.c +99 -0
  313. data/misc1_misclib.c +118 -0
  314. data/misc1_randlib.c +142 -0
  315. data/misc1_timelib.c +380 -0
  316. data/obsolete/README +2 -0
  317. data/obsolete/dcl_ext.html +112 -0
  318. data/obsolete/dcl_ext.rb +313 -0
  319. metadata +433 -0
data/math1_maplib.c ADDED
@@ -0,0 +1,172 @@
1
+ /*
2
+ * $Id: p_header,v 1.2 2011-02-23 17:47:10 koshiro Exp $
3
+ */
4
+
5
+ #include <stdio.h>
6
+ #include "ruby.h"
7
+ #include "libtinyf2c.h"
8
+ #include "narray.h"
9
+
10
+ /* for compatibility with ruby 1.6 */
11
+ #ifndef StringValuePtr
12
+ #define StringValuePtr(s) STR2CSTR(s)
13
+ #endif
14
+
15
+ #define DFLT_SIZE 32
16
+
17
+ extern char *dcl_obj2ccharary(VALUE, int, int);
18
+ extern integer *dcl_obj2cintegerary(VALUE);
19
+ extern real *dcl_obj2crealary(VALUE);
20
+ extern complex *dcl_obj2ccomplexary(VALUE);
21
+ extern logical *dcl_obj2clogicalary(VALUE);
22
+
23
+ extern VALUE dcl_ccharary2obj(char *, int, int);
24
+ extern VALUE dcl_cintegerary2obj(integer *, int, int, int *);
25
+ extern VALUE dcl_crealary2obj(real *, int, int, int *);
26
+ extern VALUE dcl_ccomplexary2obj(complex *, int, char *);
27
+ extern VALUE dcl_clogicalary2obj(logical *, int, int, int *);
28
+
29
+ extern void dcl_freeccharary(char *);
30
+ extern void dcl_freecintegerary(integer *);
31
+ extern void dcl_freecrealary(real *);
32
+ extern void dcl_freeccomplexary(complex *);
33
+ extern void dcl_freeclogicalary(logical *);
34
+
35
+ /* for functions which return real */
36
+ /* fnclib */
37
+ extern real rd2r_(real *);
38
+ extern real rr2d_(real *);
39
+ extern real rexp_(real *, integer *, integer *);
40
+ extern real rfpi_(void);
41
+ extern real rmod_(real *, real *);
42
+ /* gnmlib */
43
+ extern real rgnlt_(real *);
44
+ extern real rgnle_(real *);
45
+ extern real rgngt_(real *);
46
+ extern real rgnge_(real *);
47
+ /* rfalib */
48
+ extern real rmax_(real *, integer *, integer *);
49
+ extern real rmin_(real *, integer *, integer *);
50
+ extern real rsum_(real *, integer *, integer *);
51
+ extern real rave_(real *, integer *, integer *);
52
+ extern real rvar_(real *, integer *, integer *);
53
+ extern real rstd_(real *, integer *, integer *);
54
+ extern real rrms_(real *, integer *, integer *);
55
+ extern real ramp_(real *, integer *, integer *);
56
+ /* rfblib */
57
+ extern real rprd_(real *, real *, integer *, integer *, integer *);
58
+ extern real rcov_(real *, real *, integer *, integer *, integer *);
59
+ extern real rcor_(real *, real *, integer *, integer *, integer *);
60
+
61
+
62
+ extern VALUE mDCL;
63
+
64
+ static VALUE
65
+ dcl_mpscon(obj, ylat0)
66
+ VALUE obj, ylat0;
67
+ {
68
+ real i_ylat0;
69
+
70
+ if (TYPE(ylat0) != T_FLOAT) {
71
+ ylat0 = rb_funcall(ylat0, rb_intern("to_f"), 0);
72
+ }
73
+
74
+ i_ylat0 = (real)NUM2DBL(ylat0);
75
+
76
+
77
+ mpscon_(&i_ylat0);
78
+
79
+ return Qnil;
80
+
81
+ }
82
+
83
+ static VALUE
84
+ dcl_mpscoa(obj, ylat1)
85
+ VALUE obj, ylat1;
86
+ {
87
+ real i_ylat1;
88
+
89
+ if (TYPE(ylat1) != T_FLOAT) {
90
+ ylat1 = rb_funcall(ylat1, rb_intern("to_f"), 0);
91
+ }
92
+
93
+ i_ylat1 = (real)NUM2DBL(ylat1);
94
+
95
+
96
+ mpscoa_(&i_ylat1);
97
+
98
+ return Qnil;
99
+
100
+ }
101
+
102
+ static VALUE
103
+ dcl_mpscoc(obj, ylat1, ylat2)
104
+ VALUE obj, ylat1, ylat2;
105
+ {
106
+ real i_ylat1;
107
+ real i_ylat2;
108
+
109
+ if (TYPE(ylat1) != T_FLOAT) {
110
+ ylat1 = rb_funcall(ylat1, rb_intern("to_f"), 0);
111
+ }
112
+ if (TYPE(ylat2) != T_FLOAT) {
113
+ ylat2 = rb_funcall(ylat2, rb_intern("to_f"), 0);
114
+ }
115
+
116
+ i_ylat1 = (real)NUM2DBL(ylat1);
117
+ i_ylat2 = (real)NUM2DBL(ylat2);
118
+
119
+
120
+ mpscoc_(&i_ylat1, &i_ylat2);
121
+
122
+ return Qnil;
123
+
124
+ }
125
+
126
+ static VALUE
127
+ dcl_mpsbon(obj, ylat1)
128
+ VALUE obj, ylat1;
129
+ {
130
+ real i_ylat1;
131
+
132
+ if (TYPE(ylat1) != T_FLOAT) {
133
+ ylat1 = rb_funcall(ylat1, rb_intern("to_f"), 0);
134
+ }
135
+
136
+ i_ylat1 = (real)NUM2DBL(ylat1);
137
+
138
+
139
+ mpsbon_(&i_ylat1);
140
+
141
+ return Qnil;
142
+
143
+ }
144
+
145
+ static VALUE
146
+ dcl_mpsotg(obj, rsat)
147
+ VALUE obj, rsat;
148
+ {
149
+ real i_rsat;
150
+
151
+ if (TYPE(rsat) != T_FLOAT) {
152
+ rsat = rb_funcall(rsat, rb_intern("to_f"), 0);
153
+ }
154
+
155
+ i_rsat = (real)NUM2DBL(rsat);
156
+
157
+
158
+ mpsotg_(&i_rsat);
159
+
160
+ return Qnil;
161
+
162
+ }
163
+ void
164
+ init_math1_maplib(mDCL)
165
+ VALUE mDCL;
166
+ {
167
+ rb_define_module_function(mDCL, "mpscon", dcl_mpscon, 1);
168
+ rb_define_module_function(mDCL, "mpscoa", dcl_mpscoa, 1);
169
+ rb_define_module_function(mDCL, "mpscoc", dcl_mpscoc, 2);
170
+ rb_define_module_function(mDCL, "mpsbon", dcl_mpsbon, 1);
171
+ rb_define_module_function(mDCL, "mpsotg", dcl_mpsotg, 1);
172
+ }
data/math1_oslib.c ADDED
@@ -0,0 +1,111 @@
1
+ /*
2
+ * $Id: p_header,v 1.2 2011-02-23 17:47:10 koshiro Exp $
3
+ */
4
+
5
+ #include <stdio.h>
6
+ #include "ruby.h"
7
+ #include "libtinyf2c.h"
8
+ #include "narray.h"
9
+
10
+ /* for compatibility with ruby 1.6 */
11
+ #ifndef StringValuePtr
12
+ #define StringValuePtr(s) STR2CSTR(s)
13
+ #endif
14
+
15
+ #define DFLT_SIZE 32
16
+
17
+ extern char *dcl_obj2ccharary(VALUE, int, int);
18
+ extern integer *dcl_obj2cintegerary(VALUE);
19
+ extern real *dcl_obj2crealary(VALUE);
20
+ extern complex *dcl_obj2ccomplexary(VALUE);
21
+ extern logical *dcl_obj2clogicalary(VALUE);
22
+
23
+ extern VALUE dcl_ccharary2obj(char *, int, int);
24
+ extern VALUE dcl_cintegerary2obj(integer *, int, int, int *);
25
+ extern VALUE dcl_crealary2obj(real *, int, int, int *);
26
+ extern VALUE dcl_ccomplexary2obj(complex *, int, char *);
27
+ extern VALUE dcl_clogicalary2obj(logical *, int, int, int *);
28
+
29
+ extern void dcl_freeccharary(char *);
30
+ extern void dcl_freecintegerary(integer *);
31
+ extern void dcl_freecrealary(real *);
32
+ extern void dcl_freeccomplexary(complex *);
33
+ extern void dcl_freeclogicalary(logical *);
34
+
35
+ /* for functions which return real */
36
+ /* fnclib */
37
+ extern real rd2r_(real *);
38
+ extern real rr2d_(real *);
39
+ extern real rexp_(real *, integer *, integer *);
40
+ extern real rfpi_(void);
41
+ extern real rmod_(real *, real *);
42
+ /* gnmlib */
43
+ extern real rgnlt_(real *);
44
+ extern real rgnle_(real *);
45
+ extern real rgngt_(real *);
46
+ extern real rgnge_(real *);
47
+ /* rfalib */
48
+ extern real rmax_(real *, integer *, integer *);
49
+ extern real rmin_(real *, integer *, integer *);
50
+ extern real rsum_(real *, integer *, integer *);
51
+ extern real rave_(real *, integer *, integer *);
52
+ extern real rvar_(real *, integer *, integer *);
53
+ extern real rstd_(real *, integer *, integer *);
54
+ extern real rrms_(real *, integer *, integer *);
55
+ extern real ramp_(real *, integer *, integer *);
56
+ /* rfblib */
57
+ extern real rprd_(real *, real *, integer *, integer *, integer *);
58
+ extern real rcov_(real *, real *, integer *, integer *, integer *);
59
+ extern real rcor_(real *, real *, integer *, integer *, integer *);
60
+
61
+
62
+ extern VALUE mDCL;
63
+
64
+ static VALUE
65
+ dcl_osqarn(obj)
66
+ VALUE obj;
67
+ {
68
+ integer o_n;
69
+ VALUE n;
70
+
71
+ osqarn_(&o_n);
72
+
73
+ n = INT2NUM(o_n);
74
+
75
+
76
+ return n;
77
+
78
+ }
79
+
80
+ static VALUE
81
+ dcl_osgarg(obj, n)
82
+ VALUE obj, n;
83
+ {
84
+ integer i_n;
85
+ char *o_chr;
86
+ VALUE chr;
87
+
88
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
89
+ n = rb_funcall(n, rb_intern("to_i"), 0);
90
+ }
91
+
92
+ i_n = NUM2INT(n);
93
+
94
+ o_chr= ALLOCA_N(char, (DFLT_SIZE+1));
95
+ memset(o_chr, '\0', DFLT_SIZE+1);
96
+
97
+ osgarg_(&i_n, o_chr, (ftnlen)DFLT_SIZE);
98
+
99
+ chr = rb_str_new2(o_chr);
100
+
101
+
102
+ return chr;
103
+
104
+ }
105
+ void
106
+ init_math1_oslib(mDCL)
107
+ VALUE mDCL;
108
+ {
109
+ rb_define_module_function(mDCL, "osqarn", dcl_osqarn, 0);
110
+ rb_define_module_function(mDCL, "osgarg", dcl_osgarg, 1);
111
+ }
data/math1_rfalib.c ADDED
@@ -0,0 +1,1417 @@
1
+ /*
2
+ * $Id: p_header,v 1.2 2011-02-23 17:47:10 koshiro Exp $
3
+ */
4
+
5
+ #include <stdio.h>
6
+ #include "ruby.h"
7
+ #include "libtinyf2c.h"
8
+ #include "narray.h"
9
+
10
+ /* for compatibility with ruby 1.6 */
11
+ #ifndef StringValuePtr
12
+ #define StringValuePtr(s) STR2CSTR(s)
13
+ #endif
14
+
15
+ #define DFLT_SIZE 32
16
+
17
+ extern char *dcl_obj2ccharary(VALUE, int, int);
18
+ extern integer *dcl_obj2cintegerary(VALUE);
19
+ extern real *dcl_obj2crealary(VALUE);
20
+ extern complex *dcl_obj2ccomplexary(VALUE);
21
+ extern logical *dcl_obj2clogicalary(VALUE);
22
+
23
+ extern VALUE dcl_ccharary2obj(char *, int, int);
24
+ extern VALUE dcl_cintegerary2obj(integer *, int, int, int *);
25
+ extern VALUE dcl_crealary2obj(real *, int, int, int *);
26
+ extern VALUE dcl_ccomplexary2obj(complex *, int, char *);
27
+ extern VALUE dcl_clogicalary2obj(logical *, int, int, int *);
28
+
29
+ extern void dcl_freeccharary(char *);
30
+ extern void dcl_freecintegerary(integer *);
31
+ extern void dcl_freecrealary(real *);
32
+ extern void dcl_freeccomplexary(complex *);
33
+ extern void dcl_freeclogicalary(logical *);
34
+
35
+ /* for functions which return real */
36
+ /* fnclib */
37
+ extern real rd2r_(real *);
38
+ extern real rr2d_(real *);
39
+ extern real rexp_(real *, integer *, integer *);
40
+ extern real rfpi_(void);
41
+ extern real rmod_(real *, real *);
42
+ /* gnmlib */
43
+ extern real rgnlt_(real *);
44
+ extern real rgnle_(real *);
45
+ extern real rgngt_(real *);
46
+ extern real rgnge_(real *);
47
+ /* rfalib */
48
+ extern real rmax_(real *, integer *, integer *);
49
+ extern real rmin_(real *, integer *, integer *);
50
+ extern real rsum_(real *, integer *, integer *);
51
+ extern real rave_(real *, integer *, integer *);
52
+ extern real rvar_(real *, integer *, integer *);
53
+ extern real rstd_(real *, integer *, integer *);
54
+ extern real rrms_(real *, integer *, integer *);
55
+ extern real ramp_(real *, integer *, integer *);
56
+ /* rfblib */
57
+ extern real rprd_(real *, real *, integer *, integer *, integer *);
58
+ extern real rcov_(real *, real *, integer *, integer *, integer *);
59
+ extern real rcor_(real *, real *, integer *, integer *, integer *);
60
+
61
+
62
+ extern VALUE mDCL;
63
+
64
+ static VALUE
65
+ dcl_rmax(obj, rx, n, jx)
66
+ VALUE obj, rx, n, jx;
67
+ {
68
+ real *i_rx;
69
+ integer i_n;
70
+ integer i_jx;
71
+ real o_rtn_val;
72
+ VALUE rtn_val;
73
+
74
+ if (TYPE(rx) == T_FLOAT) {
75
+ rx = rb_Array(rx);
76
+ }
77
+ /* if ((TYPE(rx) != T_ARRAY) &&
78
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
79
+ rb_raise(rb_eTypeError, "invalid type");
80
+ } -- no check since obj2c*ary will do that */
81
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
82
+ n = rb_funcall(n, rb_intern("to_i"), 0);
83
+ }
84
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
85
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
86
+ }
87
+
88
+ i_n = NUM2INT(n);
89
+ i_jx = NUM2INT(jx);
90
+ i_rx = dcl_obj2crealary(rx);
91
+
92
+
93
+ o_rtn_val = rmax_(i_rx, &i_n, &i_jx);
94
+
95
+ rtn_val = rb_float_new((double)o_rtn_val);
96
+
97
+ dcl_freecrealary(i_rx);
98
+
99
+ return rtn_val;
100
+
101
+ }
102
+
103
+ static VALUE
104
+ dcl_rmax0(obj, rx, n, jx)
105
+ VALUE obj, rx, n, jx;
106
+ {
107
+ real *i_rx;
108
+ integer i_n;
109
+ integer i_jx;
110
+ real o_rtn_val;
111
+ VALUE rtn_val;
112
+
113
+ if (TYPE(rx) == T_FLOAT) {
114
+ rx = rb_Array(rx);
115
+ }
116
+ /* if ((TYPE(rx) != T_ARRAY) &&
117
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
118
+ rb_raise(rb_eTypeError, "invalid type");
119
+ } -- no check since obj2c*ary will do that */
120
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
121
+ n = rb_funcall(n, rb_intern("to_i"), 0);
122
+ }
123
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
124
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
125
+ }
126
+
127
+ i_n = NUM2INT(n);
128
+ i_jx = NUM2INT(jx);
129
+ i_rx = dcl_obj2crealary(rx);
130
+
131
+
132
+ o_rtn_val = rmax0_(i_rx, &i_n, &i_jx);
133
+
134
+ rtn_val = rb_float_new((double)o_rtn_val);
135
+
136
+ dcl_freecrealary(i_rx);
137
+
138
+ return rtn_val;
139
+
140
+ }
141
+
142
+ static VALUE
143
+ dcl_rmax1(obj, rx, n, jx)
144
+ VALUE obj, rx, n, jx;
145
+ {
146
+ real *i_rx;
147
+ integer i_n;
148
+ integer i_jx;
149
+ real o_rtn_val;
150
+ VALUE rtn_val;
151
+
152
+ if (TYPE(rx) == T_FLOAT) {
153
+ rx = rb_Array(rx);
154
+ }
155
+ /* if ((TYPE(rx) != T_ARRAY) &&
156
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
157
+ rb_raise(rb_eTypeError, "invalid type");
158
+ } -- no check since obj2c*ary will do that */
159
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
160
+ n = rb_funcall(n, rb_intern("to_i"), 0);
161
+ }
162
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
163
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
164
+ }
165
+
166
+ i_n = NUM2INT(n);
167
+ i_jx = NUM2INT(jx);
168
+ i_rx = dcl_obj2crealary(rx);
169
+
170
+
171
+ o_rtn_val = rmax1_(i_rx, &i_n, &i_jx);
172
+
173
+ rtn_val = rb_float_new((double)o_rtn_val);
174
+
175
+ dcl_freecrealary(i_rx);
176
+
177
+ return rtn_val;
178
+
179
+ }
180
+
181
+ static VALUE
182
+ dcl_rmin(obj, rx, n, jx)
183
+ VALUE obj, rx, n, jx;
184
+ {
185
+ real *i_rx;
186
+ integer i_n;
187
+ integer i_jx;
188
+ real o_rtn_val;
189
+ VALUE rtn_val;
190
+
191
+ if (TYPE(rx) == T_FLOAT) {
192
+ rx = rb_Array(rx);
193
+ }
194
+ /* if ((TYPE(rx) != T_ARRAY) &&
195
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
196
+ rb_raise(rb_eTypeError, "invalid type");
197
+ } -- no check since obj2c*ary will do that */
198
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
199
+ n = rb_funcall(n, rb_intern("to_i"), 0);
200
+ }
201
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
202
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
203
+ }
204
+
205
+ i_n = NUM2INT(n);
206
+ i_jx = NUM2INT(jx);
207
+ i_rx = dcl_obj2crealary(rx);
208
+
209
+
210
+ o_rtn_val = rmin_(i_rx, &i_n, &i_jx);
211
+
212
+ rtn_val = rb_float_new((double)o_rtn_val);
213
+
214
+ dcl_freecrealary(i_rx);
215
+
216
+ return rtn_val;
217
+
218
+ }
219
+
220
+ static VALUE
221
+ dcl_rmin0(obj, rx, n, jx)
222
+ VALUE obj, rx, n, jx;
223
+ {
224
+ real *i_rx;
225
+ integer i_n;
226
+ integer i_jx;
227
+ real o_rtn_val;
228
+ VALUE rtn_val;
229
+
230
+ if (TYPE(rx) == T_FLOAT) {
231
+ rx = rb_Array(rx);
232
+ }
233
+ /* if ((TYPE(rx) != T_ARRAY) &&
234
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
235
+ rb_raise(rb_eTypeError, "invalid type");
236
+ } -- no check since obj2c*ary will do that */
237
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
238
+ n = rb_funcall(n, rb_intern("to_i"), 0);
239
+ }
240
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
241
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
242
+ }
243
+
244
+ i_n = NUM2INT(n);
245
+ i_jx = NUM2INT(jx);
246
+ i_rx = dcl_obj2crealary(rx);
247
+
248
+
249
+ o_rtn_val = rmin0_(i_rx, &i_n, &i_jx);
250
+
251
+ rtn_val = rb_float_new((double)o_rtn_val);
252
+
253
+ dcl_freecrealary(i_rx);
254
+
255
+ return rtn_val;
256
+
257
+ }
258
+
259
+ static VALUE
260
+ dcl_rmin1(obj, rx, n, jx)
261
+ VALUE obj, rx, n, jx;
262
+ {
263
+ real *i_rx;
264
+ integer i_n;
265
+ integer i_jx;
266
+ real o_rtn_val;
267
+ VALUE rtn_val;
268
+
269
+ if (TYPE(rx) == T_FLOAT) {
270
+ rx = rb_Array(rx);
271
+ }
272
+ /* if ((TYPE(rx) != T_ARRAY) &&
273
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
274
+ rb_raise(rb_eTypeError, "invalid type");
275
+ } -- no check since obj2c*ary will do that */
276
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
277
+ n = rb_funcall(n, rb_intern("to_i"), 0);
278
+ }
279
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
280
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
281
+ }
282
+
283
+ i_n = NUM2INT(n);
284
+ i_jx = NUM2INT(jx);
285
+ i_rx = dcl_obj2crealary(rx);
286
+
287
+
288
+ o_rtn_val = rmin1_(i_rx, &i_n, &i_jx);
289
+
290
+ rtn_val = rb_float_new((double)o_rtn_val);
291
+
292
+ dcl_freecrealary(i_rx);
293
+
294
+ return rtn_val;
295
+
296
+ }
297
+
298
+ static VALUE
299
+ dcl_rsum(obj, rx, n, jx)
300
+ VALUE obj, rx, n, jx;
301
+ {
302
+ real *i_rx;
303
+ integer i_n;
304
+ integer i_jx;
305
+ real o_rtn_val;
306
+ VALUE rtn_val;
307
+
308
+ if (TYPE(rx) == T_FLOAT) {
309
+ rx = rb_Array(rx);
310
+ }
311
+ /* if ((TYPE(rx) != T_ARRAY) &&
312
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
313
+ rb_raise(rb_eTypeError, "invalid type");
314
+ } -- no check since obj2c*ary will do that */
315
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
316
+ n = rb_funcall(n, rb_intern("to_i"), 0);
317
+ }
318
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
319
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
320
+ }
321
+
322
+ i_n = NUM2INT(n);
323
+ i_jx = NUM2INT(jx);
324
+ i_rx = dcl_obj2crealary(rx);
325
+
326
+
327
+ o_rtn_val = rsum_(i_rx, &i_n, &i_jx);
328
+
329
+ rtn_val = rb_float_new((double)o_rtn_val);
330
+
331
+ dcl_freecrealary(i_rx);
332
+
333
+ return rtn_val;
334
+
335
+ }
336
+
337
+ static VALUE
338
+ dcl_rsum0(obj, rx, n, jx)
339
+ VALUE obj, rx, n, jx;
340
+ {
341
+ real *i_rx;
342
+ integer i_n;
343
+ integer i_jx;
344
+ real o_rtn_val;
345
+ VALUE rtn_val;
346
+
347
+ if (TYPE(rx) == T_FLOAT) {
348
+ rx = rb_Array(rx);
349
+ }
350
+ /* if ((TYPE(rx) != T_ARRAY) &&
351
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
352
+ rb_raise(rb_eTypeError, "invalid type");
353
+ } -- no check since obj2c*ary will do that */
354
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
355
+ n = rb_funcall(n, rb_intern("to_i"), 0);
356
+ }
357
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
358
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
359
+ }
360
+
361
+ i_n = NUM2INT(n);
362
+ i_jx = NUM2INT(jx);
363
+ i_rx = dcl_obj2crealary(rx);
364
+
365
+
366
+ o_rtn_val = rsum0_(i_rx, &i_n, &i_jx);
367
+
368
+ rtn_val = rb_float_new((double)o_rtn_val);
369
+
370
+ dcl_freecrealary(i_rx);
371
+
372
+ return rtn_val;
373
+
374
+ }
375
+
376
+ static VALUE
377
+ dcl_rsum1(obj, rx, n, jx)
378
+ VALUE obj, rx, n, jx;
379
+ {
380
+ real *i_rx;
381
+ integer i_n;
382
+ integer i_jx;
383
+ real o_rtn_val;
384
+ VALUE rtn_val;
385
+
386
+ if (TYPE(rx) == T_FLOAT) {
387
+ rx = rb_Array(rx);
388
+ }
389
+ /* if ((TYPE(rx) != T_ARRAY) &&
390
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
391
+ rb_raise(rb_eTypeError, "invalid type");
392
+ } -- no check since obj2c*ary will do that */
393
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
394
+ n = rb_funcall(n, rb_intern("to_i"), 0);
395
+ }
396
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
397
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
398
+ }
399
+
400
+ i_n = NUM2INT(n);
401
+ i_jx = NUM2INT(jx);
402
+ i_rx = dcl_obj2crealary(rx);
403
+
404
+
405
+ o_rtn_val = rsum1_(i_rx, &i_n, &i_jx);
406
+
407
+ rtn_val = rb_float_new((double)o_rtn_val);
408
+
409
+ dcl_freecrealary(i_rx);
410
+
411
+ return rtn_val;
412
+
413
+ }
414
+
415
+ static VALUE
416
+ dcl_rave(obj, rx, n, jx)
417
+ VALUE obj, rx, n, jx;
418
+ {
419
+ real *i_rx;
420
+ integer i_n;
421
+ integer i_jx;
422
+ real o_rtn_val;
423
+ VALUE rtn_val;
424
+
425
+ if (TYPE(rx) == T_FLOAT) {
426
+ rx = rb_Array(rx);
427
+ }
428
+ /* if ((TYPE(rx) != T_ARRAY) &&
429
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
430
+ rb_raise(rb_eTypeError, "invalid type");
431
+ } -- no check since obj2c*ary will do that */
432
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
433
+ n = rb_funcall(n, rb_intern("to_i"), 0);
434
+ }
435
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
436
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
437
+ }
438
+
439
+ i_n = NUM2INT(n);
440
+ i_jx = NUM2INT(jx);
441
+ i_rx = dcl_obj2crealary(rx);
442
+
443
+
444
+ o_rtn_val = rave_(i_rx, &i_n, &i_jx);
445
+
446
+ rtn_val = rb_float_new((double)o_rtn_val);
447
+
448
+ dcl_freecrealary(i_rx);
449
+
450
+ return rtn_val;
451
+
452
+ }
453
+
454
+ static VALUE
455
+ dcl_rave0(obj, rx, n, jx)
456
+ VALUE obj, rx, n, jx;
457
+ {
458
+ real *i_rx;
459
+ integer i_n;
460
+ integer i_jx;
461
+ real o_rtn_val;
462
+ VALUE rtn_val;
463
+
464
+ if (TYPE(rx) == T_FLOAT) {
465
+ rx = rb_Array(rx);
466
+ }
467
+ /* if ((TYPE(rx) != T_ARRAY) &&
468
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
469
+ rb_raise(rb_eTypeError, "invalid type");
470
+ } -- no check since obj2c*ary will do that */
471
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
472
+ n = rb_funcall(n, rb_intern("to_i"), 0);
473
+ }
474
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
475
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
476
+ }
477
+
478
+ i_n = NUM2INT(n);
479
+ i_jx = NUM2INT(jx);
480
+ i_rx = dcl_obj2crealary(rx);
481
+
482
+
483
+ o_rtn_val = rave0_(i_rx, &i_n, &i_jx);
484
+
485
+ rtn_val = rb_float_new((double)o_rtn_val);
486
+
487
+ dcl_freecrealary(i_rx);
488
+
489
+ return rtn_val;
490
+
491
+ }
492
+
493
+ static VALUE
494
+ dcl_rave1(obj, rx, n, jx)
495
+ VALUE obj, rx, n, jx;
496
+ {
497
+ real *i_rx;
498
+ integer i_n;
499
+ integer i_jx;
500
+ real o_rtn_val;
501
+ VALUE rtn_val;
502
+
503
+ if (TYPE(rx) == T_FLOAT) {
504
+ rx = rb_Array(rx);
505
+ }
506
+ /* if ((TYPE(rx) != T_ARRAY) &&
507
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
508
+ rb_raise(rb_eTypeError, "invalid type");
509
+ } -- no check since obj2c*ary will do that */
510
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
511
+ n = rb_funcall(n, rb_intern("to_i"), 0);
512
+ }
513
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
514
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
515
+ }
516
+
517
+ i_n = NUM2INT(n);
518
+ i_jx = NUM2INT(jx);
519
+ i_rx = dcl_obj2crealary(rx);
520
+
521
+
522
+ o_rtn_val = rave1_(i_rx, &i_n, &i_jx);
523
+
524
+ rtn_val = rb_float_new((double)o_rtn_val);
525
+
526
+ dcl_freecrealary(i_rx);
527
+
528
+ return rtn_val;
529
+
530
+ }
531
+
532
+ static VALUE
533
+ dcl_rvar(obj, rx, n, jx)
534
+ VALUE obj, rx, n, jx;
535
+ {
536
+ real *i_rx;
537
+ integer i_n;
538
+ integer i_jx;
539
+ real o_rtn_val;
540
+ VALUE rtn_val;
541
+
542
+ if (TYPE(rx) == T_FLOAT) {
543
+ rx = rb_Array(rx);
544
+ }
545
+ /* if ((TYPE(rx) != T_ARRAY) &&
546
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
547
+ rb_raise(rb_eTypeError, "invalid type");
548
+ } -- no check since obj2c*ary will do that */
549
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
550
+ n = rb_funcall(n, rb_intern("to_i"), 0);
551
+ }
552
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
553
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
554
+ }
555
+
556
+ i_n = NUM2INT(n);
557
+ i_jx = NUM2INT(jx);
558
+ i_rx = dcl_obj2crealary(rx);
559
+
560
+
561
+ o_rtn_val = rvar_(i_rx, &i_n, &i_jx);
562
+
563
+ rtn_val = rb_float_new((double)o_rtn_val);
564
+
565
+ dcl_freecrealary(i_rx);
566
+
567
+ return rtn_val;
568
+
569
+ }
570
+
571
+ static VALUE
572
+ dcl_rvar0(obj, rx, n, jx)
573
+ VALUE obj, rx, n, jx;
574
+ {
575
+ real *i_rx;
576
+ integer i_n;
577
+ integer i_jx;
578
+ real o_rtn_val;
579
+ VALUE rtn_val;
580
+
581
+ if (TYPE(rx) == T_FLOAT) {
582
+ rx = rb_Array(rx);
583
+ }
584
+ /* if ((TYPE(rx) != T_ARRAY) &&
585
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
586
+ rb_raise(rb_eTypeError, "invalid type");
587
+ } -- no check since obj2c*ary will do that */
588
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
589
+ n = rb_funcall(n, rb_intern("to_i"), 0);
590
+ }
591
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
592
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
593
+ }
594
+
595
+ i_n = NUM2INT(n);
596
+ i_jx = NUM2INT(jx);
597
+ i_rx = dcl_obj2crealary(rx);
598
+
599
+
600
+ o_rtn_val = rvar0_(i_rx, &i_n, &i_jx);
601
+
602
+ rtn_val = rb_float_new((double)o_rtn_val);
603
+
604
+ dcl_freecrealary(i_rx);
605
+
606
+ return rtn_val;
607
+
608
+ }
609
+
610
+ static VALUE
611
+ dcl_rvar1(obj, rx, n, jx)
612
+ VALUE obj, rx, n, jx;
613
+ {
614
+ real *i_rx;
615
+ integer i_n;
616
+ integer i_jx;
617
+ real o_rtn_val;
618
+ VALUE rtn_val;
619
+
620
+ if (TYPE(rx) == T_FLOAT) {
621
+ rx = rb_Array(rx);
622
+ }
623
+ /* if ((TYPE(rx) != T_ARRAY) &&
624
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
625
+ rb_raise(rb_eTypeError, "invalid type");
626
+ } -- no check since obj2c*ary will do that */
627
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
628
+ n = rb_funcall(n, rb_intern("to_i"), 0);
629
+ }
630
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
631
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
632
+ }
633
+
634
+ i_n = NUM2INT(n);
635
+ i_jx = NUM2INT(jx);
636
+ i_rx = dcl_obj2crealary(rx);
637
+
638
+
639
+ o_rtn_val = rvar1_(i_rx, &i_n, &i_jx);
640
+
641
+ rtn_val = rb_float_new((double)o_rtn_val);
642
+
643
+ dcl_freecrealary(i_rx);
644
+
645
+ return rtn_val;
646
+
647
+ }
648
+
649
+ static VALUE
650
+ dcl_rstd(obj, rx, n, jx)
651
+ VALUE obj, rx, n, jx;
652
+ {
653
+ real *i_rx;
654
+ integer i_n;
655
+ integer i_jx;
656
+ real o_rtn_val;
657
+ VALUE rtn_val;
658
+
659
+ if (TYPE(rx) == T_FLOAT) {
660
+ rx = rb_Array(rx);
661
+ }
662
+ /* if ((TYPE(rx) != T_ARRAY) &&
663
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
664
+ rb_raise(rb_eTypeError, "invalid type");
665
+ } -- no check since obj2c*ary will do that */
666
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
667
+ n = rb_funcall(n, rb_intern("to_i"), 0);
668
+ }
669
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
670
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
671
+ }
672
+
673
+ i_n = NUM2INT(n);
674
+ i_jx = NUM2INT(jx);
675
+ i_rx = dcl_obj2crealary(rx);
676
+
677
+
678
+ o_rtn_val = rstd_(i_rx, &i_n, &i_jx);
679
+
680
+ rtn_val = rb_float_new((double)o_rtn_val);
681
+
682
+ dcl_freecrealary(i_rx);
683
+
684
+ return rtn_val;
685
+
686
+ }
687
+
688
+ static VALUE
689
+ dcl_rstd0(obj, rx, n, jx)
690
+ VALUE obj, rx, n, jx;
691
+ {
692
+ real *i_rx;
693
+ integer i_n;
694
+ integer i_jx;
695
+ real o_rtn_val;
696
+ VALUE rtn_val;
697
+
698
+ if (TYPE(rx) == T_FLOAT) {
699
+ rx = rb_Array(rx);
700
+ }
701
+ /* if ((TYPE(rx) != T_ARRAY) &&
702
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
703
+ rb_raise(rb_eTypeError, "invalid type");
704
+ } -- no check since obj2c*ary will do that */
705
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
706
+ n = rb_funcall(n, rb_intern("to_i"), 0);
707
+ }
708
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
709
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
710
+ }
711
+
712
+ i_n = NUM2INT(n);
713
+ i_jx = NUM2INT(jx);
714
+ i_rx = dcl_obj2crealary(rx);
715
+
716
+
717
+ o_rtn_val = rstd0_(i_rx, &i_n, &i_jx);
718
+
719
+ rtn_val = rb_float_new((double)o_rtn_val);
720
+
721
+ dcl_freecrealary(i_rx);
722
+
723
+ return rtn_val;
724
+
725
+ }
726
+
727
+ static VALUE
728
+ dcl_rstd1(obj, rx, n, jx)
729
+ VALUE obj, rx, n, jx;
730
+ {
731
+ real *i_rx;
732
+ integer i_n;
733
+ integer i_jx;
734
+ real o_rtn_val;
735
+ VALUE rtn_val;
736
+
737
+ if (TYPE(rx) == T_FLOAT) {
738
+ rx = rb_Array(rx);
739
+ }
740
+ /* if ((TYPE(rx) != T_ARRAY) &&
741
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
742
+ rb_raise(rb_eTypeError, "invalid type");
743
+ } -- no check since obj2c*ary will do that */
744
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
745
+ n = rb_funcall(n, rb_intern("to_i"), 0);
746
+ }
747
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
748
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
749
+ }
750
+
751
+ i_n = NUM2INT(n);
752
+ i_jx = NUM2INT(jx);
753
+ i_rx = dcl_obj2crealary(rx);
754
+
755
+
756
+ o_rtn_val = rstd1_(i_rx, &i_n, &i_jx);
757
+
758
+ rtn_val = rb_float_new((double)o_rtn_val);
759
+
760
+ dcl_freecrealary(i_rx);
761
+
762
+ return rtn_val;
763
+
764
+ }
765
+
766
+ static VALUE
767
+ dcl_rrms(obj, rx, n, jx)
768
+ VALUE obj, rx, n, jx;
769
+ {
770
+ real *i_rx;
771
+ integer i_n;
772
+ integer i_jx;
773
+ real o_rtn_val;
774
+ VALUE rtn_val;
775
+
776
+ if (TYPE(rx) == T_FLOAT) {
777
+ rx = rb_Array(rx);
778
+ }
779
+ /* if ((TYPE(rx) != T_ARRAY) &&
780
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
781
+ rb_raise(rb_eTypeError, "invalid type");
782
+ } -- no check since obj2c*ary will do that */
783
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
784
+ n = rb_funcall(n, rb_intern("to_i"), 0);
785
+ }
786
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
787
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
788
+ }
789
+
790
+ i_n = NUM2INT(n);
791
+ i_jx = NUM2INT(jx);
792
+ i_rx = dcl_obj2crealary(rx);
793
+
794
+
795
+ o_rtn_val = rrms_(i_rx, &i_n, &i_jx);
796
+
797
+ rtn_val = rb_float_new((double)o_rtn_val);
798
+
799
+ dcl_freecrealary(i_rx);
800
+
801
+ return rtn_val;
802
+
803
+ }
804
+
805
+ static VALUE
806
+ dcl_rrms0(obj, rx, n, jx)
807
+ VALUE obj, rx, n, jx;
808
+ {
809
+ real *i_rx;
810
+ integer i_n;
811
+ integer i_jx;
812
+ real o_rtn_val;
813
+ VALUE rtn_val;
814
+
815
+ if (TYPE(rx) == T_FLOAT) {
816
+ rx = rb_Array(rx);
817
+ }
818
+ /* if ((TYPE(rx) != T_ARRAY) &&
819
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
820
+ rb_raise(rb_eTypeError, "invalid type");
821
+ } -- no check since obj2c*ary will do that */
822
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
823
+ n = rb_funcall(n, rb_intern("to_i"), 0);
824
+ }
825
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
826
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
827
+ }
828
+
829
+ i_n = NUM2INT(n);
830
+ i_jx = NUM2INT(jx);
831
+ i_rx = dcl_obj2crealary(rx);
832
+
833
+
834
+ o_rtn_val = rrms0_(i_rx, &i_n, &i_jx);
835
+
836
+ rtn_val = rb_float_new((double)o_rtn_val);
837
+
838
+ dcl_freecrealary(i_rx);
839
+
840
+ return rtn_val;
841
+
842
+ }
843
+
844
+ static VALUE
845
+ dcl_rrms1(obj, rx, n, jx)
846
+ VALUE obj, rx, n, jx;
847
+ {
848
+ real *i_rx;
849
+ integer i_n;
850
+ integer i_jx;
851
+ real o_rtn_val;
852
+ VALUE rtn_val;
853
+
854
+ if (TYPE(rx) == T_FLOAT) {
855
+ rx = rb_Array(rx);
856
+ }
857
+ /* if ((TYPE(rx) != T_ARRAY) &&
858
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
859
+ rb_raise(rb_eTypeError, "invalid type");
860
+ } -- no check since obj2c*ary will do that */
861
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
862
+ n = rb_funcall(n, rb_intern("to_i"), 0);
863
+ }
864
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
865
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
866
+ }
867
+
868
+ i_n = NUM2INT(n);
869
+ i_jx = NUM2INT(jx);
870
+ i_rx = dcl_obj2crealary(rx);
871
+
872
+
873
+ o_rtn_val = rrms1_(i_rx, &i_n, &i_jx);
874
+
875
+ rtn_val = rb_float_new((double)o_rtn_val);
876
+
877
+ dcl_freecrealary(i_rx);
878
+
879
+ return rtn_val;
880
+
881
+ }
882
+
883
+ static VALUE
884
+ dcl_ramp(obj, rx, n, jx)
885
+ VALUE obj, rx, n, jx;
886
+ {
887
+ real *i_rx;
888
+ integer i_n;
889
+ integer i_jx;
890
+ real o_rtn_val;
891
+ VALUE rtn_val;
892
+
893
+ if (TYPE(rx) == T_FLOAT) {
894
+ rx = rb_Array(rx);
895
+ }
896
+ /* if ((TYPE(rx) != T_ARRAY) &&
897
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
898
+ rb_raise(rb_eTypeError, "invalid type");
899
+ } -- no check since obj2c*ary will do that */
900
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
901
+ n = rb_funcall(n, rb_intern("to_i"), 0);
902
+ }
903
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
904
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
905
+ }
906
+
907
+ i_n = NUM2INT(n);
908
+ i_jx = NUM2INT(jx);
909
+ i_rx = dcl_obj2crealary(rx);
910
+
911
+
912
+ o_rtn_val = ramp_(i_rx, &i_n, &i_jx);
913
+
914
+ rtn_val = rb_float_new((double)o_rtn_val);
915
+
916
+ dcl_freecrealary(i_rx);
917
+
918
+ return rtn_val;
919
+
920
+ }
921
+
922
+ static VALUE
923
+ dcl_ramp0(obj, rx, n, jx)
924
+ VALUE obj, rx, n, jx;
925
+ {
926
+ real *i_rx;
927
+ integer i_n;
928
+ integer i_jx;
929
+ real o_rtn_val;
930
+ VALUE rtn_val;
931
+
932
+ if (TYPE(rx) == T_FLOAT) {
933
+ rx = rb_Array(rx);
934
+ }
935
+ /* if ((TYPE(rx) != T_ARRAY) &&
936
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
937
+ rb_raise(rb_eTypeError, "invalid type");
938
+ } -- no check since obj2c*ary will do that */
939
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
940
+ n = rb_funcall(n, rb_intern("to_i"), 0);
941
+ }
942
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
943
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
944
+ }
945
+
946
+ i_n = NUM2INT(n);
947
+ i_jx = NUM2INT(jx);
948
+ i_rx = dcl_obj2crealary(rx);
949
+
950
+
951
+ o_rtn_val = ramp0_(i_rx, &i_n, &i_jx);
952
+
953
+ rtn_val = rb_float_new((double)o_rtn_val);
954
+
955
+ dcl_freecrealary(i_rx);
956
+
957
+ return rtn_val;
958
+
959
+ }
960
+
961
+ static VALUE
962
+ dcl_ramp1(obj, rx, n, jx)
963
+ VALUE obj, rx, n, jx;
964
+ {
965
+ real *i_rx;
966
+ integer i_n;
967
+ integer i_jx;
968
+ real o_rtn_val;
969
+ VALUE rtn_val;
970
+
971
+ if (TYPE(rx) == T_FLOAT) {
972
+ rx = rb_Array(rx);
973
+ }
974
+ /* if ((TYPE(rx) != T_ARRAY) &&
975
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
976
+ rb_raise(rb_eTypeError, "invalid type");
977
+ } -- no check since obj2c*ary will do that */
978
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
979
+ n = rb_funcall(n, rb_intern("to_i"), 0);
980
+ }
981
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
982
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
983
+ }
984
+
985
+ i_n = NUM2INT(n);
986
+ i_jx = NUM2INT(jx);
987
+ i_rx = dcl_obj2crealary(rx);
988
+
989
+
990
+ o_rtn_val = ramp1_(i_rx, &i_n, &i_jx);
991
+
992
+ rtn_val = rb_float_new((double)o_rtn_val);
993
+
994
+ dcl_freecrealary(i_rx);
995
+
996
+ return rtn_val;
997
+
998
+ }
999
+
1000
+ static VALUE
1001
+ dcl_rvmax(obj, rx, ns, np, nq, nd)
1002
+ VALUE obj, rx, ns, np, nq, nd;
1003
+ {
1004
+ real *i_rx;
1005
+ integer *i_ns;
1006
+ integer *i_np;
1007
+ integer *i_nq;
1008
+ integer i_nd;
1009
+ real o_rtn_val;
1010
+ VALUE rtn_val;
1011
+
1012
+ if (TYPE(rx) == T_FLOAT) {
1013
+ rx = rb_Array(rx);
1014
+ }
1015
+ /* if ((TYPE(rx) != T_ARRAY) &&
1016
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
1017
+ rb_raise(rb_eTypeError, "invalid type");
1018
+ } -- no check since obj2c*ary will do that */
1019
+ if ((TYPE(ns) == T_BIGNUM) || (TYPE(ns) == T_FIXNUM)) {
1020
+ ns = rb_Array(ns);
1021
+ }
1022
+ /* if ((TYPE(ns) != T_ARRAY) &&
1023
+ (rb_obj_is_kind_of(ns, cNArray) != Qtrue)) {
1024
+ rb_raise(rb_eTypeError, "invalid type");
1025
+ } -- no check since obj2c*ary will do that */
1026
+ if ((TYPE(np) == T_BIGNUM) || (TYPE(np) == T_FIXNUM)) {
1027
+ np = rb_Array(np);
1028
+ }
1029
+ /* if ((TYPE(np) != T_ARRAY) &&
1030
+ (rb_obj_is_kind_of(np, cNArray) != Qtrue)) {
1031
+ rb_raise(rb_eTypeError, "invalid type");
1032
+ } -- no check since obj2c*ary will do that */
1033
+ if ((TYPE(nq) == T_BIGNUM) || (TYPE(nq) == T_FIXNUM)) {
1034
+ nq = rb_Array(nq);
1035
+ }
1036
+ /* if ((TYPE(nq) != T_ARRAY) &&
1037
+ (rb_obj_is_kind_of(nq, cNArray) != Qtrue)) {
1038
+ rb_raise(rb_eTypeError, "invalid type");
1039
+ } -- no check since obj2c*ary will do that */
1040
+ if ((TYPE(nd) != T_BIGNUM) || (TYPE(nd) != T_FIXNUM)) {
1041
+ nd = rb_funcall(nd, rb_intern("to_i"), 0);
1042
+ }
1043
+
1044
+ i_nd = NUM2INT(nd);
1045
+ i_rx = dcl_obj2crealary(rx);
1046
+ i_ns = dcl_obj2cintegerary(ns);
1047
+ i_np = dcl_obj2cintegerary(np);
1048
+ i_nq = dcl_obj2cintegerary(nq);
1049
+
1050
+
1051
+ o_rtn_val = rvmax_(i_rx, i_ns, i_np, i_nq, &i_nd);
1052
+
1053
+ rtn_val = rb_float_new((double)o_rtn_val);
1054
+
1055
+ dcl_freecrealary(i_rx);
1056
+ dcl_freecintegerary(i_ns);
1057
+ dcl_freecintegerary(i_np);
1058
+ dcl_freecintegerary(i_nq);
1059
+
1060
+ return rtn_val;
1061
+
1062
+ }
1063
+
1064
+ static VALUE
1065
+ dcl_rvmax0(obj, rx, ns, np, nq, nd)
1066
+ VALUE obj, rx, ns, np, nq, nd;
1067
+ {
1068
+ real *i_rx;
1069
+ integer *i_ns;
1070
+ integer *i_np;
1071
+ integer *i_nq;
1072
+ integer i_nd;
1073
+ real o_rtn_val;
1074
+ VALUE rtn_val;
1075
+
1076
+ if (TYPE(rx) == T_FLOAT) {
1077
+ rx = rb_Array(rx);
1078
+ }
1079
+ /* if ((TYPE(rx) != T_ARRAY) &&
1080
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
1081
+ rb_raise(rb_eTypeError, "invalid type");
1082
+ } -- no check since obj2c*ary will do that */
1083
+ if ((TYPE(ns) == T_BIGNUM) || (TYPE(ns) == T_FIXNUM)) {
1084
+ ns = rb_Array(ns);
1085
+ }
1086
+ /* if ((TYPE(ns) != T_ARRAY) &&
1087
+ (rb_obj_is_kind_of(ns, cNArray) != Qtrue)) {
1088
+ rb_raise(rb_eTypeError, "invalid type");
1089
+ } -- no check since obj2c*ary will do that */
1090
+ if ((TYPE(np) == T_BIGNUM) || (TYPE(np) == T_FIXNUM)) {
1091
+ np = rb_Array(np);
1092
+ }
1093
+ /* if ((TYPE(np) != T_ARRAY) &&
1094
+ (rb_obj_is_kind_of(np, cNArray) != Qtrue)) {
1095
+ rb_raise(rb_eTypeError, "invalid type");
1096
+ } -- no check since obj2c*ary will do that */
1097
+ if ((TYPE(nq) == T_BIGNUM) || (TYPE(nq) == T_FIXNUM)) {
1098
+ nq = rb_Array(nq);
1099
+ }
1100
+ /* if ((TYPE(nq) != T_ARRAY) &&
1101
+ (rb_obj_is_kind_of(nq, cNArray) != Qtrue)) {
1102
+ rb_raise(rb_eTypeError, "invalid type");
1103
+ } -- no check since obj2c*ary will do that */
1104
+ if ((TYPE(nd) != T_BIGNUM) || (TYPE(nd) != T_FIXNUM)) {
1105
+ nd = rb_funcall(nd, rb_intern("to_i"), 0);
1106
+ }
1107
+
1108
+ i_nd = NUM2INT(nd);
1109
+ i_rx = dcl_obj2crealary(rx);
1110
+ i_ns = dcl_obj2cintegerary(ns);
1111
+ i_np = dcl_obj2cintegerary(np);
1112
+ i_nq = dcl_obj2cintegerary(nq);
1113
+
1114
+
1115
+ o_rtn_val = rvmax0_(i_rx, i_ns, i_np, i_nq, &i_nd);
1116
+
1117
+ rtn_val = rb_float_new((double)o_rtn_val);
1118
+
1119
+ dcl_freecrealary(i_rx);
1120
+ dcl_freecintegerary(i_ns);
1121
+ dcl_freecintegerary(i_np);
1122
+ dcl_freecintegerary(i_nq);
1123
+
1124
+ return rtn_val;
1125
+
1126
+ }
1127
+
1128
+ static VALUE
1129
+ dcl_rvmin(obj, rx, ns, np, nq, nd)
1130
+ VALUE obj, rx, ns, np, nq, nd;
1131
+ {
1132
+ real *i_rx;
1133
+ integer *i_ns;
1134
+ integer *i_np;
1135
+ integer *i_nq;
1136
+ integer i_nd;
1137
+ real o_rtn_val;
1138
+ VALUE rtn_val;
1139
+
1140
+ if (TYPE(rx) == T_FLOAT) {
1141
+ rx = rb_Array(rx);
1142
+ }
1143
+ /* if ((TYPE(rx) != T_ARRAY) &&
1144
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
1145
+ rb_raise(rb_eTypeError, "invalid type");
1146
+ } -- no check since obj2c*ary will do that */
1147
+ if ((TYPE(ns) == T_BIGNUM) || (TYPE(ns) == T_FIXNUM)) {
1148
+ ns = rb_Array(ns);
1149
+ }
1150
+ /* if ((TYPE(ns) != T_ARRAY) &&
1151
+ (rb_obj_is_kind_of(ns, cNArray) != Qtrue)) {
1152
+ rb_raise(rb_eTypeError, "invalid type");
1153
+ } -- no check since obj2c*ary will do that */
1154
+ if ((TYPE(np) == T_BIGNUM) || (TYPE(np) == T_FIXNUM)) {
1155
+ np = rb_Array(np);
1156
+ }
1157
+ /* if ((TYPE(np) != T_ARRAY) &&
1158
+ (rb_obj_is_kind_of(np, cNArray) != Qtrue)) {
1159
+ rb_raise(rb_eTypeError, "invalid type");
1160
+ } -- no check since obj2c*ary will do that */
1161
+ if ((TYPE(nq) == T_BIGNUM) || (TYPE(nq) == T_FIXNUM)) {
1162
+ nq = rb_Array(nq);
1163
+ }
1164
+ /* if ((TYPE(nq) != T_ARRAY) &&
1165
+ (rb_obj_is_kind_of(nq, cNArray) != Qtrue)) {
1166
+ rb_raise(rb_eTypeError, "invalid type");
1167
+ } -- no check since obj2c*ary will do that */
1168
+ if ((TYPE(nd) != T_BIGNUM) || (TYPE(nd) != T_FIXNUM)) {
1169
+ nd = rb_funcall(nd, rb_intern("to_i"), 0);
1170
+ }
1171
+
1172
+ i_nd = NUM2INT(nd);
1173
+ i_rx = dcl_obj2crealary(rx);
1174
+ i_ns = dcl_obj2cintegerary(ns);
1175
+ i_np = dcl_obj2cintegerary(np);
1176
+ i_nq = dcl_obj2cintegerary(nq);
1177
+
1178
+
1179
+ o_rtn_val = rvmin_(i_rx, i_ns, i_np, i_nq, &i_nd);
1180
+
1181
+ rtn_val = rb_float_new((double)o_rtn_val);
1182
+
1183
+ dcl_freecrealary(i_rx);
1184
+ dcl_freecintegerary(i_ns);
1185
+ dcl_freecintegerary(i_np);
1186
+ dcl_freecintegerary(i_nq);
1187
+
1188
+ return rtn_val;
1189
+
1190
+ }
1191
+
1192
+ static VALUE
1193
+ dcl_rvmax1(obj, rx, ns, np, nq, nd)
1194
+ VALUE obj, rx, ns, np, nq, nd;
1195
+ {
1196
+ real *i_rx;
1197
+ integer *i_ns;
1198
+ integer *i_np;
1199
+ integer *i_nq;
1200
+ integer i_nd;
1201
+ real o_rtn_val;
1202
+ VALUE rtn_val;
1203
+
1204
+ if (TYPE(rx) == T_FLOAT) {
1205
+ rx = rb_Array(rx);
1206
+ }
1207
+ /* if ((TYPE(rx) != T_ARRAY) &&
1208
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
1209
+ rb_raise(rb_eTypeError, "invalid type");
1210
+ } -- no check since obj2c*ary will do that */
1211
+ if ((TYPE(ns) == T_BIGNUM) || (TYPE(ns) == T_FIXNUM)) {
1212
+ ns = rb_Array(ns);
1213
+ }
1214
+ /* if ((TYPE(ns) != T_ARRAY) &&
1215
+ (rb_obj_is_kind_of(ns, cNArray) != Qtrue)) {
1216
+ rb_raise(rb_eTypeError, "invalid type");
1217
+ } -- no check since obj2c*ary will do that */
1218
+ if ((TYPE(np) == T_BIGNUM) || (TYPE(np) == T_FIXNUM)) {
1219
+ np = rb_Array(np);
1220
+ }
1221
+ /* if ((TYPE(np) != T_ARRAY) &&
1222
+ (rb_obj_is_kind_of(np, cNArray) != Qtrue)) {
1223
+ rb_raise(rb_eTypeError, "invalid type");
1224
+ } -- no check since obj2c*ary will do that */
1225
+ if ((TYPE(nq) == T_BIGNUM) || (TYPE(nq) == T_FIXNUM)) {
1226
+ nq = rb_Array(nq);
1227
+ }
1228
+ /* if ((TYPE(nq) != T_ARRAY) &&
1229
+ (rb_obj_is_kind_of(nq, cNArray) != Qtrue)) {
1230
+ rb_raise(rb_eTypeError, "invalid type");
1231
+ } -- no check since obj2c*ary will do that */
1232
+ if ((TYPE(nd) != T_BIGNUM) || (TYPE(nd) != T_FIXNUM)) {
1233
+ nd = rb_funcall(nd, rb_intern("to_i"), 0);
1234
+ }
1235
+
1236
+ i_nd = NUM2INT(nd);
1237
+ i_rx = dcl_obj2crealary(rx);
1238
+ i_ns = dcl_obj2cintegerary(ns);
1239
+ i_np = dcl_obj2cintegerary(np);
1240
+ i_nq = dcl_obj2cintegerary(nq);
1241
+
1242
+
1243
+ o_rtn_val = rvmax1_(i_rx, i_ns, i_np, i_nq, &i_nd);
1244
+
1245
+ rtn_val = rb_float_new((double)o_rtn_val);
1246
+
1247
+ dcl_freecrealary(i_rx);
1248
+ dcl_freecintegerary(i_ns);
1249
+ dcl_freecintegerary(i_np);
1250
+ dcl_freecintegerary(i_nq);
1251
+
1252
+ return rtn_val;
1253
+
1254
+ }
1255
+
1256
+ static VALUE
1257
+ dcl_rvmin1(obj, rx, ns, np, nq, nd)
1258
+ VALUE obj, rx, ns, np, nq, nd;
1259
+ {
1260
+ real *i_rx;
1261
+ integer *i_ns;
1262
+ integer *i_np;
1263
+ integer *i_nq;
1264
+ integer i_nd;
1265
+ real o_rtn_val;
1266
+ VALUE rtn_val;
1267
+
1268
+ if (TYPE(rx) == T_FLOAT) {
1269
+ rx = rb_Array(rx);
1270
+ }
1271
+ /* if ((TYPE(rx) != T_ARRAY) &&
1272
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
1273
+ rb_raise(rb_eTypeError, "invalid type");
1274
+ } -- no check since obj2c*ary will do that */
1275
+ if ((TYPE(ns) == T_BIGNUM) || (TYPE(ns) == T_FIXNUM)) {
1276
+ ns = rb_Array(ns);
1277
+ }
1278
+ /* if ((TYPE(ns) != T_ARRAY) &&
1279
+ (rb_obj_is_kind_of(ns, cNArray) != Qtrue)) {
1280
+ rb_raise(rb_eTypeError, "invalid type");
1281
+ } -- no check since obj2c*ary will do that */
1282
+ if ((TYPE(np) == T_BIGNUM) || (TYPE(np) == T_FIXNUM)) {
1283
+ np = rb_Array(np);
1284
+ }
1285
+ /* if ((TYPE(np) != T_ARRAY) &&
1286
+ (rb_obj_is_kind_of(np, cNArray) != Qtrue)) {
1287
+ rb_raise(rb_eTypeError, "invalid type");
1288
+ } -- no check since obj2c*ary will do that */
1289
+ if ((TYPE(nq) == T_BIGNUM) || (TYPE(nq) == T_FIXNUM)) {
1290
+ nq = rb_Array(nq);
1291
+ }
1292
+ /* if ((TYPE(nq) != T_ARRAY) &&
1293
+ (rb_obj_is_kind_of(nq, cNArray) != Qtrue)) {
1294
+ rb_raise(rb_eTypeError, "invalid type");
1295
+ } -- no check since obj2c*ary will do that */
1296
+ if ((TYPE(nd) != T_BIGNUM) || (TYPE(nd) != T_FIXNUM)) {
1297
+ nd = rb_funcall(nd, rb_intern("to_i"), 0);
1298
+ }
1299
+
1300
+ i_nd = NUM2INT(nd);
1301
+ i_rx = dcl_obj2crealary(rx);
1302
+ i_ns = dcl_obj2cintegerary(ns);
1303
+ i_np = dcl_obj2cintegerary(np);
1304
+ i_nq = dcl_obj2cintegerary(nq);
1305
+
1306
+
1307
+ o_rtn_val = rvmin1_(i_rx, i_ns, i_np, i_nq, &i_nd);
1308
+
1309
+ rtn_val = rb_float_new((double)o_rtn_val);
1310
+
1311
+ dcl_freecrealary(i_rx);
1312
+ dcl_freecintegerary(i_ns);
1313
+ dcl_freecintegerary(i_np);
1314
+ dcl_freecintegerary(i_nq);
1315
+
1316
+ return rtn_val;
1317
+
1318
+ }
1319
+
1320
+ static VALUE
1321
+ dcl_rvmin0(obj, rx, ns, np, nq, nd)
1322
+ VALUE obj, rx, ns, np, nq, nd;
1323
+ {
1324
+ real *i_rx;
1325
+ integer *i_ns;
1326
+ integer *i_np;
1327
+ integer *i_nq;
1328
+ integer i_nd;
1329
+ real o_rtn_val;
1330
+ VALUE rtn_val;
1331
+
1332
+ if (TYPE(rx) == T_FLOAT) {
1333
+ rx = rb_Array(rx);
1334
+ }
1335
+ /* if ((TYPE(rx) != T_ARRAY) &&
1336
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
1337
+ rb_raise(rb_eTypeError, "invalid type");
1338
+ } -- no check since obj2c*ary will do that */
1339
+ if ((TYPE(ns) == T_BIGNUM) || (TYPE(ns) == T_FIXNUM)) {
1340
+ ns = rb_Array(ns);
1341
+ }
1342
+ /* if ((TYPE(ns) != T_ARRAY) &&
1343
+ (rb_obj_is_kind_of(ns, cNArray) != Qtrue)) {
1344
+ rb_raise(rb_eTypeError, "invalid type");
1345
+ } -- no check since obj2c*ary will do that */
1346
+ if ((TYPE(np) == T_BIGNUM) || (TYPE(np) == T_FIXNUM)) {
1347
+ np = rb_Array(np);
1348
+ }
1349
+ /* if ((TYPE(np) != T_ARRAY) &&
1350
+ (rb_obj_is_kind_of(np, cNArray) != Qtrue)) {
1351
+ rb_raise(rb_eTypeError, "invalid type");
1352
+ } -- no check since obj2c*ary will do that */
1353
+ if ((TYPE(nq) == T_BIGNUM) || (TYPE(nq) == T_FIXNUM)) {
1354
+ nq = rb_Array(nq);
1355
+ }
1356
+ /* if ((TYPE(nq) != T_ARRAY) &&
1357
+ (rb_obj_is_kind_of(nq, cNArray) != Qtrue)) {
1358
+ rb_raise(rb_eTypeError, "invalid type");
1359
+ } -- no check since obj2c*ary will do that */
1360
+ if ((TYPE(nd) != T_BIGNUM) || (TYPE(nd) != T_FIXNUM)) {
1361
+ nd = rb_funcall(nd, rb_intern("to_i"), 0);
1362
+ }
1363
+
1364
+ i_nd = NUM2INT(nd);
1365
+ i_rx = dcl_obj2crealary(rx);
1366
+ i_ns = dcl_obj2cintegerary(ns);
1367
+ i_np = dcl_obj2cintegerary(np);
1368
+ i_nq = dcl_obj2cintegerary(nq);
1369
+
1370
+
1371
+ o_rtn_val = rvmin0_(i_rx, i_ns, i_np, i_nq, &i_nd);
1372
+
1373
+ rtn_val = rb_float_new((double)o_rtn_val);
1374
+
1375
+ dcl_freecrealary(i_rx);
1376
+ dcl_freecintegerary(i_ns);
1377
+ dcl_freecintegerary(i_np);
1378
+ dcl_freecintegerary(i_nq);
1379
+
1380
+ return rtn_val;
1381
+
1382
+ }
1383
+ void
1384
+ init_math1_rfalib(mDCL)
1385
+ VALUE mDCL;
1386
+ {
1387
+ rb_define_module_function(mDCL, "rmax", dcl_rmax, 3);
1388
+ rb_define_module_function(mDCL, "rmax0", dcl_rmax0, 3);
1389
+ rb_define_module_function(mDCL, "rmax1", dcl_rmax1, 3);
1390
+ rb_define_module_function(mDCL, "rmin", dcl_rmin, 3);
1391
+ rb_define_module_function(mDCL, "rmin0", dcl_rmin0, 3);
1392
+ rb_define_module_function(mDCL, "rmin1", dcl_rmin1, 3);
1393
+ rb_define_module_function(mDCL, "rsum", dcl_rsum, 3);
1394
+ rb_define_module_function(mDCL, "rsum0", dcl_rsum0, 3);
1395
+ rb_define_module_function(mDCL, "rsum1", dcl_rsum1, 3);
1396
+ rb_define_module_function(mDCL, "rave", dcl_rave, 3);
1397
+ rb_define_module_function(mDCL, "rave0", dcl_rave0, 3);
1398
+ rb_define_module_function(mDCL, "rave1", dcl_rave1, 3);
1399
+ rb_define_module_function(mDCL, "rvar", dcl_rvar, 3);
1400
+ rb_define_module_function(mDCL, "rvar0", dcl_rvar0, 3);
1401
+ rb_define_module_function(mDCL, "rvar1", dcl_rvar1, 3);
1402
+ rb_define_module_function(mDCL, "rstd", dcl_rstd, 3);
1403
+ rb_define_module_function(mDCL, "rstd0", dcl_rstd0, 3);
1404
+ rb_define_module_function(mDCL, "rstd1", dcl_rstd1, 3);
1405
+ rb_define_module_function(mDCL, "rrms", dcl_rrms, 3);
1406
+ rb_define_module_function(mDCL, "rrms0", dcl_rrms0, 3);
1407
+ rb_define_module_function(mDCL, "rrms1", dcl_rrms1, 3);
1408
+ rb_define_module_function(mDCL, "ramp", dcl_ramp, 3);
1409
+ rb_define_module_function(mDCL, "ramp0", dcl_ramp0, 3);
1410
+ rb_define_module_function(mDCL, "ramp1", dcl_ramp1, 3);
1411
+ rb_define_module_function(mDCL, "rvmax", dcl_rvmax, 5);
1412
+ rb_define_module_function(mDCL, "rvmax0", dcl_rvmax0, 5);
1413
+ rb_define_module_function(mDCL, "rvmin", dcl_rvmin, 5);
1414
+ rb_define_module_function(mDCL, "rvmax1", dcl_rvmax1, 5);
1415
+ rb_define_module_function(mDCL, "rvmin1", dcl_rvmin1, 5);
1416
+ rb_define_module_function(mDCL, "rvmin0", dcl_rvmin0, 5);
1417
+ }