ruby-dcl 1.6.2

Sign up to get free protection for your applications and to get access to all the features.
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_vrblib.c ADDED
@@ -0,0 +1,1027 @@
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_vrfnb(obj, rx, ry, n, jx, jy, jz, rfnb)
66
+ VALUE obj, rx, ry, n, jx, jy, jz, rfnb;
67
+ {
68
+ real *i_rx;
69
+ real *i_ry;
70
+ real *o_rz;
71
+ integer i_n;
72
+ integer i_jx;
73
+ integer i_jy;
74
+ integer i_jz;
75
+ real i_rfnb;
76
+ VALUE rz;
77
+
78
+ if (TYPE(rx) == T_FLOAT) {
79
+ rx = rb_Array(rx);
80
+ }
81
+ /* if ((TYPE(rx) != T_ARRAY) &&
82
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
83
+ rb_raise(rb_eTypeError, "invalid type");
84
+ } -- no check since obj2c*ary will do that */
85
+ if (TYPE(ry) == T_FLOAT) {
86
+ ry = rb_Array(ry);
87
+ }
88
+ /* if ((TYPE(ry) != T_ARRAY) &&
89
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
90
+ rb_raise(rb_eTypeError, "invalid type");
91
+ } -- no check since obj2c*ary will do that */
92
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
93
+ n = rb_funcall(n, rb_intern("to_i"), 0);
94
+ }
95
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
96
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
97
+ }
98
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
99
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
100
+ }
101
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
102
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
103
+ }
104
+ if (TYPE(rfnb) != T_FLOAT) {
105
+ rfnb = rb_funcall(rfnb, rb_intern("to_f"), 0);
106
+ }
107
+
108
+ i_n = NUM2INT(n);
109
+ i_jx = NUM2INT(jx);
110
+ i_jy = NUM2INT(jy);
111
+ i_jz = NUM2INT(jz);
112
+ i_rfnb = (real)NUM2DBL(rfnb);
113
+ i_rx = dcl_obj2crealary(rx);
114
+ i_ry = dcl_obj2crealary(ry);
115
+
116
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
117
+
118
+ vrfnb_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz, &i_rfnb);
119
+
120
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
121
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
122
+ }
123
+
124
+ dcl_freecrealary(i_rx);
125
+ dcl_freecrealary(i_ry);
126
+
127
+ return rz;
128
+
129
+ }
130
+
131
+ static VALUE
132
+ dcl_vrfnb0(obj, rx, ry, n, jx, jy, jz, rfnb)
133
+ VALUE obj, rx, ry, n, jx, jy, jz, rfnb;
134
+ {
135
+ real *i_rx;
136
+ real *i_ry;
137
+ real *o_rz;
138
+ integer i_n;
139
+ integer i_jx;
140
+ integer i_jy;
141
+ integer i_jz;
142
+ real i_rfnb;
143
+ VALUE rz;
144
+
145
+ if (TYPE(rx) == T_FLOAT) {
146
+ rx = rb_Array(rx);
147
+ }
148
+ /* if ((TYPE(rx) != T_ARRAY) &&
149
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
150
+ rb_raise(rb_eTypeError, "invalid type");
151
+ } -- no check since obj2c*ary will do that */
152
+ if (TYPE(ry) == T_FLOAT) {
153
+ ry = rb_Array(ry);
154
+ }
155
+ /* if ((TYPE(ry) != T_ARRAY) &&
156
+ (rb_obj_is_kind_of(ry, 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
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
166
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
167
+ }
168
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
169
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
170
+ }
171
+ if (TYPE(rfnb) != T_FLOAT) {
172
+ rfnb = rb_funcall(rfnb, rb_intern("to_f"), 0);
173
+ }
174
+
175
+ i_n = NUM2INT(n);
176
+ i_jx = NUM2INT(jx);
177
+ i_jy = NUM2INT(jy);
178
+ i_jz = NUM2INT(jz);
179
+ i_rfnb = (real)NUM2DBL(rfnb);
180
+ i_rx = dcl_obj2crealary(rx);
181
+ i_ry = dcl_obj2crealary(ry);
182
+
183
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
184
+
185
+ vrfnb0_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz, &i_rfnb);
186
+
187
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
188
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
189
+ }
190
+
191
+ dcl_freecrealary(i_rx);
192
+ dcl_freecrealary(i_ry);
193
+
194
+ return rz;
195
+
196
+ }
197
+
198
+ static VALUE
199
+ dcl_vrfnb1(obj, rx, ry, n, jx, jy, jz, rfnb)
200
+ VALUE obj, rx, ry, n, jx, jy, jz, rfnb;
201
+ {
202
+ real *i_rx;
203
+ real *i_ry;
204
+ real *o_rz;
205
+ integer i_n;
206
+ integer i_jx;
207
+ integer i_jy;
208
+ integer i_jz;
209
+ real i_rfnb;
210
+ VALUE rz;
211
+
212
+ if (TYPE(rx) == T_FLOAT) {
213
+ rx = rb_Array(rx);
214
+ }
215
+ /* if ((TYPE(rx) != T_ARRAY) &&
216
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
217
+ rb_raise(rb_eTypeError, "invalid type");
218
+ } -- no check since obj2c*ary will do that */
219
+ if (TYPE(ry) == T_FLOAT) {
220
+ ry = rb_Array(ry);
221
+ }
222
+ /* if ((TYPE(ry) != T_ARRAY) &&
223
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
224
+ rb_raise(rb_eTypeError, "invalid type");
225
+ } -- no check since obj2c*ary will do that */
226
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
227
+ n = rb_funcall(n, rb_intern("to_i"), 0);
228
+ }
229
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
230
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
231
+ }
232
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
233
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
234
+ }
235
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
236
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
237
+ }
238
+ if (TYPE(rfnb) != T_FLOAT) {
239
+ rfnb = rb_funcall(rfnb, rb_intern("to_f"), 0);
240
+ }
241
+
242
+ i_n = NUM2INT(n);
243
+ i_jx = NUM2INT(jx);
244
+ i_jy = NUM2INT(jy);
245
+ i_jz = NUM2INT(jz);
246
+ i_rfnb = (real)NUM2DBL(rfnb);
247
+ i_rx = dcl_obj2crealary(rx);
248
+ i_ry = dcl_obj2crealary(ry);
249
+
250
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
251
+
252
+ vrfnb1_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz, &i_rfnb);
253
+
254
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
255
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
256
+ }
257
+
258
+ dcl_freecrealary(i_rx);
259
+ dcl_freecrealary(i_ry);
260
+
261
+ return rz;
262
+
263
+ }
264
+
265
+ static VALUE
266
+ dcl_vradd(obj, rx, ry, n, jx, jy, jz)
267
+ VALUE obj, rx, ry, n, jx, jy, jz;
268
+ {
269
+ real *i_rx;
270
+ real *i_ry;
271
+ real *o_rz;
272
+ integer i_n;
273
+ integer i_jx;
274
+ integer i_jy;
275
+ integer i_jz;
276
+ VALUE rz;
277
+
278
+ if (TYPE(rx) == T_FLOAT) {
279
+ rx = rb_Array(rx);
280
+ }
281
+ /* if ((TYPE(rx) != T_ARRAY) &&
282
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
283
+ rb_raise(rb_eTypeError, "invalid type");
284
+ } -- no check since obj2c*ary will do that */
285
+ if (TYPE(ry) == T_FLOAT) {
286
+ ry = rb_Array(ry);
287
+ }
288
+ /* if ((TYPE(ry) != T_ARRAY) &&
289
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
290
+ rb_raise(rb_eTypeError, "invalid type");
291
+ } -- no check since obj2c*ary will do that */
292
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
293
+ n = rb_funcall(n, rb_intern("to_i"), 0);
294
+ }
295
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
296
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
297
+ }
298
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
299
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
300
+ }
301
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
302
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
303
+ }
304
+
305
+ i_n = NUM2INT(n);
306
+ i_jx = NUM2INT(jx);
307
+ i_jy = NUM2INT(jy);
308
+ i_jz = NUM2INT(jz);
309
+ i_rx = dcl_obj2crealary(rx);
310
+ i_ry = dcl_obj2crealary(ry);
311
+
312
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
313
+
314
+ vradd_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
315
+
316
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
317
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
318
+ }
319
+
320
+ dcl_freecrealary(i_rx);
321
+ dcl_freecrealary(i_ry);
322
+
323
+ return rz;
324
+
325
+ }
326
+
327
+ static VALUE
328
+ dcl_vradd0(obj, rx, ry, n, jx, jy, jz)
329
+ VALUE obj, rx, ry, n, jx, jy, jz;
330
+ {
331
+ real *i_rx;
332
+ real *i_ry;
333
+ real *o_rz;
334
+ integer i_n;
335
+ integer i_jx;
336
+ integer i_jy;
337
+ integer i_jz;
338
+ VALUE rz;
339
+
340
+ if (TYPE(rx) == T_FLOAT) {
341
+ rx = rb_Array(rx);
342
+ }
343
+ /* if ((TYPE(rx) != T_ARRAY) &&
344
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
345
+ rb_raise(rb_eTypeError, "invalid type");
346
+ } -- no check since obj2c*ary will do that */
347
+ if (TYPE(ry) == T_FLOAT) {
348
+ ry = rb_Array(ry);
349
+ }
350
+ /* if ((TYPE(ry) != T_ARRAY) &&
351
+ (rb_obj_is_kind_of(ry, 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
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
361
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
362
+ }
363
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
364
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
365
+ }
366
+
367
+ i_n = NUM2INT(n);
368
+ i_jx = NUM2INT(jx);
369
+ i_jy = NUM2INT(jy);
370
+ i_jz = NUM2INT(jz);
371
+ i_rx = dcl_obj2crealary(rx);
372
+ i_ry = dcl_obj2crealary(ry);
373
+
374
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
375
+
376
+ vradd0_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
377
+
378
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
379
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
380
+ }
381
+
382
+ dcl_freecrealary(i_rx);
383
+ dcl_freecrealary(i_ry);
384
+
385
+ return rz;
386
+
387
+ }
388
+
389
+ static VALUE
390
+ dcl_vradd1(obj, rx, ry, n, jx, jy, jz)
391
+ VALUE obj, rx, ry, n, jx, jy, jz;
392
+ {
393
+ real *i_rx;
394
+ real *i_ry;
395
+ real *o_rz;
396
+ integer i_n;
397
+ integer i_jx;
398
+ integer i_jy;
399
+ integer i_jz;
400
+ VALUE rz;
401
+
402
+ if (TYPE(rx) == T_FLOAT) {
403
+ rx = rb_Array(rx);
404
+ }
405
+ /* if ((TYPE(rx) != T_ARRAY) &&
406
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
407
+ rb_raise(rb_eTypeError, "invalid type");
408
+ } -- no check since obj2c*ary will do that */
409
+ if (TYPE(ry) == T_FLOAT) {
410
+ ry = rb_Array(ry);
411
+ }
412
+ /* if ((TYPE(ry) != T_ARRAY) &&
413
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
414
+ rb_raise(rb_eTypeError, "invalid type");
415
+ } -- no check since obj2c*ary will do that */
416
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
417
+ n = rb_funcall(n, rb_intern("to_i"), 0);
418
+ }
419
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
420
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
421
+ }
422
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
423
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
424
+ }
425
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
426
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
427
+ }
428
+
429
+ i_n = NUM2INT(n);
430
+ i_jx = NUM2INT(jx);
431
+ i_jy = NUM2INT(jy);
432
+ i_jz = NUM2INT(jz);
433
+ i_rx = dcl_obj2crealary(rx);
434
+ i_ry = dcl_obj2crealary(ry);
435
+
436
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
437
+
438
+ vradd1_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
439
+
440
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
441
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
442
+ }
443
+
444
+ dcl_freecrealary(i_rx);
445
+ dcl_freecrealary(i_ry);
446
+
447
+ return rz;
448
+
449
+ }
450
+
451
+ static VALUE
452
+ dcl_vrsub(obj, rx, ry, n, jx, jy, jz)
453
+ VALUE obj, rx, ry, n, jx, jy, jz;
454
+ {
455
+ real *i_rx;
456
+ real *i_ry;
457
+ real *o_rz;
458
+ integer i_n;
459
+ integer i_jx;
460
+ integer i_jy;
461
+ integer i_jz;
462
+ VALUE rz;
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(ry) == T_FLOAT) {
472
+ ry = rb_Array(ry);
473
+ }
474
+ /* if ((TYPE(ry) != T_ARRAY) &&
475
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
476
+ rb_raise(rb_eTypeError, "invalid type");
477
+ } -- no check since obj2c*ary will do that */
478
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
479
+ n = rb_funcall(n, rb_intern("to_i"), 0);
480
+ }
481
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
482
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
483
+ }
484
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
485
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
486
+ }
487
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
488
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
489
+ }
490
+
491
+ i_n = NUM2INT(n);
492
+ i_jx = NUM2INT(jx);
493
+ i_jy = NUM2INT(jy);
494
+ i_jz = NUM2INT(jz);
495
+ i_rx = dcl_obj2crealary(rx);
496
+ i_ry = dcl_obj2crealary(ry);
497
+
498
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
499
+
500
+ vrsub_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
501
+
502
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
503
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
504
+ }
505
+
506
+ dcl_freecrealary(i_rx);
507
+ dcl_freecrealary(i_ry);
508
+
509
+ return rz;
510
+
511
+ }
512
+
513
+ static VALUE
514
+ dcl_vrsub0(obj, rx, ry, n, jx, jy, jz)
515
+ VALUE obj, rx, ry, n, jx, jy, jz;
516
+ {
517
+ real *i_rx;
518
+ real *i_ry;
519
+ real *o_rz;
520
+ integer i_n;
521
+ integer i_jx;
522
+ integer i_jy;
523
+ integer i_jz;
524
+ VALUE rz;
525
+
526
+ if (TYPE(rx) == T_FLOAT) {
527
+ rx = rb_Array(rx);
528
+ }
529
+ /* if ((TYPE(rx) != T_ARRAY) &&
530
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
531
+ rb_raise(rb_eTypeError, "invalid type");
532
+ } -- no check since obj2c*ary will do that */
533
+ if (TYPE(ry) == T_FLOAT) {
534
+ ry = rb_Array(ry);
535
+ }
536
+ /* if ((TYPE(ry) != T_ARRAY) &&
537
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
538
+ rb_raise(rb_eTypeError, "invalid type");
539
+ } -- no check since obj2c*ary will do that */
540
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
541
+ n = rb_funcall(n, rb_intern("to_i"), 0);
542
+ }
543
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
544
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
545
+ }
546
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
547
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
548
+ }
549
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
550
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
551
+ }
552
+
553
+ i_n = NUM2INT(n);
554
+ i_jx = NUM2INT(jx);
555
+ i_jy = NUM2INT(jy);
556
+ i_jz = NUM2INT(jz);
557
+ i_rx = dcl_obj2crealary(rx);
558
+ i_ry = dcl_obj2crealary(ry);
559
+
560
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
561
+
562
+ vrsub0_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
563
+
564
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
565
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
566
+ }
567
+
568
+ dcl_freecrealary(i_rx);
569
+ dcl_freecrealary(i_ry);
570
+
571
+ return rz;
572
+
573
+ }
574
+
575
+ static VALUE
576
+ dcl_vrsub1(obj, rx, ry, n, jx, jy, jz)
577
+ VALUE obj, rx, ry, n, jx, jy, jz;
578
+ {
579
+ real *i_rx;
580
+ real *i_ry;
581
+ real *o_rz;
582
+ integer i_n;
583
+ integer i_jx;
584
+ integer i_jy;
585
+ integer i_jz;
586
+ VALUE rz;
587
+
588
+ if (TYPE(rx) == T_FLOAT) {
589
+ rx = rb_Array(rx);
590
+ }
591
+ /* if ((TYPE(rx) != T_ARRAY) &&
592
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
593
+ rb_raise(rb_eTypeError, "invalid type");
594
+ } -- no check since obj2c*ary will do that */
595
+ if (TYPE(ry) == T_FLOAT) {
596
+ ry = rb_Array(ry);
597
+ }
598
+ /* if ((TYPE(ry) != T_ARRAY) &&
599
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
600
+ rb_raise(rb_eTypeError, "invalid type");
601
+ } -- no check since obj2c*ary will do that */
602
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
603
+ n = rb_funcall(n, rb_intern("to_i"), 0);
604
+ }
605
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
606
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
607
+ }
608
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
609
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
610
+ }
611
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
612
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
613
+ }
614
+
615
+ i_n = NUM2INT(n);
616
+ i_jx = NUM2INT(jx);
617
+ i_jy = NUM2INT(jy);
618
+ i_jz = NUM2INT(jz);
619
+ i_rx = dcl_obj2crealary(rx);
620
+ i_ry = dcl_obj2crealary(ry);
621
+
622
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
623
+
624
+ vrsub1_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
625
+
626
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
627
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
628
+ }
629
+
630
+ dcl_freecrealary(i_rx);
631
+ dcl_freecrealary(i_ry);
632
+
633
+ return rz;
634
+
635
+ }
636
+
637
+ static VALUE
638
+ dcl_vrmlt(obj, rx, ry, n, jx, jy, jz)
639
+ VALUE obj, rx, ry, n, jx, jy, jz;
640
+ {
641
+ real *i_rx;
642
+ real *i_ry;
643
+ real *o_rz;
644
+ integer i_n;
645
+ integer i_jx;
646
+ integer i_jy;
647
+ integer i_jz;
648
+ VALUE rz;
649
+
650
+ if (TYPE(rx) == T_FLOAT) {
651
+ rx = rb_Array(rx);
652
+ }
653
+ /* if ((TYPE(rx) != T_ARRAY) &&
654
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
655
+ rb_raise(rb_eTypeError, "invalid type");
656
+ } -- no check since obj2c*ary will do that */
657
+ if (TYPE(ry) == T_FLOAT) {
658
+ ry = rb_Array(ry);
659
+ }
660
+ /* if ((TYPE(ry) != T_ARRAY) &&
661
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
662
+ rb_raise(rb_eTypeError, "invalid type");
663
+ } -- no check since obj2c*ary will do that */
664
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
665
+ n = rb_funcall(n, rb_intern("to_i"), 0);
666
+ }
667
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
668
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
669
+ }
670
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
671
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
672
+ }
673
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
674
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
675
+ }
676
+
677
+ i_n = NUM2INT(n);
678
+ i_jx = NUM2INT(jx);
679
+ i_jy = NUM2INT(jy);
680
+ i_jz = NUM2INT(jz);
681
+ i_rx = dcl_obj2crealary(rx);
682
+ i_ry = dcl_obj2crealary(ry);
683
+
684
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
685
+
686
+ vrmlt_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
687
+
688
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
689
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
690
+ }
691
+
692
+ dcl_freecrealary(i_rx);
693
+ dcl_freecrealary(i_ry);
694
+
695
+ return rz;
696
+
697
+ }
698
+
699
+ static VALUE
700
+ dcl_vrmlt0(obj, rx, ry, n, jx, jy, jz)
701
+ VALUE obj, rx, ry, n, jx, jy, jz;
702
+ {
703
+ real *i_rx;
704
+ real *i_ry;
705
+ real *o_rz;
706
+ integer i_n;
707
+ integer i_jx;
708
+ integer i_jy;
709
+ integer i_jz;
710
+ VALUE rz;
711
+
712
+ if (TYPE(rx) == T_FLOAT) {
713
+ rx = rb_Array(rx);
714
+ }
715
+ /* if ((TYPE(rx) != T_ARRAY) &&
716
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
717
+ rb_raise(rb_eTypeError, "invalid type");
718
+ } -- no check since obj2c*ary will do that */
719
+ if (TYPE(ry) == T_FLOAT) {
720
+ ry = rb_Array(ry);
721
+ }
722
+ /* if ((TYPE(ry) != T_ARRAY) &&
723
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
724
+ rb_raise(rb_eTypeError, "invalid type");
725
+ } -- no check since obj2c*ary will do that */
726
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
727
+ n = rb_funcall(n, rb_intern("to_i"), 0);
728
+ }
729
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
730
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
731
+ }
732
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
733
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
734
+ }
735
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
736
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
737
+ }
738
+
739
+ i_n = NUM2INT(n);
740
+ i_jx = NUM2INT(jx);
741
+ i_jy = NUM2INT(jy);
742
+ i_jz = NUM2INT(jz);
743
+ i_rx = dcl_obj2crealary(rx);
744
+ i_ry = dcl_obj2crealary(ry);
745
+
746
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
747
+
748
+ vrmlt0_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
749
+
750
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
751
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
752
+ }
753
+
754
+ dcl_freecrealary(i_rx);
755
+ dcl_freecrealary(i_ry);
756
+
757
+ return rz;
758
+
759
+ }
760
+
761
+ static VALUE
762
+ dcl_vrmlt1(obj, rx, ry, n, jx, jy, jz)
763
+ VALUE obj, rx, ry, n, jx, jy, jz;
764
+ {
765
+ real *i_rx;
766
+ real *i_ry;
767
+ real *o_rz;
768
+ integer i_n;
769
+ integer i_jx;
770
+ integer i_jy;
771
+ integer i_jz;
772
+ VALUE rz;
773
+
774
+ if (TYPE(rx) == T_FLOAT) {
775
+ rx = rb_Array(rx);
776
+ }
777
+ /* if ((TYPE(rx) != T_ARRAY) &&
778
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
779
+ rb_raise(rb_eTypeError, "invalid type");
780
+ } -- no check since obj2c*ary will do that */
781
+ if (TYPE(ry) == T_FLOAT) {
782
+ ry = rb_Array(ry);
783
+ }
784
+ /* if ((TYPE(ry) != T_ARRAY) &&
785
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
786
+ rb_raise(rb_eTypeError, "invalid type");
787
+ } -- no check since obj2c*ary will do that */
788
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
789
+ n = rb_funcall(n, rb_intern("to_i"), 0);
790
+ }
791
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
792
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
793
+ }
794
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
795
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
796
+ }
797
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
798
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
799
+ }
800
+
801
+ i_n = NUM2INT(n);
802
+ i_jx = NUM2INT(jx);
803
+ i_jy = NUM2INT(jy);
804
+ i_jz = NUM2INT(jz);
805
+ i_rx = dcl_obj2crealary(rx);
806
+ i_ry = dcl_obj2crealary(ry);
807
+
808
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
809
+
810
+ vrmlt1_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
811
+
812
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
813
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
814
+ }
815
+
816
+ dcl_freecrealary(i_rx);
817
+ dcl_freecrealary(i_ry);
818
+
819
+ return rz;
820
+
821
+ }
822
+
823
+ static VALUE
824
+ dcl_vrdiv(obj, rx, ry, n, jx, jy, jz)
825
+ VALUE obj, rx, ry, n, jx, jy, jz;
826
+ {
827
+ real *i_rx;
828
+ real *i_ry;
829
+ real *o_rz;
830
+ integer i_n;
831
+ integer i_jx;
832
+ integer i_jy;
833
+ integer i_jz;
834
+ VALUE rz;
835
+
836
+ if (TYPE(rx) == T_FLOAT) {
837
+ rx = rb_Array(rx);
838
+ }
839
+ /* if ((TYPE(rx) != T_ARRAY) &&
840
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
841
+ rb_raise(rb_eTypeError, "invalid type");
842
+ } -- no check since obj2c*ary will do that */
843
+ if (TYPE(ry) == T_FLOAT) {
844
+ ry = rb_Array(ry);
845
+ }
846
+ /* if ((TYPE(ry) != T_ARRAY) &&
847
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
848
+ rb_raise(rb_eTypeError, "invalid type");
849
+ } -- no check since obj2c*ary will do that */
850
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
851
+ n = rb_funcall(n, rb_intern("to_i"), 0);
852
+ }
853
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
854
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
855
+ }
856
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
857
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
858
+ }
859
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
860
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
861
+ }
862
+
863
+ i_n = NUM2INT(n);
864
+ i_jx = NUM2INT(jx);
865
+ i_jy = NUM2INT(jy);
866
+ i_jz = NUM2INT(jz);
867
+ i_rx = dcl_obj2crealary(rx);
868
+ i_ry = dcl_obj2crealary(ry);
869
+
870
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
871
+
872
+ vrdiv_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
873
+
874
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
875
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
876
+ }
877
+
878
+ dcl_freecrealary(i_rx);
879
+ dcl_freecrealary(i_ry);
880
+
881
+ return rz;
882
+
883
+ }
884
+
885
+ static VALUE
886
+ dcl_vrdiv0(obj, rx, ry, n, jx, jy, jz)
887
+ VALUE obj, rx, ry, n, jx, jy, jz;
888
+ {
889
+ real *i_rx;
890
+ real *i_ry;
891
+ real *o_rz;
892
+ integer i_n;
893
+ integer i_jx;
894
+ integer i_jy;
895
+ integer i_jz;
896
+ VALUE rz;
897
+
898
+ if (TYPE(rx) == T_FLOAT) {
899
+ rx = rb_Array(rx);
900
+ }
901
+ /* if ((TYPE(rx) != T_ARRAY) &&
902
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
903
+ rb_raise(rb_eTypeError, "invalid type");
904
+ } -- no check since obj2c*ary will do that */
905
+ if (TYPE(ry) == T_FLOAT) {
906
+ ry = rb_Array(ry);
907
+ }
908
+ /* if ((TYPE(ry) != T_ARRAY) &&
909
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
910
+ rb_raise(rb_eTypeError, "invalid type");
911
+ } -- no check since obj2c*ary will do that */
912
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
913
+ n = rb_funcall(n, rb_intern("to_i"), 0);
914
+ }
915
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
916
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
917
+ }
918
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
919
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
920
+ }
921
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
922
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
923
+ }
924
+
925
+ i_n = NUM2INT(n);
926
+ i_jx = NUM2INT(jx);
927
+ i_jy = NUM2INT(jy);
928
+ i_jz = NUM2INT(jz);
929
+ i_rx = dcl_obj2crealary(rx);
930
+ i_ry = dcl_obj2crealary(ry);
931
+
932
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
933
+
934
+ vrdiv0_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
935
+
936
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
937
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
938
+ }
939
+
940
+ dcl_freecrealary(i_rx);
941
+ dcl_freecrealary(i_ry);
942
+
943
+ return rz;
944
+
945
+ }
946
+
947
+ static VALUE
948
+ dcl_vrdiv1(obj, rx, ry, n, jx, jy, jz)
949
+ VALUE obj, rx, ry, n, jx, jy, jz;
950
+ {
951
+ real *i_rx;
952
+ real *i_ry;
953
+ real *o_rz;
954
+ integer i_n;
955
+ integer i_jx;
956
+ integer i_jy;
957
+ integer i_jz;
958
+ VALUE rz;
959
+
960
+ if (TYPE(rx) == T_FLOAT) {
961
+ rx = rb_Array(rx);
962
+ }
963
+ /* if ((TYPE(rx) != T_ARRAY) &&
964
+ (rb_obj_is_kind_of(rx, cNArray) != Qtrue)) {
965
+ rb_raise(rb_eTypeError, "invalid type");
966
+ } -- no check since obj2c*ary will do that */
967
+ if (TYPE(ry) == T_FLOAT) {
968
+ ry = rb_Array(ry);
969
+ }
970
+ /* if ((TYPE(ry) != T_ARRAY) &&
971
+ (rb_obj_is_kind_of(ry, cNArray) != Qtrue)) {
972
+ rb_raise(rb_eTypeError, "invalid type");
973
+ } -- no check since obj2c*ary will do that */
974
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
975
+ n = rb_funcall(n, rb_intern("to_i"), 0);
976
+ }
977
+ if ((TYPE(jx) != T_BIGNUM) || (TYPE(jx) != T_FIXNUM)) {
978
+ jx = rb_funcall(jx, rb_intern("to_i"), 0);
979
+ }
980
+ if ((TYPE(jy) != T_BIGNUM) || (TYPE(jy) != T_FIXNUM)) {
981
+ jy = rb_funcall(jy, rb_intern("to_i"), 0);
982
+ }
983
+ if ((TYPE(jz) != T_BIGNUM) || (TYPE(jz) != T_FIXNUM)) {
984
+ jz = rb_funcall(jz, rb_intern("to_i"), 0);
985
+ }
986
+
987
+ i_n = NUM2INT(n);
988
+ i_jx = NUM2INT(jx);
989
+ i_jy = NUM2INT(jy);
990
+ i_jz = NUM2INT(jz);
991
+ i_rx = dcl_obj2crealary(rx);
992
+ i_ry = dcl_obj2crealary(ry);
993
+
994
+ o_rz= ALLOCA_N(real, i_jz*(i_n-1)+1);
995
+
996
+ vrdiv1_(i_rx, i_ry, o_rz, &i_n, &i_jx, &i_jy, &i_jz);
997
+
998
+ {int array_shape[1] = {i_jz*(i_n-1)+1};
999
+ rz = dcl_crealary2obj(o_rz, i_jz*(i_n-1)+1, 1, array_shape);
1000
+ }
1001
+
1002
+ dcl_freecrealary(i_rx);
1003
+ dcl_freecrealary(i_ry);
1004
+
1005
+ return rz;
1006
+
1007
+ }
1008
+ void
1009
+ init_math1_vrblib(mDCL)
1010
+ VALUE mDCL;
1011
+ {
1012
+ rb_define_module_function(mDCL, "vrfnb", dcl_vrfnb, 7);
1013
+ rb_define_module_function(mDCL, "vrfnb0", dcl_vrfnb0, 7);
1014
+ rb_define_module_function(mDCL, "vrfnb1", dcl_vrfnb1, 7);
1015
+ rb_define_module_function(mDCL, "vradd", dcl_vradd, 6);
1016
+ rb_define_module_function(mDCL, "vradd0", dcl_vradd0, 6);
1017
+ rb_define_module_function(mDCL, "vradd1", dcl_vradd1, 6);
1018
+ rb_define_module_function(mDCL, "vrsub", dcl_vrsub, 6);
1019
+ rb_define_module_function(mDCL, "vrsub0", dcl_vrsub0, 6);
1020
+ rb_define_module_function(mDCL, "vrsub1", dcl_vrsub1, 6);
1021
+ rb_define_module_function(mDCL, "vrmlt", dcl_vrmlt, 6);
1022
+ rb_define_module_function(mDCL, "vrmlt0", dcl_vrmlt0, 6);
1023
+ rb_define_module_function(mDCL, "vrmlt1", dcl_vrmlt1, 6);
1024
+ rb_define_module_function(mDCL, "vrdiv", dcl_vrdiv, 6);
1025
+ rb_define_module_function(mDCL, "vrdiv0", dcl_vrdiv0, 6);
1026
+ rb_define_module_function(mDCL, "vrdiv1", dcl_vrdiv1, 6);
1027
+ }