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/grph1_slpack.c ADDED
@@ -0,0 +1,432 @@
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_slinit(obj, wxmax, wymax, fact)
66
+ VALUE obj, wxmax, wymax, fact;
67
+ {
68
+ real i_wxmax;
69
+ real i_wymax;
70
+ real i_fact;
71
+
72
+ if (TYPE(wxmax) != T_FLOAT) {
73
+ wxmax = rb_funcall(wxmax, rb_intern("to_f"), 0);
74
+ }
75
+ if (TYPE(wymax) != T_FLOAT) {
76
+ wymax = rb_funcall(wymax, rb_intern("to_f"), 0);
77
+ }
78
+ if (TYPE(fact) != T_FLOAT) {
79
+ fact = rb_funcall(fact, rb_intern("to_f"), 0);
80
+ }
81
+
82
+ i_wxmax = (real)NUM2DBL(wxmax);
83
+ i_wymax = (real)NUM2DBL(wymax);
84
+ i_fact = (real)NUM2DBL(fact);
85
+
86
+
87
+ slinit_(&i_wxmax, &i_wymax, &i_fact);
88
+
89
+ return Qnil;
90
+
91
+ }
92
+
93
+ static VALUE
94
+ dcl_slsize(obj, cszez)
95
+ VALUE obj, cszez;
96
+ {
97
+ char *i_cszez;
98
+
99
+ if (TYPE(cszez) != T_STRING) {
100
+ cszez = rb_funcall(cszez, rb_intern("to_str"), 0);
101
+ }
102
+
103
+ i_cszez = StringValuePtr(cszez);
104
+
105
+
106
+ slsize_(i_cszez, (ftnlen)strlen(i_cszez));
107
+
108
+ return Qnil;
109
+
110
+ }
111
+
112
+ static VALUE
113
+ dcl_slform(obj, dxa, dya)
114
+ VALUE obj, dxa, dya;
115
+ {
116
+ real i_dxa;
117
+ real i_dya;
118
+
119
+ if (TYPE(dxa) != T_FLOAT) {
120
+ dxa = rb_funcall(dxa, rb_intern("to_f"), 0);
121
+ }
122
+ if (TYPE(dya) != T_FLOAT) {
123
+ dya = rb_funcall(dya, rb_intern("to_f"), 0);
124
+ }
125
+
126
+ i_dxa = (real)NUM2DBL(dxa);
127
+ i_dya = (real)NUM2DBL(dya);
128
+
129
+
130
+ slform_(&i_dxa, &i_dya);
131
+
132
+ return Qnil;
133
+
134
+ }
135
+
136
+ static VALUE
137
+ dcl_sldiv(obj, cform, ix, iy)
138
+ VALUE obj, cform, ix, iy;
139
+ {
140
+ char *i_cform;
141
+ integer i_ix;
142
+ integer i_iy;
143
+
144
+ if (TYPE(cform) != T_STRING) {
145
+ cform = rb_funcall(cform, rb_intern("to_str"), 0);
146
+ }
147
+ if ((TYPE(ix) != T_BIGNUM) || (TYPE(ix) != T_FIXNUM)) {
148
+ ix = rb_funcall(ix, rb_intern("to_i"), 0);
149
+ }
150
+ if ((TYPE(iy) != T_BIGNUM) || (TYPE(iy) != T_FIXNUM)) {
151
+ iy = rb_funcall(iy, rb_intern("to_i"), 0);
152
+ }
153
+
154
+ i_cform = StringValuePtr(cform);
155
+ i_ix = NUM2INT(ix);
156
+ i_iy = NUM2INT(iy);
157
+
158
+
159
+ sldiv_(i_cform, &i_ix, &i_iy, (ftnlen)strlen(i_cform));
160
+
161
+ return Qnil;
162
+
163
+ }
164
+
165
+ static VALUE
166
+ dcl_slmgn(obj, xl, xr, yb, yt)
167
+ VALUE obj, xl, xr, yb, yt;
168
+ {
169
+ real i_xl;
170
+ real i_xr;
171
+ real i_yb;
172
+ real i_yt;
173
+
174
+ if (TYPE(xl) != T_FLOAT) {
175
+ xl = rb_funcall(xl, rb_intern("to_f"), 0);
176
+ }
177
+ if (TYPE(xr) != T_FLOAT) {
178
+ xr = rb_funcall(xr, rb_intern("to_f"), 0);
179
+ }
180
+ if (TYPE(yb) != T_FLOAT) {
181
+ yb = rb_funcall(yb, rb_intern("to_f"), 0);
182
+ }
183
+ if (TYPE(yt) != T_FLOAT) {
184
+ yt = rb_funcall(yt, rb_intern("to_f"), 0);
185
+ }
186
+
187
+ i_xl = (real)NUM2DBL(xl);
188
+ i_xr = (real)NUM2DBL(xr);
189
+ i_yb = (real)NUM2DBL(yb);
190
+ i_yt = (real)NUM2DBL(yt);
191
+
192
+
193
+ slmgn_(&i_xl, &i_xr, &i_yb, &i_yt);
194
+
195
+ return Qnil;
196
+
197
+ }
198
+
199
+ static VALUE
200
+ dcl_slrat(obj, rx, ry)
201
+ VALUE obj, rx, ry;
202
+ {
203
+ real i_rx;
204
+ real i_ry;
205
+
206
+ if (TYPE(rx) != T_FLOAT) {
207
+ rx = rb_funcall(rx, rb_intern("to_f"), 0);
208
+ }
209
+ if (TYPE(ry) != T_FLOAT) {
210
+ ry = rb_funcall(ry, rb_intern("to_f"), 0);
211
+ }
212
+
213
+ i_rx = (real)NUM2DBL(rx);
214
+ i_ry = (real)NUM2DBL(ry);
215
+
216
+
217
+ slrat_(&i_rx, &i_ry);
218
+
219
+ return Qnil;
220
+
221
+ }
222
+
223
+ static VALUE
224
+ dcl_slsttl(obj, cttl, cside, px, py, ht, nt)
225
+ VALUE obj, cttl, cside, px, py, ht, nt;
226
+ {
227
+ char *i_cttl;
228
+ char *i_cside;
229
+ real i_px;
230
+ real i_py;
231
+ real i_ht;
232
+ integer i_nt;
233
+
234
+ if (TYPE(cttl) != T_STRING) {
235
+ cttl = rb_funcall(cttl, rb_intern("to_str"), 0);
236
+ }
237
+ if (TYPE(cside) != T_STRING) {
238
+ cside = rb_funcall(cside, rb_intern("to_str"), 0);
239
+ }
240
+ if (TYPE(px) != T_FLOAT) {
241
+ px = rb_funcall(px, rb_intern("to_f"), 0);
242
+ }
243
+ if (TYPE(py) != T_FLOAT) {
244
+ py = rb_funcall(py, rb_intern("to_f"), 0);
245
+ }
246
+ if (TYPE(ht) != T_FLOAT) {
247
+ ht = rb_funcall(ht, rb_intern("to_f"), 0);
248
+ }
249
+ if ((TYPE(nt) != T_BIGNUM) || (TYPE(nt) != T_FIXNUM)) {
250
+ nt = rb_funcall(nt, rb_intern("to_i"), 0);
251
+ }
252
+
253
+ i_cttl = StringValuePtr(cttl);
254
+ i_cside = StringValuePtr(cside);
255
+ i_px = (real)NUM2DBL(px);
256
+ i_py = (real)NUM2DBL(py);
257
+ i_ht = (real)NUM2DBL(ht);
258
+ i_nt = NUM2INT(nt);
259
+
260
+
261
+ slsttl_(i_cttl, i_cside, &i_px, &i_py, &i_ht, &i_nt, (ftnlen)strlen(i_cttl), (ftnlen)strlen(i_cside));
262
+
263
+ return Qnil;
264
+
265
+ }
266
+
267
+ static VALUE
268
+ dcl_sldttl(obj, nt)
269
+ VALUE obj, nt;
270
+ {
271
+ integer i_nt;
272
+
273
+ if ((TYPE(nt) != T_BIGNUM) || (TYPE(nt) != T_FIXNUM)) {
274
+ nt = rb_funcall(nt, rb_intern("to_i"), 0);
275
+ }
276
+
277
+ i_nt = NUM2INT(nt);
278
+
279
+
280
+ sldttl_(&i_nt);
281
+
282
+ return Qnil;
283
+
284
+ }
285
+
286
+ static VALUE
287
+ dcl_slpvpr(obj, index)
288
+ VALUE obj, index;
289
+ {
290
+ integer i_index;
291
+
292
+ if ((TYPE(index) != T_BIGNUM) || (TYPE(index) != T_FIXNUM)) {
293
+ index = rb_funcall(index, rb_intern("to_i"), 0);
294
+ }
295
+
296
+ i_index = NUM2INT(index);
297
+
298
+
299
+ slpvpr_(&i_index);
300
+
301
+ return Qnil;
302
+
303
+ }
304
+
305
+ static VALUE
306
+ dcl_slpwwr(obj, index)
307
+ VALUE obj, index;
308
+ {
309
+ integer i_index;
310
+
311
+ if ((TYPE(index) != T_BIGNUM) || (TYPE(index) != T_FIXNUM)) {
312
+ index = rb_funcall(index, rb_intern("to_i"), 0);
313
+ }
314
+
315
+ i_index = NUM2INT(index);
316
+
317
+
318
+ slpwwr_(&i_index);
319
+
320
+ return Qnil;
321
+
322
+ }
323
+
324
+ static VALUE
325
+ dcl_slpwvr(obj, index)
326
+ VALUE obj, index;
327
+ {
328
+ integer i_index;
329
+
330
+ if ((TYPE(index) != T_BIGNUM) || (TYPE(index) != T_FIXNUM)) {
331
+ index = rb_funcall(index, rb_intern("to_i"), 0);
332
+ }
333
+
334
+ i_index = NUM2INT(index);
335
+
336
+
337
+ slpwvr_(&i_index);
338
+
339
+ return Qnil;
340
+
341
+ }
342
+
343
+ static VALUE
344
+ dcl_slpvpc(obj, index, rc)
345
+ VALUE obj, index, rc;
346
+ {
347
+ integer i_index;
348
+ real i_rc;
349
+
350
+ if ((TYPE(index) != T_BIGNUM) || (TYPE(index) != T_FIXNUM)) {
351
+ index = rb_funcall(index, rb_intern("to_i"), 0);
352
+ }
353
+ if (TYPE(rc) != T_FLOAT) {
354
+ rc = rb_funcall(rc, rb_intern("to_f"), 0);
355
+ }
356
+
357
+ i_index = NUM2INT(index);
358
+ i_rc = (real)NUM2DBL(rc);
359
+
360
+
361
+ slpvpc_(&i_index, &i_rc);
362
+
363
+ return Qnil;
364
+
365
+ }
366
+
367
+ static VALUE
368
+ dcl_slpwwc(obj, index, rc)
369
+ VALUE obj, index, rc;
370
+ {
371
+ integer i_index;
372
+ real i_rc;
373
+
374
+ if ((TYPE(index) != T_BIGNUM) || (TYPE(index) != T_FIXNUM)) {
375
+ index = rb_funcall(index, rb_intern("to_i"), 0);
376
+ }
377
+ if (TYPE(rc) != T_FLOAT) {
378
+ rc = rb_funcall(rc, rb_intern("to_f"), 0);
379
+ }
380
+
381
+ i_index = NUM2INT(index);
382
+ i_rc = (real)NUM2DBL(rc);
383
+
384
+
385
+ slpwwc_(&i_index, &i_rc);
386
+
387
+ return Qnil;
388
+
389
+ }
390
+
391
+ static VALUE
392
+ dcl_slpwvc(obj, index, rc)
393
+ VALUE obj, index, rc;
394
+ {
395
+ integer i_index;
396
+ real i_rc;
397
+
398
+ if ((TYPE(index) != T_BIGNUM) || (TYPE(index) != T_FIXNUM)) {
399
+ index = rb_funcall(index, rb_intern("to_i"), 0);
400
+ }
401
+ if (TYPE(rc) != T_FLOAT) {
402
+ rc = rb_funcall(rc, rb_intern("to_f"), 0);
403
+ }
404
+
405
+ i_index = NUM2INT(index);
406
+ i_rc = (real)NUM2DBL(rc);
407
+
408
+
409
+ slpwvc_(&i_index, &i_rc);
410
+
411
+ return Qnil;
412
+
413
+ }
414
+ void
415
+ init_grph1_slpack(mDCL)
416
+ VALUE mDCL;
417
+ {
418
+ rb_define_module_function(mDCL, "slinit", dcl_slinit, 3);
419
+ rb_define_module_function(mDCL, "slsize", dcl_slsize, 1);
420
+ rb_define_module_function(mDCL, "slform", dcl_slform, 2);
421
+ rb_define_module_function(mDCL, "sldiv", dcl_sldiv, 3);
422
+ rb_define_module_function(mDCL, "slmgn", dcl_slmgn, 4);
423
+ rb_define_module_function(mDCL, "slrat", dcl_slrat, 2);
424
+ rb_define_module_function(mDCL, "slsttl", dcl_slsttl, 6);
425
+ rb_define_module_function(mDCL, "sldttl", dcl_sldttl, 1);
426
+ rb_define_module_function(mDCL, "slpvpr", dcl_slpvpr, 1);
427
+ rb_define_module_function(mDCL, "slpwwr", dcl_slpwwr, 1);
428
+ rb_define_module_function(mDCL, "slpwvr", dcl_slpwvr, 1);
429
+ rb_define_module_function(mDCL, "slpvpc", dcl_slpvpc, 2);
430
+ rb_define_module_function(mDCL, "slpwwc", dcl_slpwwc, 2);
431
+ rb_define_module_function(mDCL, "slpwvc", dcl_slpwvc, 2);
432
+ }
data/grph1_stpack.c ADDED
@@ -0,0 +1,1044 @@
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_stqtrf(obj)
66
+ VALUE obj;
67
+ {
68
+ logical o_lmapa;
69
+ VALUE lmapa;
70
+
71
+ stqtrf_(&o_lmapa);
72
+
73
+ lmapa = (o_lmapa == FALSE_) ? Qfalse : Qtrue;
74
+
75
+
76
+ return lmapa;
77
+
78
+ }
79
+
80
+ static VALUE
81
+ dcl_ststrf(obj, lmapa)
82
+ VALUE obj, lmapa;
83
+ {
84
+ logical i_lmapa;
85
+
86
+ i_lmapa = ((lmapa == Qnil)||(lmapa == Qfalse)) ? FALSE_ : TRUE_;
87
+
88
+
89
+ ststrf_(&i_lmapa);
90
+
91
+ return Qnil;
92
+
93
+ }
94
+
95
+ static VALUE
96
+ dcl_stftrn(obj, ux, uy)
97
+ VALUE obj, ux, uy;
98
+ {
99
+ real i_ux;
100
+ real i_uy;
101
+ real o_vx;
102
+ real o_vy;
103
+ VALUE vx;
104
+ VALUE vy;
105
+
106
+ if (TYPE(ux) != T_FLOAT) {
107
+ ux = rb_funcall(ux, rb_intern("to_f"), 0);
108
+ }
109
+ if (TYPE(uy) != T_FLOAT) {
110
+ uy = rb_funcall(uy, rb_intern("to_f"), 0);
111
+ }
112
+
113
+ i_ux = (real)NUM2DBL(ux);
114
+ i_uy = (real)NUM2DBL(uy);
115
+
116
+
117
+ stftrn_(&i_ux, &i_uy, &o_vx, &o_vy);
118
+
119
+ vx = rb_float_new((double)o_vx);
120
+ vy = rb_float_new((double)o_vy);
121
+
122
+
123
+ return rb_ary_new3(2, vx, vy);
124
+
125
+ }
126
+
127
+ static VALUE
128
+ dcl_stitrn(obj, vx, vy)
129
+ VALUE obj, vx, vy;
130
+ {
131
+ real i_vx;
132
+ real i_vy;
133
+ real o_ux;
134
+ real o_uy;
135
+ VALUE ux;
136
+ VALUE uy;
137
+
138
+ if (TYPE(vx) != T_FLOAT) {
139
+ vx = rb_funcall(vx, rb_intern("to_f"), 0);
140
+ }
141
+ if (TYPE(vy) != T_FLOAT) {
142
+ vy = rb_funcall(vy, rb_intern("to_f"), 0);
143
+ }
144
+
145
+ i_vx = (real)NUM2DBL(vx);
146
+ i_vy = (real)NUM2DBL(vy);
147
+
148
+
149
+ stitrn_(&i_vx, &i_vy, &o_ux, &o_uy);
150
+
151
+ ux = rb_float_new((double)o_ux);
152
+ uy = rb_float_new((double)o_uy);
153
+
154
+
155
+ return rb_ary_new3(2, ux, uy);
156
+
157
+ }
158
+
159
+ #if DCLVER >= 530
160
+
161
+ static VALUE
162
+ dcl_ststri(obj, itr)
163
+ VALUE obj, itr;
164
+ {
165
+ integer i_itr;
166
+
167
+ if ((TYPE(itr) != T_BIGNUM) || (TYPE(itr) != T_FIXNUM)) {
168
+ itr = rb_funcall(itr, rb_intern("to_i"), 0);
169
+ }
170
+
171
+ i_itr = NUM2INT(itr);
172
+
173
+
174
+ ststri_(&i_itr);
175
+
176
+ return Qnil;
177
+
178
+ }
179
+
180
+ #endif
181
+
182
+ #if DCLVER >= 530
183
+
184
+ static VALUE
185
+ dcl_ststrp(obj, cxa, cya, vxoff, vyoff)
186
+ VALUE obj, cxa, cya, vxoff, vyoff;
187
+ {
188
+ real i_cxa;
189
+ real i_cya;
190
+ real i_vxoff;
191
+ real i_vyoff;
192
+
193
+ if (TYPE(cxa) != T_FLOAT) {
194
+ cxa = rb_funcall(cxa, rb_intern("to_f"), 0);
195
+ }
196
+ if (TYPE(cya) != T_FLOAT) {
197
+ cya = rb_funcall(cya, rb_intern("to_f"), 0);
198
+ }
199
+ if (TYPE(vxoff) != T_FLOAT) {
200
+ vxoff = rb_funcall(vxoff, rb_intern("to_f"), 0);
201
+ }
202
+ if (TYPE(vyoff) != T_FLOAT) {
203
+ vyoff = rb_funcall(vyoff, rb_intern("to_f"), 0);
204
+ }
205
+
206
+ i_cxa = (real)NUM2DBL(cxa);
207
+ i_cya = (real)NUM2DBL(cya);
208
+ i_vxoff = (real)NUM2DBL(vxoff);
209
+ i_vyoff = (real)NUM2DBL(vyoff);
210
+
211
+
212
+ ststrp_(&i_cxa, &i_cya, &i_vxoff, &i_vyoff);
213
+
214
+ return Qnil;
215
+
216
+ }
217
+
218
+ #endif
219
+
220
+ static VALUE
221
+ dcl_ststrn(obj, itr, cxa, cya, vxoff, vyoff)
222
+ VALUE obj, itr, cxa, cya, vxoff, vyoff;
223
+ {
224
+ integer i_itr;
225
+ real i_cxa;
226
+ real i_cya;
227
+ real i_vxoff;
228
+ real i_vyoff;
229
+
230
+ if ((TYPE(itr) != T_BIGNUM) || (TYPE(itr) != T_FIXNUM)) {
231
+ itr = rb_funcall(itr, rb_intern("to_i"), 0);
232
+ }
233
+ if (TYPE(cxa) != T_FLOAT) {
234
+ cxa = rb_funcall(cxa, rb_intern("to_f"), 0);
235
+ }
236
+ if (TYPE(cya) != T_FLOAT) {
237
+ cya = rb_funcall(cya, rb_intern("to_f"), 0);
238
+ }
239
+ if (TYPE(vxoff) != T_FLOAT) {
240
+ vxoff = rb_funcall(vxoff, rb_intern("to_f"), 0);
241
+ }
242
+ if (TYPE(vyoff) != T_FLOAT) {
243
+ vyoff = rb_funcall(vyoff, rb_intern("to_f"), 0);
244
+ }
245
+
246
+ i_itr = NUM2INT(itr);
247
+ i_cxa = (real)NUM2DBL(cxa);
248
+ i_cya = (real)NUM2DBL(cya);
249
+ i_vxoff = (real)NUM2DBL(vxoff);
250
+ i_vyoff = (real)NUM2DBL(vyoff);
251
+
252
+
253
+ ststrn_(&i_itr, &i_cxa, &i_cya, &i_vxoff, &i_vyoff);
254
+
255
+ return Qnil;
256
+
257
+ }
258
+
259
+ static VALUE
260
+ dcl_stfrot(obj, ux, uy)
261
+ VALUE obj, ux, uy;
262
+ {
263
+ real i_ux;
264
+ real i_uy;
265
+ real o_tx;
266
+ real o_ty;
267
+ VALUE tx;
268
+ VALUE ty;
269
+
270
+ if (TYPE(ux) != T_FLOAT) {
271
+ ux = rb_funcall(ux, rb_intern("to_f"), 0);
272
+ }
273
+ if (TYPE(uy) != T_FLOAT) {
274
+ uy = rb_funcall(uy, rb_intern("to_f"), 0);
275
+ }
276
+
277
+ i_ux = (real)NUM2DBL(ux);
278
+ i_uy = (real)NUM2DBL(uy);
279
+
280
+
281
+ stfrot_(&i_ux, &i_uy, &o_tx, &o_ty);
282
+
283
+ tx = rb_float_new((double)o_tx);
284
+ ty = rb_float_new((double)o_ty);
285
+
286
+
287
+ return rb_ary_new3(2, tx, ty);
288
+
289
+ }
290
+
291
+ static VALUE
292
+ dcl_stirot(obj, tx, ty)
293
+ VALUE obj, tx, ty;
294
+ {
295
+ real i_tx;
296
+ real i_ty;
297
+ real o_ux;
298
+ real o_uy;
299
+ VALUE ux;
300
+ VALUE uy;
301
+
302
+ if (TYPE(tx) != T_FLOAT) {
303
+ tx = rb_funcall(tx, rb_intern("to_f"), 0);
304
+ }
305
+ if (TYPE(ty) != T_FLOAT) {
306
+ ty = rb_funcall(ty, rb_intern("to_f"), 0);
307
+ }
308
+
309
+ i_tx = (real)NUM2DBL(tx);
310
+ i_ty = (real)NUM2DBL(ty);
311
+
312
+
313
+ stirot_(&i_tx, &i_ty, &o_ux, &o_uy);
314
+
315
+ ux = rb_float_new((double)o_ux);
316
+ uy = rb_float_new((double)o_uy);
317
+
318
+
319
+ return rb_ary_new3(2, ux, uy);
320
+
321
+ }
322
+
323
+ static VALUE
324
+ dcl_stsrot(obj, theta, phi, psi)
325
+ VALUE obj, theta, phi, psi;
326
+ {
327
+ real i_theta;
328
+ real i_phi;
329
+ real i_psi;
330
+
331
+ if (TYPE(theta) != T_FLOAT) {
332
+ theta = rb_funcall(theta, rb_intern("to_f"), 0);
333
+ }
334
+ if (TYPE(phi) != T_FLOAT) {
335
+ phi = rb_funcall(phi, rb_intern("to_f"), 0);
336
+ }
337
+ if (TYPE(psi) != T_FLOAT) {
338
+ psi = rb_funcall(psi, rb_intern("to_f"), 0);
339
+ }
340
+
341
+ i_theta = (real)NUM2DBL(theta);
342
+ i_phi = (real)NUM2DBL(phi);
343
+ i_psi = (real)NUM2DBL(psi);
344
+
345
+
346
+ stsrot_(&i_theta, &i_phi, &i_psi);
347
+
348
+ return Qnil;
349
+
350
+ }
351
+
352
+ static VALUE
353
+ dcl_stfrad(obj, x, y)
354
+ VALUE obj, x, y;
355
+ {
356
+ real i_x;
357
+ real i_y;
358
+ real o_rx;
359
+ real o_ry;
360
+ VALUE rx;
361
+ VALUE ry;
362
+
363
+ if (TYPE(x) != T_FLOAT) {
364
+ x = rb_funcall(x, rb_intern("to_f"), 0);
365
+ }
366
+ if (TYPE(y) != T_FLOAT) {
367
+ y = rb_funcall(y, rb_intern("to_f"), 0);
368
+ }
369
+
370
+ i_x = (real)NUM2DBL(x);
371
+ i_y = (real)NUM2DBL(y);
372
+
373
+
374
+ stfrad_(&i_x, &i_y, &o_rx, &o_ry);
375
+
376
+ rx = rb_float_new((double)o_rx);
377
+ ry = rb_float_new((double)o_ry);
378
+
379
+
380
+ return rb_ary_new3(2, rx, ry);
381
+
382
+ }
383
+
384
+ static VALUE
385
+ dcl_stirad(obj, rx, ry)
386
+ VALUE obj, rx, ry;
387
+ {
388
+ real i_rx;
389
+ real i_ry;
390
+ real o_x;
391
+ real o_y;
392
+ VALUE x;
393
+ VALUE y;
394
+
395
+ if (TYPE(rx) != T_FLOAT) {
396
+ rx = rb_funcall(rx, rb_intern("to_f"), 0);
397
+ }
398
+ if (TYPE(ry) != T_FLOAT) {
399
+ ry = rb_funcall(ry, rb_intern("to_f"), 0);
400
+ }
401
+
402
+ i_rx = (real)NUM2DBL(rx);
403
+ i_ry = (real)NUM2DBL(ry);
404
+
405
+
406
+ stirad_(&i_rx, &i_ry, &o_x, &o_y);
407
+
408
+ x = rb_float_new((double)o_x);
409
+ y = rb_float_new((double)o_y);
410
+
411
+
412
+ return rb_ary_new3(2, x, y);
413
+
414
+ }
415
+
416
+ static VALUE
417
+ dcl_stsrad(obj, lxdeg, lydeg)
418
+ VALUE obj, lxdeg, lydeg;
419
+ {
420
+ logical i_lxdeg;
421
+ logical i_lydeg;
422
+
423
+ i_lxdeg = ((lxdeg == Qnil)||(lxdeg == Qfalse)) ? FALSE_ : TRUE_;
424
+ i_lydeg = ((lydeg == Qnil)||(lydeg == Qfalse)) ? FALSE_ : TRUE_;
425
+
426
+
427
+ stsrad_(&i_lxdeg, &i_lydeg);
428
+
429
+ return Qnil;
430
+
431
+ }
432
+
433
+ static VALUE
434
+ dcl_stfusr(obj, ux, uy)
435
+ VALUE obj, ux, uy;
436
+ {
437
+ real i_ux;
438
+ real i_uy;
439
+ real o_xx;
440
+ real o_yy;
441
+ VALUE xx;
442
+ VALUE yy;
443
+
444
+ if (TYPE(ux) != T_FLOAT) {
445
+ ux = rb_funcall(ux, rb_intern("to_f"), 0);
446
+ }
447
+ if (TYPE(uy) != T_FLOAT) {
448
+ uy = rb_funcall(uy, rb_intern("to_f"), 0);
449
+ }
450
+
451
+ i_ux = (real)NUM2DBL(ux);
452
+ i_uy = (real)NUM2DBL(uy);
453
+
454
+
455
+ stfusr_(&i_ux, &i_uy, &o_xx, &o_yy);
456
+
457
+ xx = rb_float_new((double)o_xx);
458
+ yy = rb_float_new((double)o_yy);
459
+
460
+
461
+ return rb_ary_new3(2, xx, yy);
462
+
463
+ }
464
+
465
+ static VALUE
466
+ dcl_stiusr(obj, xx, yy)
467
+ VALUE obj, xx, yy;
468
+ {
469
+ real i_xx;
470
+ real i_yy;
471
+ real o_ux;
472
+ real o_uy;
473
+ VALUE ux;
474
+ VALUE uy;
475
+
476
+ if (TYPE(xx) != T_FLOAT) {
477
+ xx = rb_funcall(xx, rb_intern("to_f"), 0);
478
+ }
479
+ if (TYPE(yy) != T_FLOAT) {
480
+ yy = rb_funcall(yy, rb_intern("to_f"), 0);
481
+ }
482
+
483
+ i_xx = (real)NUM2DBL(xx);
484
+ i_yy = (real)NUM2DBL(yy);
485
+
486
+
487
+ stiusr_(&i_xx, &i_yy, &o_ux, &o_uy);
488
+
489
+ ux = rb_float_new((double)o_ux);
490
+ uy = rb_float_new((double)o_uy);
491
+
492
+
493
+ return rb_ary_new3(2, ux, uy);
494
+
495
+ }
496
+
497
+ static VALUE
498
+ dcl_stsusr(obj)
499
+ VALUE obj;
500
+ {
501
+ stsusr_();
502
+
503
+ return Qnil;
504
+
505
+ }
506
+
507
+ static VALUE
508
+ dcl_stfwtr(obj, rx, ry)
509
+ VALUE obj, rx, ry;
510
+ {
511
+ real i_rx;
512
+ real i_ry;
513
+ real o_wx;
514
+ real o_wy;
515
+ VALUE wx;
516
+ VALUE wy;
517
+
518
+ if (TYPE(rx) != T_FLOAT) {
519
+ rx = rb_funcall(rx, rb_intern("to_f"), 0);
520
+ }
521
+ if (TYPE(ry) != T_FLOAT) {
522
+ ry = rb_funcall(ry, rb_intern("to_f"), 0);
523
+ }
524
+
525
+ i_rx = (real)NUM2DBL(rx);
526
+ i_ry = (real)NUM2DBL(ry);
527
+
528
+
529
+ stfwtr_(&i_rx, &i_ry, &o_wx, &o_wy);
530
+
531
+ wx = rb_float_new((double)o_wx);
532
+ wy = rb_float_new((double)o_wy);
533
+
534
+
535
+ return rb_ary_new3(2, wx, wy);
536
+
537
+ }
538
+
539
+ static VALUE
540
+ dcl_stiwtr(obj, wx, wy)
541
+ VALUE obj, wx, wy;
542
+ {
543
+ real i_wx;
544
+ real i_wy;
545
+ real o_rx;
546
+ real o_ry;
547
+ VALUE rx;
548
+ VALUE ry;
549
+
550
+ if (TYPE(wx) != T_FLOAT) {
551
+ wx = rb_funcall(wx, rb_intern("to_f"), 0);
552
+ }
553
+ if (TYPE(wy) != T_FLOAT) {
554
+ wy = rb_funcall(wy, rb_intern("to_f"), 0);
555
+ }
556
+
557
+ i_wx = (real)NUM2DBL(wx);
558
+ i_wy = (real)NUM2DBL(wy);
559
+
560
+
561
+ stiwtr_(&i_wx, &i_wy, &o_rx, &o_ry);
562
+
563
+ rx = rb_float_new((double)o_rx);
564
+ ry = rb_float_new((double)o_ry);
565
+
566
+
567
+ return rb_ary_new3(2, rx, ry);
568
+
569
+ }
570
+
571
+ static VALUE
572
+ dcl_stswtr(obj, rxmin, rxmax, rymin, rymax, wxmin, wxmax, wymin, wymax, iwtrf)
573
+ VALUE obj, rxmin, rxmax, rymin, rymax, wxmin, wxmax, wymin, wymax, iwtrf;
574
+ {
575
+ real i_rxmin;
576
+ real i_rxmax;
577
+ real i_rymin;
578
+ real i_rymax;
579
+ real i_wxmin;
580
+ real i_wxmax;
581
+ real i_wymin;
582
+ real i_wymax;
583
+ integer i_iwtrf;
584
+
585
+ if (TYPE(rxmin) != T_FLOAT) {
586
+ rxmin = rb_funcall(rxmin, rb_intern("to_f"), 0);
587
+ }
588
+ if (TYPE(rxmax) != T_FLOAT) {
589
+ rxmax = rb_funcall(rxmax, rb_intern("to_f"), 0);
590
+ }
591
+ if (TYPE(rymin) != T_FLOAT) {
592
+ rymin = rb_funcall(rymin, rb_intern("to_f"), 0);
593
+ }
594
+ if (TYPE(rymax) != T_FLOAT) {
595
+ rymax = rb_funcall(rymax, rb_intern("to_f"), 0);
596
+ }
597
+ if (TYPE(wxmin) != T_FLOAT) {
598
+ wxmin = rb_funcall(wxmin, rb_intern("to_f"), 0);
599
+ }
600
+ if (TYPE(wxmax) != T_FLOAT) {
601
+ wxmax = rb_funcall(wxmax, rb_intern("to_f"), 0);
602
+ }
603
+ if (TYPE(wymin) != T_FLOAT) {
604
+ wymin = rb_funcall(wymin, rb_intern("to_f"), 0);
605
+ }
606
+ if (TYPE(wymax) != T_FLOAT) {
607
+ wymax = rb_funcall(wymax, rb_intern("to_f"), 0);
608
+ }
609
+ if ((TYPE(iwtrf) != T_BIGNUM) || (TYPE(iwtrf) != T_FIXNUM)) {
610
+ iwtrf = rb_funcall(iwtrf, rb_intern("to_i"), 0);
611
+ }
612
+
613
+ i_rxmin = (real)NUM2DBL(rxmin);
614
+ i_rxmax = (real)NUM2DBL(rxmax);
615
+ i_rymin = (real)NUM2DBL(rymin);
616
+ i_rymax = (real)NUM2DBL(rymax);
617
+ i_wxmin = (real)NUM2DBL(wxmin);
618
+ i_wxmax = (real)NUM2DBL(wxmax);
619
+ i_wymin = (real)NUM2DBL(wymin);
620
+ i_wymax = (real)NUM2DBL(wymax);
621
+ i_iwtrf = NUM2INT(iwtrf);
622
+
623
+
624
+ stswtr_(&i_rxmin, &i_rxmax, &i_rymin, &i_rymax, &i_wxmin, &i_wxmax, &i_wymin, &i_wymax, &i_iwtrf);
625
+
626
+ return Qnil;
627
+
628
+ }
629
+
630
+ static VALUE
631
+ dcl_stqwtr(obj)
632
+ VALUE obj;
633
+ {
634
+ real o_rxmin;
635
+ real o_rxmax;
636
+ real o_rymin;
637
+ real o_rymax;
638
+ real o_wxmin;
639
+ real o_wxmax;
640
+ real o_wymin;
641
+ real o_wymax;
642
+ integer o_iwtrf;
643
+ VALUE rxmin;
644
+ VALUE rxmax;
645
+ VALUE rymin;
646
+ VALUE rymax;
647
+ VALUE wxmin;
648
+ VALUE wxmax;
649
+ VALUE wymin;
650
+ VALUE wymax;
651
+ VALUE iwtrf;
652
+
653
+ stqwtr_(&o_rxmin, &o_rxmax, &o_rymin, &o_rymax, &o_wxmin, &o_wxmax, &o_wymin, &o_wymax, &o_iwtrf);
654
+
655
+ rxmin = rb_float_new((double)o_rxmin);
656
+ rxmax = rb_float_new((double)o_rxmax);
657
+ rymin = rb_float_new((double)o_rymin);
658
+ rymax = rb_float_new((double)o_rymax);
659
+ wxmin = rb_float_new((double)o_wxmin);
660
+ wxmax = rb_float_new((double)o_wxmax);
661
+ wymin = rb_float_new((double)o_wymin);
662
+ wymax = rb_float_new((double)o_wymax);
663
+ iwtrf = INT2NUM(o_iwtrf);
664
+
665
+
666
+ return rb_ary_new3(9, rxmin, rxmax, rymin, rymax, wxmin, wxmax, wymin, wymax, iwtrf);
667
+
668
+ }
669
+
670
+ static VALUE
671
+ dcl_stswrc(obj, wsxmn, wsxmx, wsymn, wsymx)
672
+ VALUE obj, wsxmn, wsxmx, wsymn, wsymx;
673
+ {
674
+ real i_wsxmn;
675
+ real i_wsxmx;
676
+ real i_wsymn;
677
+ real i_wsymx;
678
+
679
+ if (TYPE(wsxmn) != T_FLOAT) {
680
+ wsxmn = rb_funcall(wsxmn, rb_intern("to_f"), 0);
681
+ }
682
+ if (TYPE(wsxmx) != T_FLOAT) {
683
+ wsxmx = rb_funcall(wsxmx, rb_intern("to_f"), 0);
684
+ }
685
+ if (TYPE(wsymn) != T_FLOAT) {
686
+ wsymn = rb_funcall(wsymn, rb_intern("to_f"), 0);
687
+ }
688
+ if (TYPE(wsymx) != T_FLOAT) {
689
+ wsymx = rb_funcall(wsymx, rb_intern("to_f"), 0);
690
+ }
691
+
692
+ i_wsxmn = (real)NUM2DBL(wsxmn);
693
+ i_wsxmx = (real)NUM2DBL(wsxmx);
694
+ i_wsymn = (real)NUM2DBL(wsymn);
695
+ i_wsymx = (real)NUM2DBL(wsymx);
696
+
697
+
698
+ stswrc_(&i_wsxmn, &i_wsxmx, &i_wsymn, &i_wsymx);
699
+
700
+ return Qnil;
701
+
702
+ }
703
+
704
+ static VALUE
705
+ dcl_stqwrc(obj)
706
+ VALUE obj;
707
+ {
708
+ real o_wsxmn;
709
+ real o_wsxmx;
710
+ real o_wsymn;
711
+ real o_wsymx;
712
+ VALUE wsxmn;
713
+ VALUE wsxmx;
714
+ VALUE wsymn;
715
+ VALUE wsymx;
716
+
717
+ stqwrc_(&o_wsxmn, &o_wsxmx, &o_wsymn, &o_wsymx);
718
+
719
+ wsxmn = rb_float_new((double)o_wsxmn);
720
+ wsxmx = rb_float_new((double)o_wsxmx);
721
+ wsymn = rb_float_new((double)o_wsymn);
722
+ wsymx = rb_float_new((double)o_wsymx);
723
+
724
+
725
+ return rb_ary_new3(4, wsxmn, wsxmx, wsymn, wsymx);
726
+
727
+ }
728
+
729
+ static VALUE
730
+ dcl_stfpr3(obj, x, y, z)
731
+ VALUE obj, x, y, z;
732
+ {
733
+ real i_x;
734
+ real i_y;
735
+ real i_z;
736
+ real o_rx;
737
+ real o_ry;
738
+ VALUE rx;
739
+ VALUE ry;
740
+
741
+ if (TYPE(x) != T_FLOAT) {
742
+ x = rb_funcall(x, rb_intern("to_f"), 0);
743
+ }
744
+ if (TYPE(y) != T_FLOAT) {
745
+ y = rb_funcall(y, rb_intern("to_f"), 0);
746
+ }
747
+ if (TYPE(z) != T_FLOAT) {
748
+ z = rb_funcall(z, rb_intern("to_f"), 0);
749
+ }
750
+
751
+ i_x = (real)NUM2DBL(x);
752
+ i_y = (real)NUM2DBL(y);
753
+ i_z = (real)NUM2DBL(z);
754
+
755
+
756
+ stfpr3_(&i_x, &i_y, &i_z, &o_rx, &o_ry);
757
+
758
+ rx = rb_float_new((double)o_rx);
759
+ ry = rb_float_new((double)o_ry);
760
+
761
+
762
+ return rb_ary_new3(2, rx, ry);
763
+
764
+ }
765
+
766
+ static VALUE
767
+ dcl_stspr3(obj, xfc, yfc, zfc, theta, phi, psi, fac, zview, rxoff, ryoff)
768
+ VALUE obj, xfc, yfc, zfc, theta, phi, psi, fac, zview, rxoff, ryoff;
769
+ {
770
+ real i_xfc;
771
+ real i_yfc;
772
+ real i_zfc;
773
+ real i_theta;
774
+ real i_phi;
775
+ real i_psi;
776
+ real i_fac;
777
+ real i_zview;
778
+ real i_rxoff;
779
+ real i_ryoff;
780
+
781
+ if (TYPE(xfc) != T_FLOAT) {
782
+ xfc = rb_funcall(xfc, rb_intern("to_f"), 0);
783
+ }
784
+ if (TYPE(yfc) != T_FLOAT) {
785
+ yfc = rb_funcall(yfc, rb_intern("to_f"), 0);
786
+ }
787
+ if (TYPE(zfc) != T_FLOAT) {
788
+ zfc = rb_funcall(zfc, rb_intern("to_f"), 0);
789
+ }
790
+ if (TYPE(theta) != T_FLOAT) {
791
+ theta = rb_funcall(theta, rb_intern("to_f"), 0);
792
+ }
793
+ if (TYPE(phi) != T_FLOAT) {
794
+ phi = rb_funcall(phi, rb_intern("to_f"), 0);
795
+ }
796
+ if (TYPE(psi) != T_FLOAT) {
797
+ psi = rb_funcall(psi, rb_intern("to_f"), 0);
798
+ }
799
+ if (TYPE(fac) != T_FLOAT) {
800
+ fac = rb_funcall(fac, rb_intern("to_f"), 0);
801
+ }
802
+ if (TYPE(zview) != T_FLOAT) {
803
+ zview = rb_funcall(zview, rb_intern("to_f"), 0);
804
+ }
805
+ if (TYPE(rxoff) != T_FLOAT) {
806
+ rxoff = rb_funcall(rxoff, rb_intern("to_f"), 0);
807
+ }
808
+ if (TYPE(ryoff) != T_FLOAT) {
809
+ ryoff = rb_funcall(ryoff, rb_intern("to_f"), 0);
810
+ }
811
+
812
+ i_xfc = (real)NUM2DBL(xfc);
813
+ i_yfc = (real)NUM2DBL(yfc);
814
+ i_zfc = (real)NUM2DBL(zfc);
815
+ i_theta = (real)NUM2DBL(theta);
816
+ i_phi = (real)NUM2DBL(phi);
817
+ i_psi = (real)NUM2DBL(psi);
818
+ i_fac = (real)NUM2DBL(fac);
819
+ i_zview = (real)NUM2DBL(zview);
820
+ i_rxoff = (real)NUM2DBL(rxoff);
821
+ i_ryoff = (real)NUM2DBL(ryoff);
822
+
823
+
824
+ stspr3_(&i_xfc, &i_yfc, &i_zfc, &i_theta, &i_phi, &i_psi, &i_fac, &i_zview, &i_rxoff, &i_ryoff);
825
+
826
+ return Qnil;
827
+
828
+ }
829
+
830
+ static VALUE
831
+ dcl_stspr2(obj, ix, iy, sect)
832
+ VALUE obj, ix, iy, sect;
833
+ {
834
+ integer i_ix;
835
+ integer i_iy;
836
+ real i_sect;
837
+
838
+ if ((TYPE(ix) != T_BIGNUM) || (TYPE(ix) != T_FIXNUM)) {
839
+ ix = rb_funcall(ix, rb_intern("to_i"), 0);
840
+ }
841
+ if ((TYPE(iy) != T_BIGNUM) || (TYPE(iy) != T_FIXNUM)) {
842
+ iy = rb_funcall(iy, rb_intern("to_i"), 0);
843
+ }
844
+ if (TYPE(sect) != T_FLOAT) {
845
+ sect = rb_funcall(sect, rb_intern("to_f"), 0);
846
+ }
847
+
848
+ i_ix = NUM2INT(ix);
849
+ i_iy = NUM2INT(iy);
850
+ i_sect = (real)NUM2DBL(sect);
851
+
852
+
853
+ stspr2_(&i_ix, &i_iy, &i_sect);
854
+
855
+ return Qnil;
856
+
857
+ }
858
+
859
+ static VALUE
860
+ dcl_stepr2(obj)
861
+ VALUE obj;
862
+ {
863
+ stepr2_();
864
+
865
+ return Qnil;
866
+
867
+ }
868
+
869
+ static VALUE
870
+ dcl_strpr2(obj)
871
+ VALUE obj;
872
+ {
873
+ strpr2_();
874
+
875
+ return Qnil;
876
+
877
+ }
878
+
879
+ static VALUE
880
+ dcl_stftr3(obj, ux, uy, uz)
881
+ VALUE obj, ux, uy, uz;
882
+ {
883
+ real i_ux;
884
+ real i_uy;
885
+ real i_uz;
886
+ real o_vx;
887
+ real o_vy;
888
+ real o_vz;
889
+ VALUE vx;
890
+ VALUE vy;
891
+ VALUE vz;
892
+
893
+ if (TYPE(ux) != T_FLOAT) {
894
+ ux = rb_funcall(ux, rb_intern("to_f"), 0);
895
+ }
896
+ if (TYPE(uy) != T_FLOAT) {
897
+ uy = rb_funcall(uy, rb_intern("to_f"), 0);
898
+ }
899
+ if (TYPE(uz) != T_FLOAT) {
900
+ uz = rb_funcall(uz, rb_intern("to_f"), 0);
901
+ }
902
+
903
+ i_ux = (real)NUM2DBL(ux);
904
+ i_uy = (real)NUM2DBL(uy);
905
+ i_uz = (real)NUM2DBL(uz);
906
+
907
+
908
+ stftr3_(&i_ux, &i_uy, &i_uz, &o_vx, &o_vy, &o_vz);
909
+
910
+ vx = rb_float_new((double)o_vx);
911
+ vy = rb_float_new((double)o_vy);
912
+ vz = rb_float_new((double)o_vz);
913
+
914
+
915
+ return rb_ary_new3(3, vx, vy, vz);
916
+
917
+ }
918
+
919
+ static VALUE
920
+ dcl_ststr3(obj, itr, cxa, cya, cza, vxoff, vyoff, vzoff)
921
+ VALUE obj, itr, cxa, cya, cza, vxoff, vyoff, vzoff;
922
+ {
923
+ integer i_itr;
924
+ real i_cxa;
925
+ real i_cya;
926
+ real i_cza;
927
+ real i_vxoff;
928
+ real i_vyoff;
929
+ real i_vzoff;
930
+
931
+ if ((TYPE(itr) != T_BIGNUM) || (TYPE(itr) != T_FIXNUM)) {
932
+ itr = rb_funcall(itr, rb_intern("to_i"), 0);
933
+ }
934
+ if (TYPE(cxa) != T_FLOAT) {
935
+ cxa = rb_funcall(cxa, rb_intern("to_f"), 0);
936
+ }
937
+ if (TYPE(cya) != T_FLOAT) {
938
+ cya = rb_funcall(cya, rb_intern("to_f"), 0);
939
+ }
940
+ if (TYPE(cza) != T_FLOAT) {
941
+ cza = rb_funcall(cza, rb_intern("to_f"), 0);
942
+ }
943
+ if (TYPE(vxoff) != T_FLOAT) {
944
+ vxoff = rb_funcall(vxoff, rb_intern("to_f"), 0);
945
+ }
946
+ if (TYPE(vyoff) != T_FLOAT) {
947
+ vyoff = rb_funcall(vyoff, rb_intern("to_f"), 0);
948
+ }
949
+ if (TYPE(vzoff) != T_FLOAT) {
950
+ vzoff = rb_funcall(vzoff, rb_intern("to_f"), 0);
951
+ }
952
+
953
+ i_itr = NUM2INT(itr);
954
+ i_cxa = (real)NUM2DBL(cxa);
955
+ i_cya = (real)NUM2DBL(cya);
956
+ i_cza = (real)NUM2DBL(cza);
957
+ i_vxoff = (real)NUM2DBL(vxoff);
958
+ i_vyoff = (real)NUM2DBL(vyoff);
959
+ i_vzoff = (real)NUM2DBL(vzoff);
960
+
961
+
962
+ ststr3_(&i_itr, &i_cxa, &i_cya, &i_cza, &i_vxoff, &i_vyoff, &i_vzoff);
963
+
964
+ return Qnil;
965
+
966
+ }
967
+
968
+ static VALUE
969
+ dcl_stsrd3(obj, lxrd, lyrd, lzrd)
970
+ VALUE obj, lxrd, lyrd, lzrd;
971
+ {
972
+ logical i_lxrd;
973
+ logical i_lyrd;
974
+ logical i_lzrd;
975
+
976
+ i_lxrd = ((lxrd == Qnil)||(lxrd == Qfalse)) ? FALSE_ : TRUE_;
977
+ i_lyrd = ((lyrd == Qnil)||(lyrd == Qfalse)) ? FALSE_ : TRUE_;
978
+ i_lzrd = ((lzrd == Qnil)||(lzrd == Qfalse)) ? FALSE_ : TRUE_;
979
+
980
+
981
+ stsrd3_(&i_lxrd, &i_lyrd, &i_lzrd);
982
+
983
+ return Qnil;
984
+
985
+ }
986
+
987
+ static VALUE
988
+ dcl_stslg3(obj, lxlg, lylg, lzlg)
989
+ VALUE obj, lxlg, lylg, lzlg;
990
+ {
991
+ logical i_lxlg;
992
+ logical i_lylg;
993
+ logical i_lzlg;
994
+
995
+ i_lxlg = ((lxlg == Qnil)||(lxlg == Qfalse)) ? FALSE_ : TRUE_;
996
+ i_lylg = ((lylg == Qnil)||(lylg == Qfalse)) ? FALSE_ : TRUE_;
997
+ i_lzlg = ((lzlg == Qnil)||(lzlg == Qfalse)) ? FALSE_ : TRUE_;
998
+
999
+
1000
+ stslg3_(&i_lxlg, &i_lylg, &i_lzlg);
1001
+
1002
+ return Qnil;
1003
+
1004
+ }
1005
+ void
1006
+ init_grph1_stpack(mDCL)
1007
+ VALUE mDCL;
1008
+ {
1009
+ rb_define_module_function(mDCL, "stqtrf", dcl_stqtrf, 0);
1010
+ rb_define_module_function(mDCL, "ststrf", dcl_ststrf, 1);
1011
+ rb_define_module_function(mDCL, "stftrn", dcl_stftrn, 2);
1012
+ rb_define_module_function(mDCL, "stitrn", dcl_stitrn, 2);
1013
+ #if DCLVER >= 530
1014
+ rb_define_module_function(mDCL, "ststri", dcl_ststri, 1);
1015
+ #endif
1016
+ #if DCLVER >= 530
1017
+ rb_define_module_function(mDCL, "ststrp", dcl_ststrp, 4);
1018
+ #endif
1019
+ rb_define_module_function(mDCL, "ststrn", dcl_ststrn, 5);
1020
+ rb_define_module_function(mDCL, "stfrot", dcl_stfrot, 2);
1021
+ rb_define_module_function(mDCL, "stirot", dcl_stirot, 2);
1022
+ rb_define_module_function(mDCL, "stsrot", dcl_stsrot, 3);
1023
+ rb_define_module_function(mDCL, "stfrad", dcl_stfrad, 2);
1024
+ rb_define_module_function(mDCL, "stirad", dcl_stirad, 2);
1025
+ rb_define_module_function(mDCL, "stsrad", dcl_stsrad, 2);
1026
+ rb_define_module_function(mDCL, "stfusr", dcl_stfusr, 2);
1027
+ rb_define_module_function(mDCL, "stiusr", dcl_stiusr, 2);
1028
+ rb_define_module_function(mDCL, "stsusr", dcl_stsusr, 0);
1029
+ rb_define_module_function(mDCL, "stfwtr", dcl_stfwtr, 2);
1030
+ rb_define_module_function(mDCL, "stiwtr", dcl_stiwtr, 2);
1031
+ rb_define_module_function(mDCL, "stswtr", dcl_stswtr, 9);
1032
+ rb_define_module_function(mDCL, "stqwtr", dcl_stqwtr, 0);
1033
+ rb_define_module_function(mDCL, "stswrc", dcl_stswrc, 4);
1034
+ rb_define_module_function(mDCL, "stqwrc", dcl_stqwrc, 0);
1035
+ rb_define_module_function(mDCL, "stfpr3", dcl_stfpr3, 3);
1036
+ rb_define_module_function(mDCL, "stspr3", dcl_stspr3, 10);
1037
+ rb_define_module_function(mDCL, "stspr2", dcl_stspr2, 3);
1038
+ rb_define_module_function(mDCL, "stepr2", dcl_stepr2, 0);
1039
+ rb_define_module_function(mDCL, "strpr2", dcl_strpr2, 0);
1040
+ rb_define_module_function(mDCL, "stftr3", dcl_stftr3, 3);
1041
+ rb_define_module_function(mDCL, "ststr3", dcl_ststr3, 7);
1042
+ rb_define_module_function(mDCL, "stsrd3", dcl_stsrd3, 3);
1043
+ rb_define_module_function(mDCL, "stslg3", dcl_stslg3, 3);
1044
+ }