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.
- data/ChangeLog +321 -0
- data/GenWrapper/Makefile +14 -0
- data/GenWrapper/cproto2init.rb +41 -0
- data/GenWrapper/dcl_narrayed_funcs.rb +181 -0
- data/GenWrapper/dcl_rb_footing +29 -0
- data/GenWrapper/dcl_rb_heading +129 -0
- data/GenWrapper/def.rb +20 -0
- data/GenWrapper/elim_ary_size.rb +398 -0
- data/GenWrapper/etc/Mk_proto +375 -0
- data/GenWrapper/etc/dcl_gen +13 -0
- data/GenWrapper/etc/p_header +63 -0
- data/GenWrapper/etc/p_init +410 -0
- data/GenWrapper/pparse.rb +137 -0
- data/GenWrapper/proto/Makefile +35 -0
- data/GenWrapper/proto/grph1_00 +17 -0
- data/GenWrapper/proto/grph1_csgi.fp +27 -0
- data/GenWrapper/proto/grph1_scpack.fp +442 -0
- data/GenWrapper/proto/grph1_sgpack.fp +1406 -0
- data/GenWrapper/proto/grph1_slpack.fp +316 -0
- data/GenWrapper/proto/grph1_stpack.fp +411 -0
- data/GenWrapper/proto/grph1_swpack.fp +746 -0
- data/GenWrapper/proto/grph2_00 +16 -0
- data/GenWrapper/proto/grph2_grpack.fp +139 -0
- data/GenWrapper/proto/grph2_ucpack.fp +522 -0
- data/GenWrapper/proto/grph2_udpack.fp +692 -0
- data/GenWrapper/proto/grph2_uepack.fp +601 -0
- data/GenWrapper/proto/grph2_ugpack.fp +436 -0
- data/GenWrapper/proto/grph2_uhpack.fp +246 -0
- data/GenWrapper/proto/grph2_ulpack.fp +516 -0
- data/GenWrapper/proto/grph2_umpack.fp +676 -0
- data/GenWrapper/proto/grph2_uspack.fp +989 -0
- data/GenWrapper/proto/grph2_uupack.fp +663 -0
- data/GenWrapper/proto/grph2_uvpack.fp +246 -0
- data/GenWrapper/proto/grph2_uwpack.fp +203 -0
- data/GenWrapper/proto/grph2_uxpack.fp +295 -0
- data/GenWrapper/proto/grph2_uypack.fp +295 -0
- data/GenWrapper/proto/grph2_uzpack.fp +574 -0
- data/GenWrapper/proto/math1_00 +12 -0
- data/GenWrapper/proto/math1_blklib.fp +58 -0
- data/GenWrapper/proto/math1_chrlib.fp +83 -0
- data/GenWrapper/proto/math1_fnclib.fp +79 -0
- data/GenWrapper/proto/math1_gnmlib.fp +118 -0
- data/GenWrapper/proto/math1_gt2dlib.fp +144 -0
- data/GenWrapper/proto/math1_ifalib.fp +123 -0
- data/GenWrapper/proto/math1_indxlib.fp +222 -0
- data/GenWrapper/proto/math1_intlib.fp +46 -0
- data/GenWrapper/proto/math1_lrllib.fp +276 -0
- data/GenWrapper/proto/math1_maplib.fp +24 -0
- data/GenWrapper/proto/math1_oslib.fp +28 -0
- data/GenWrapper/proto/math1_rfalib.fp +420 -0
- data/GenWrapper/proto/math1_rfblib.fp +51 -0
- data/GenWrapper/proto/math1_sublib.fp +60 -0
- data/GenWrapper/proto/math1_syslib.fp +767 -0
- data/GenWrapper/proto/math1_vialib.fp +339 -0
- data/GenWrapper/proto/math1_viblib.fp +264 -0
- data/GenWrapper/proto/math1_vralib.fp +339 -0
- data/GenWrapper/proto/math1_vrblib.fp +264 -0
- data/GenWrapper/proto/math1_xfclib.fp +68 -0
- data/GenWrapper/proto/math2_00 +12 -0
- data/GenWrapper/proto/math2_fftlib.fp +803 -0
- data/GenWrapper/proto/math2_intrlib.fp +32 -0
- data/GenWrapper/proto/math2_odelib.fp_notused +568 -0
- data/GenWrapper/proto/math2_rnmlib.fp +54 -0
- data/GenWrapper/proto/math2_shtlib.fp +1292 -0
- data/GenWrapper/proto/math2_shtlib.fp_old +1294 -0
- data/GenWrapper/proto/math2_vstlib.fp +84 -0
- data/GenWrapper/proto/misc1_00 +17 -0
- data/GenWrapper/proto/misc1_chnlib.fp +47 -0
- data/GenWrapper/proto/misc1_datelib.fp +352 -0
- data/GenWrapper/proto/misc1_fmtlib.fp +19 -0
- data/GenWrapper/proto/misc1_misclib.fp +26 -0
- data/GenWrapper/proto/misc1_randlib.fp +36 -0
- data/GenWrapper/proto/misc1_timelib.fp +151 -0
- data/GenWrapper/proto2c.rb +13 -0
- data/GenWrapper/prototype.rb +209 -0
- data/GenWrapper/util.rb +9 -0
- data/GenWrapper/variable.rb +671 -0
- data/README +29 -0
- data/Rakefile +44 -0
- data/ToDo +2 -0
- data/dcl_cary2obj.c +354 -0
- data/dcl_narrayed_funcs.c +518 -0
- data/dcl_obj2cary.c +512 -0
- data/dcl_rubydcloriginal.c +129 -0
- data/demo/gokuraku/hop/hop.rb +26 -0
- data/demo/gokuraku/jump/jump1.rb +64 -0
- data/demo/gokuraku/jump/jump2.rb +50 -0
- data/demo/gokuraku/layout/lay1.rb +46 -0
- data/demo/gokuraku/layout/lay2.rb +44 -0
- data/demo/gokuraku/step/step0.rb +34 -0
- data/demo/gokuraku/step/step1.rb +84 -0
- data/demo/gokuraku/step/step2.rb +62 -0
- data/demo/gokuraku/u1d/u1d1.rb +37 -0
- data/demo/gokuraku/u1d/u1d2.rb +50 -0
- data/demo/gokuraku/u2d/u2d1.rb +46 -0
- data/demo/gokuraku/u2d/u2d2.rb +49 -0
- data/demo/gokuraku/u2d/u2d3.rb +45 -0
- data/demo/gokuraku/u2d/u2d4.rb +61 -0
- data/demo/grph1/scpack/scpkt2.rb +40 -0
- data/demo/grph1/scpack/scpkt3.rb +102 -0
- data/demo/grph1/scpack/scpkt6.rb +84 -0
- data/demo/grph1/scpack/scpkt7.rb +59 -0
- data/demo/grph1/scpack/scpkt8.rb +60 -0
- data/demo/grph1/scpack/t810630.dat +296 -0
- data/demo/grph1/scpack/t811231.dat +296 -0
- data/demo/grph1/sgpack/sgfont.rb +52 -0
- data/demo/grph1/sgpack/sgfonz.rb +53 -0
- data/demo/grph1/sgpack/sgksx1.rb +44 -0
- data/demo/grph1/sgpack/sgksx2.rb +90 -0
- data/demo/grph1/sgpack/sgksx3.rb +75 -0
- data/demo/grph1/sgpack/sglidx.rb +40 -0
- data/demo/grph1/sgpack/sgltyp.rb +48 -0
- data/demo/grph1/sgpack/sgpk01.rb +39 -0
- data/demo/grph1/sgpack/sgpk02.rb +79 -0
- data/demo/grph1/sgpack/sgpk03.rb +107 -0
- data/demo/grph1/sgpack/sgpk04.rb +86 -0
- data/demo/grph1/sgpack/sgpk05.rb +66 -0
- data/demo/grph1/sgpack/sgpk06.rb +91 -0
- data/demo/grph1/sgpack/sgpk07.rb +66 -0
- data/demo/grph1/sgpack/sgpk08.rb +67 -0
- data/demo/grph1/sgpack/sgpk09.rb +61 -0
- data/demo/grph1/sgpack/sgpk10.rb +58 -0
- data/demo/grph1/sgpack/sgtclr.rb +59 -0
- data/demo/grph1/sgpack/sgtone.rb +70 -0
- data/demo/grph1/sgpack/sgtonz.rb +66 -0
- data/demo/grph1/slpack/slpk01.rb +37 -0
- data/demo/grph1/slpack/slpk02.rb +29 -0
- data/demo/grph1/slpack/slpk03.rb +36 -0
- data/demo/grph1/slpack/slpk04.rb +36 -0
- data/demo/grph2/g2pack/g2pk01.rb +78 -0
- data/demo/grph2/g2pack/g2pk02.rb +75 -0
- data/demo/grph2/grpack/grpk01.rb +65 -0
- data/demo/grph2/ucpack/ucpk01.rb +95 -0
- data/demo/grph2/ucpack/ucpk02.rb +95 -0
- data/demo/grph2/udegpk/u2df01.rb +50 -0
- data/demo/grph2/udegpk/u2df02.rb +76 -0
- data/demo/grph2/udegpk/u2df03.rb +80 -0
- data/demo/grph2/udegpk/u2df04.rb +52 -0
- data/demo/grph2/udegpk/u2df05.rb +70 -0
- data/demo/grph2/udegpk/u2df06.rb +59 -0
- data/demo/grph2/udegpk/u2df07.rb +68 -0
- data/demo/grph2/udegpk/u2df08.rb +91 -0
- data/demo/grph2/udegpk/u2df09b.rb +88 -0
- data/demo/grph2/udegpk/u2df09c.rb +89 -0
- data/demo/grph2/udegpk/u2df09e.rb +88 -0
- data/demo/grph2/udegpk/u2df09f.rb +89 -0
- data/demo/grph2/ulpack/ulpk01.rb +111 -0
- data/demo/grph2/ulpack/ulpk01n.rb +111 -0
- data/demo/grph2/ulpack/ulpk02.rb +111 -0
- data/demo/grph2/ulpack/ulpk02n.rb +111 -0
- data/demo/grph2/umpack/t811231.dat +296 -0
- data/demo/grph2/umpack/test01.rb +69 -0
- data/demo/grph2/umpack/test02.rb +64 -0
- data/demo/grph2/umpack/test03.rb +84 -0
- data/demo/grph2/umpack/test04.rb +54 -0
- data/demo/grph2/umpack/test05.rb +85 -0
- data/demo/grph2/umpack/test06.rb +44 -0
- data/demo/grph2/umpack/test07.rb +43 -0
- data/demo/grph2/umpack/test08.rb +37 -0
- data/demo/grph2/umpack/test09.rb +86 -0
- data/demo/grph2/umpack/test10.rb +52 -0
- data/demo/grph2/umpack/umpk01.rb +65 -0
- data/demo/grph2/umpack/umpk02.rb +54 -0
- data/demo/grph2/umpack/umpk03.rb +46 -0
- data/demo/grph2/umpack/umpk04.rb +65 -0
- data/demo/grph2/umpack/umpk05.rb +84 -0
- data/demo/grph2/uspack/uspk01.rb +39 -0
- data/demo/grph2/uspack/uspk02.rb +47 -0
- data/demo/grph2/uspack/uspk03.rb +38 -0
- data/demo/grph2/uspack/uspk04.rb +64 -0
- data/demo/grph2/uspack/uspk05.rb +68 -0
- data/demo/grph2/uspack/uspk06.rb +43 -0
- data/demo/grph2/uspack/uspk07.rb +62 -0
- data/demo/grph2/uspack/uspk08.rb +46 -0
- data/demo/grph2/uspack/uspk09.rb +89 -0
- data/demo/grph2/uspack/uspk10.rb +48 -0
- data/demo/grph2/uspack/uspk11.rb +71 -0
- data/demo/grph2/uspack/uspk12.rb +51 -0
- data/demo/grph2/uupack/uupk01.rb +50 -0
- data/demo/grph2/uupack/uupk02.rb +74 -0
- data/demo/grph2/uupack/uupk03.rb +56 -0
- data/demo/grph2/uupack/uupk04.rb +84 -0
- data/demo/grph2/uupack/uupk05.rb +74 -0
- data/demo/grph2/uupack/uupk06.rb +77 -0
- data/demo/grph2/uupack/uupk07.rb +88 -0
- data/demo/grph2/uxyzpk/uxyz01.rb +38 -0
- data/demo/grph2/uxyzpk/uxyz02.rb +36 -0
- data/demo/grph2/uxyzpk/uxyz03.rb +37 -0
- data/demo/grph2/uxyzpk/uxyz04.rb +54 -0
- data/demo/grph2/uxyzpk/uxyz05.rb +41 -0
- data/demo/grph2/uxyzpk/uxyz06.rb +42 -0
- data/demo/grph2/uxyzpk/uxyz07.rb +38 -0
- data/demo/grph2/uxyzpk/uxyz08.rb +60 -0
- data/demo/grph2/uxyzpk/uxyz09.rb +52 -0
- data/demo/grph2/uxyzpk/uxyz10.rb +57 -0
- data/demo/grph2/ximage/MEMO +23 -0
- data/demo/grph2/ximage/tomsclm.dat +1344 -0
- data/demo/grph2/ximage/ximg01.rb +145 -0
- data/demo/math1/gt2dlib/gt2d01.rb +33 -0
- data/demo/math2/fftlib/fftl01.rb +28 -0
- data/demo/math2/fftlib/fftl02.rb +224 -0
- data/demo/math2/intrlib/intr01.rb +22 -0
- data/demo/math2/rnmlib/rnml01.rb +21 -0
- data/demo/math2/vstlib/vstl01.rb +29 -0
- data/demo/math2/vstlib/vstl02.rb +38 -0
- data/demo/rakuraku/color/color1.rb +61 -0
- data/demo/rakuraku/color/color2.rb +57 -0
- data/demo/rakuraku/color/color3.rb +81 -0
- data/demo/rakuraku/kihon/kihon1.rb +39 -0
- data/demo/rakuraku/kihon/kihon2.rb +56 -0
- data/demo/rakuraku/kihon/kihon3.rb +57 -0
- data/demo/rakuraku/kihon/kihon4.rb +70 -0
- data/demo/rakuraku/kihon/kihon5.rb +56 -0
- data/demo/rakuraku/kihon/kihon6.rb +40 -0
- data/demo/rakuraku/kihon/kihon7.rb +98 -0
- data/demo/rakuraku/kihon/kihon8.rb +93 -0
- data/demo/rakuraku/kihon/kihon9.rb +77 -0
- data/demo/rakuraku/kihon/kihona.rb +123 -0
- data/demo/rakuraku/kihon/kihonb.rb +73 -0
- data/demo/rakuraku/kihon/kihonc.rb +110 -0
- data/demo/rakuraku/layout/lay1.rb +29 -0
- data/demo/rakuraku/layout/lay2.rb +28 -0
- data/demo/rakuraku/layout/lay3.rb +29 -0
- data/demo/rakuraku/map3d/map3d1.rb +68 -0
- data/demo/rakuraku/map3d/map3d2.rb +67 -0
- data/demo/rakuraku/map3d/map3d3.rb +66 -0
- data/demo/rakuraku/map3d/map3d4.rb +107 -0
- data/demo/rakuraku/map3d/map3d5.rb +118 -0
- data/demo/rakuraku/map3d/map3d6.rb +96 -0
- data/demo/rakuraku/map3d/map3d7.rb +98 -0
- data/demo/rakuraku/miss/miss1.rb +76 -0
- data/demo/rakuraku/miss/miss2.rb +60 -0
- data/demo/rakuraku/quick/quick1.rb +35 -0
- data/demo/rakuraku/quick/quick2.rb +33 -0
- data/demo/rakuraku/quick/quick3.rb +46 -0
- data/demo/rakuraku/quick/quick4.rb +47 -0
- data/demo/rakuraku/quick/quick5.rb +46 -0
- data/demo/rakuraku/u2d/u2d1.rb +50 -0
- data/demo/rakuraku/u2d/u2d2.rb +51 -0
- data/demo/rakuraku/u2d/u2d3.rb +70 -0
- data/demo/rakuraku/u2d/u2d4.rb +59 -0
- data/demo/rakuraku/u2d/u2d5.rb +61 -0
- data/demo/rakuraku/u2d/u2d6.rb +57 -0
- data/demo/rakuraku/u2d/u2d7.rb +103 -0
- data/demo/rakuraku/uspack/uspac1.rb +35 -0
- data/demo/rakuraku/uspack/uspac2.rb +66 -0
- data/demo/rakuraku/uspack/uspac3.rb +37 -0
- data/demo/rakuraku/uspack/uspac4.rb +49 -0
- data/demo/rakuraku/uxyz/uxyz1.rb +37 -0
- data/demo/rakuraku/uxyz/uxyz2.rb +35 -0
- data/demo/rakuraku/uxyz/uxyz3.rb +38 -0
- data/demo/rakuraku/uxyz/uxyz4.rb +36 -0
- data/demo/rakuraku/uxyz/uxyz5.rb +57 -0
- data/demo/rakuraku/uxyz/uxyz6.rb +43 -0
- data/demo/rakuraku/uxyz/uxyz7.rb +39 -0
- data/demo/rakuraku/uxyz/uxyz8.rb +56 -0
- data/demo/rubydcloriginal/uemrkz1.rb +37 -0
- data/dummy.c +9 -0
- data/extconf.rb +133 -0
- data/grph1_csgi.c +119 -0
- data/grph1_scpack.c +1388 -0
- data/grph1_sgpack.c +3876 -0
- data/grph1_slpack.c +432 -0
- data/grph1_stpack.c +1044 -0
- data/grph1_swpack.c +1922 -0
- data/grph1_zgpack.c.org +141 -0
- data/grph2_grpack.c +368 -0
- data/grph2_ucpack.c +1232 -0
- data/grph2_udpack.c +1404 -0
- data/grph2_uepack.c +1443 -0
- data/grph2_ugpack.c +1073 -0
- data/grph2_uhpack.c +943 -0
- data/grph2_ulpack.c +1304 -0
- data/grph2_umpack.c +1540 -0
- data/grph2_uspack.c +2481 -0
- data/grph2_uupack.c +1689 -0
- data/grph2_uvpack.c +943 -0
- data/grph2_uwpack.c +552 -0
- data/grph2_uxpack.c +555 -0
- data/grph2_uypack.c +555 -0
- data/grph2_uzpack.c +1455 -0
- data/init.c.default +187 -0
- data/init.c.gtk +189 -0
- data/lib/dcl.rb +5084 -0
- data/math1_blklib.c +227 -0
- data/math1_chrlib.c +239 -0
- data/math1_fnclib.c +254 -0
- data/math1_gnmlib.c +356 -0
- data/math1_gt2dlib.c +514 -0
- data/math1_ifalib.c +427 -0
- data/math1_indxlib.c +709 -0
- data/math1_intlib.c +167 -0
- data/math1_lrllib.c +817 -0
- data/math1_maplib.c +172 -0
- data/math1_oslib.c +111 -0
- data/math1_rfalib.c +1417 -0
- data/math1_rfblib.c +232 -0
- data/math1_sublib.c +221 -0
- data/math1_syslib.c +2025 -0
- data/math1_vialib.c +1156 -0
- data/math1_viblib.c +1027 -0
- data/math1_vralib.c +1156 -0
- data/math1_vrblib.c +1027 -0
- data/math1_xfclib.c +142 -0
- data/math2_fftlib.c +833 -0
- data/math2_intrlib.c +138 -0
- data/math2_rnmlib.c +226 -0
- data/math2_shtlib.c +1568 -0
- data/math2_vstlib.c +366 -0
- data/misc1_chnlib.c +179 -0
- data/misc1_datelib.c +953 -0
- data/misc1_fmtlib.c +99 -0
- data/misc1_misclib.c +118 -0
- data/misc1_randlib.c +142 -0
- data/misc1_timelib.c +380 -0
- data/obsolete/README +2 -0
- data/obsolete/dcl_ext.html +112 -0
- data/obsolete/dcl_ext.rb +313 -0
- metadata +433 -0
data/misc1_fmtlib.c
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
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_chval(obj, cfmt, val)
|
|
66
|
+
VALUE obj, cfmt, val;
|
|
67
|
+
{
|
|
68
|
+
char *i_cfmt;
|
|
69
|
+
real i_val;
|
|
70
|
+
char *o_cval;
|
|
71
|
+
VALUE cval;
|
|
72
|
+
|
|
73
|
+
if (TYPE(cfmt) != T_STRING) {
|
|
74
|
+
cfmt = rb_funcall(cfmt, rb_intern("to_str"), 0);
|
|
75
|
+
}
|
|
76
|
+
if (TYPE(val) != T_FLOAT) {
|
|
77
|
+
val = rb_funcall(val, rb_intern("to_f"), 0);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
i_cfmt = StringValuePtr(cfmt);
|
|
81
|
+
i_val = (real)NUM2DBL(val);
|
|
82
|
+
|
|
83
|
+
o_cval= ALLOCA_N(char, (DFLT_SIZE+1));
|
|
84
|
+
memset(o_cval, '\0', DFLT_SIZE+1);
|
|
85
|
+
|
|
86
|
+
chval_(i_cfmt, &i_val, o_cval, (ftnlen)strlen(i_cfmt), (ftnlen)DFLT_SIZE);
|
|
87
|
+
|
|
88
|
+
cval = rb_str_new2(o_cval);
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
return cval;
|
|
92
|
+
|
|
93
|
+
}
|
|
94
|
+
void
|
|
95
|
+
init_misc1_fmtlib(mDCL)
|
|
96
|
+
VALUE mDCL;
|
|
97
|
+
{
|
|
98
|
+
rb_define_module_function(mDCL, "chval", dcl_chval, 2);
|
|
99
|
+
}
|
data/misc1_misclib.c
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
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_cns(obj, ins)
|
|
66
|
+
VALUE obj, ins;
|
|
67
|
+
{
|
|
68
|
+
integer i_ins;
|
|
69
|
+
char *o_rtn_val;
|
|
70
|
+
VALUE rtn_val;
|
|
71
|
+
|
|
72
|
+
if ((TYPE(ins) != T_BIGNUM) || (TYPE(ins) != T_FIXNUM)) {
|
|
73
|
+
ins = rb_funcall(ins, rb_intern("to_i"), 0);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
i_ins = NUM2INT(ins);
|
|
77
|
+
|
|
78
|
+
o_rtn_val= ALLOCA_N(char, (2));
|
|
79
|
+
memset(o_rtn_val, '\0', 2);
|
|
80
|
+
|
|
81
|
+
cns_(o_rtn_val, (ftnlen)1, &i_ins);
|
|
82
|
+
|
|
83
|
+
rtn_val = rb_str_new2(o_rtn_val);
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
return rtn_val;
|
|
87
|
+
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
static VALUE
|
|
91
|
+
dcl_cdblk(obj, chr)
|
|
92
|
+
VALUE obj, chr;
|
|
93
|
+
{
|
|
94
|
+
char *io_chr;
|
|
95
|
+
|
|
96
|
+
if (TYPE(chr) != T_STRING) {
|
|
97
|
+
chr = rb_funcall(chr, rb_intern("to_str"), 0);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
io_chr = ALLOCA_N(char, strlen(StringValuePtr(chr))+1);
|
|
101
|
+
strcpy(io_chr, StringValuePtr(chr));
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
cdblk_(io_chr, (ftnlen)strlen(io_chr));
|
|
105
|
+
|
|
106
|
+
chr = rb_str_new2(io_chr);
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
return chr;
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
void
|
|
113
|
+
init_misc1_misclib(mDCL)
|
|
114
|
+
VALUE mDCL;
|
|
115
|
+
{
|
|
116
|
+
rb_define_module_function(mDCL, "cns", dcl_cns, 1);
|
|
117
|
+
rb_define_module_function(mDCL, "cdblk", dcl_cdblk, 1);
|
|
118
|
+
}
|
data/misc1_randlib.c
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
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_rngu1(obj, iseed)
|
|
66
|
+
VALUE obj, iseed;
|
|
67
|
+
{
|
|
68
|
+
integer io_iseed;
|
|
69
|
+
real o_rtn_val;
|
|
70
|
+
VALUE rtn_val;
|
|
71
|
+
|
|
72
|
+
if ((TYPE(iseed) != T_BIGNUM) || (TYPE(iseed) != T_FIXNUM)) {
|
|
73
|
+
iseed = rb_funcall(iseed, rb_intern("to_i"), 0);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
io_iseed = NUM2INT(iseed);
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
o_rtn_val = rngu1_(&io_iseed);
|
|
80
|
+
|
|
81
|
+
rtn_val = rb_float_new((double)o_rtn_val);
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
return rtn_val;
|
|
85
|
+
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static VALUE
|
|
89
|
+
dcl_rngu2(obj, iseed)
|
|
90
|
+
VALUE obj, iseed;
|
|
91
|
+
{
|
|
92
|
+
integer io_iseed;
|
|
93
|
+
real o_rtn_val;
|
|
94
|
+
VALUE rtn_val;
|
|
95
|
+
|
|
96
|
+
if ((TYPE(iseed) != T_BIGNUM) || (TYPE(iseed) != T_FIXNUM)) {
|
|
97
|
+
iseed = rb_funcall(iseed, rb_intern("to_i"), 0);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
io_iseed = NUM2INT(iseed);
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
o_rtn_val = rngu2_(&io_iseed);
|
|
104
|
+
|
|
105
|
+
rtn_val = rb_float_new((double)o_rtn_val);
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
return rtn_val;
|
|
109
|
+
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
static VALUE
|
|
113
|
+
dcl_rngu3(obj, iseed)
|
|
114
|
+
VALUE obj, iseed;
|
|
115
|
+
{
|
|
116
|
+
integer io_iseed;
|
|
117
|
+
real o_rtn_val;
|
|
118
|
+
VALUE rtn_val;
|
|
119
|
+
|
|
120
|
+
if ((TYPE(iseed) != T_BIGNUM) || (TYPE(iseed) != T_FIXNUM)) {
|
|
121
|
+
iseed = rb_funcall(iseed, rb_intern("to_i"), 0);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
io_iseed = NUM2INT(iseed);
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
o_rtn_val = rngu3_(&io_iseed);
|
|
128
|
+
|
|
129
|
+
rtn_val = rb_float_new((double)o_rtn_val);
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
return rtn_val;
|
|
133
|
+
|
|
134
|
+
}
|
|
135
|
+
void
|
|
136
|
+
init_misc1_randlib(mDCL)
|
|
137
|
+
VALUE mDCL;
|
|
138
|
+
{
|
|
139
|
+
rb_define_module_function(mDCL, "rngu1", dcl_rngu1, 1);
|
|
140
|
+
rb_define_module_function(mDCL, "rngu2", dcl_rngu2, 1);
|
|
141
|
+
rb_define_module_function(mDCL, "rngu3", dcl_rngu3, 1);
|
|
142
|
+
}
|
data/misc1_timelib.c
ADDED
|
@@ -0,0 +1,380 @@
|
|
|
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_time12(obj, itime)
|
|
66
|
+
VALUE obj, itime;
|
|
67
|
+
{
|
|
68
|
+
integer i_itime;
|
|
69
|
+
integer o_itt;
|
|
70
|
+
VALUE itt;
|
|
71
|
+
|
|
72
|
+
if ((TYPE(itime) != T_BIGNUM) || (TYPE(itime) != T_FIXNUM)) {
|
|
73
|
+
itime = rb_funcall(itime, rb_intern("to_i"), 0);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
i_itime = NUM2INT(itime);
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
time12_(&i_itime, &o_itt);
|
|
80
|
+
|
|
81
|
+
itt = INT2NUM(o_itt);
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
return itt;
|
|
85
|
+
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static VALUE
|
|
89
|
+
dcl_time13(obj, itime)
|
|
90
|
+
VALUE obj, itime;
|
|
91
|
+
{
|
|
92
|
+
integer i_itime;
|
|
93
|
+
integer o_ih;
|
|
94
|
+
integer o_im;
|
|
95
|
+
integer o_is;
|
|
96
|
+
VALUE ih;
|
|
97
|
+
VALUE im;
|
|
98
|
+
VALUE is;
|
|
99
|
+
|
|
100
|
+
if ((TYPE(itime) != T_BIGNUM) || (TYPE(itime) != T_FIXNUM)) {
|
|
101
|
+
itime = rb_funcall(itime, rb_intern("to_i"), 0);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
i_itime = NUM2INT(itime);
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
time13_(&i_itime, &o_ih, &o_im, &o_is);
|
|
108
|
+
|
|
109
|
+
ih = INT2NUM(o_ih);
|
|
110
|
+
im = INT2NUM(o_im);
|
|
111
|
+
is = INT2NUM(o_is);
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
return rb_ary_new3(3, ih, im, is);
|
|
115
|
+
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
static VALUE
|
|
119
|
+
dcl_time21(obj, itt)
|
|
120
|
+
VALUE obj, itt;
|
|
121
|
+
{
|
|
122
|
+
integer o_itime;
|
|
123
|
+
integer i_itt;
|
|
124
|
+
VALUE itime;
|
|
125
|
+
|
|
126
|
+
if ((TYPE(itt) != T_BIGNUM) || (TYPE(itt) != T_FIXNUM)) {
|
|
127
|
+
itt = rb_funcall(itt, rb_intern("to_i"), 0);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
i_itt = NUM2INT(itt);
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
time21_(&o_itime, &i_itt);
|
|
134
|
+
|
|
135
|
+
itime = INT2NUM(o_itime);
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
return itime;
|
|
139
|
+
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
static VALUE
|
|
143
|
+
dcl_time23(obj, itt)
|
|
144
|
+
VALUE obj, itt;
|
|
145
|
+
{
|
|
146
|
+
integer o_ih;
|
|
147
|
+
integer o_im;
|
|
148
|
+
integer o_is;
|
|
149
|
+
integer i_itt;
|
|
150
|
+
VALUE ih;
|
|
151
|
+
VALUE im;
|
|
152
|
+
VALUE is;
|
|
153
|
+
|
|
154
|
+
if ((TYPE(itt) != T_BIGNUM) || (TYPE(itt) != T_FIXNUM)) {
|
|
155
|
+
itt = rb_funcall(itt, rb_intern("to_i"), 0);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
i_itt = NUM2INT(itt);
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
time23_(&o_ih, &o_im, &o_is, &i_itt);
|
|
162
|
+
|
|
163
|
+
ih = INT2NUM(o_ih);
|
|
164
|
+
im = INT2NUM(o_im);
|
|
165
|
+
is = INT2NUM(o_is);
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
return rb_ary_new3(3, ih, im, is);
|
|
169
|
+
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
static VALUE
|
|
173
|
+
dcl_time31(obj, ih, im, is)
|
|
174
|
+
VALUE obj, ih, im, is;
|
|
175
|
+
{
|
|
176
|
+
integer o_itime;
|
|
177
|
+
integer i_ih;
|
|
178
|
+
integer i_im;
|
|
179
|
+
integer i_is;
|
|
180
|
+
VALUE itime;
|
|
181
|
+
|
|
182
|
+
if ((TYPE(ih) != T_BIGNUM) || (TYPE(ih) != T_FIXNUM)) {
|
|
183
|
+
ih = rb_funcall(ih, rb_intern("to_i"), 0);
|
|
184
|
+
}
|
|
185
|
+
if ((TYPE(im) != T_BIGNUM) || (TYPE(im) != T_FIXNUM)) {
|
|
186
|
+
im = rb_funcall(im, rb_intern("to_i"), 0);
|
|
187
|
+
}
|
|
188
|
+
if ((TYPE(is) != T_BIGNUM) || (TYPE(is) != T_FIXNUM)) {
|
|
189
|
+
is = rb_funcall(is, rb_intern("to_i"), 0);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
i_ih = NUM2INT(ih);
|
|
193
|
+
i_im = NUM2INT(im);
|
|
194
|
+
i_is = NUM2INT(is);
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
time31_(&o_itime, &i_ih, &i_im, &i_is);
|
|
198
|
+
|
|
199
|
+
itime = INT2NUM(o_itime);
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
return itime;
|
|
203
|
+
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
static VALUE
|
|
207
|
+
dcl_time32(obj, ih, im, is)
|
|
208
|
+
VALUE obj, ih, im, is;
|
|
209
|
+
{
|
|
210
|
+
integer i_ih;
|
|
211
|
+
integer i_im;
|
|
212
|
+
integer i_is;
|
|
213
|
+
integer o_itt;
|
|
214
|
+
VALUE itt;
|
|
215
|
+
|
|
216
|
+
if ((TYPE(ih) != T_BIGNUM) || (TYPE(ih) != T_FIXNUM)) {
|
|
217
|
+
ih = rb_funcall(ih, rb_intern("to_i"), 0);
|
|
218
|
+
}
|
|
219
|
+
if ((TYPE(im) != T_BIGNUM) || (TYPE(im) != T_FIXNUM)) {
|
|
220
|
+
im = rb_funcall(im, rb_intern("to_i"), 0);
|
|
221
|
+
}
|
|
222
|
+
if ((TYPE(is) != T_BIGNUM) || (TYPE(is) != T_FIXNUM)) {
|
|
223
|
+
is = rb_funcall(is, rb_intern("to_i"), 0);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
i_ih = NUM2INT(ih);
|
|
227
|
+
i_im = NUM2INT(im);
|
|
228
|
+
i_is = NUM2INT(is);
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
time32_(&i_ih, &i_im, &i_is, &o_itt);
|
|
232
|
+
|
|
233
|
+
itt = INT2NUM(o_itt);
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
return itt;
|
|
237
|
+
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
static VALUE
|
|
241
|
+
dcl_timec1(obj, cform, itime)
|
|
242
|
+
VALUE obj, cform, itime;
|
|
243
|
+
{
|
|
244
|
+
char *io_cform;
|
|
245
|
+
integer i_itime;
|
|
246
|
+
|
|
247
|
+
if (TYPE(cform) != T_STRING) {
|
|
248
|
+
cform = rb_funcall(cform, rb_intern("to_str"), 0);
|
|
249
|
+
}
|
|
250
|
+
if ((TYPE(itime) != T_BIGNUM) || (TYPE(itime) != T_FIXNUM)) {
|
|
251
|
+
itime = rb_funcall(itime, rb_intern("to_i"), 0);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
io_cform = ALLOCA_N(char, strlen(StringValuePtr(cform))+1);
|
|
255
|
+
strcpy(io_cform, StringValuePtr(cform));
|
|
256
|
+
i_itime = NUM2INT(itime);
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
timec1_(io_cform, &i_itime, (ftnlen)strlen(io_cform));
|
|
260
|
+
|
|
261
|
+
cform = rb_str_new2(io_cform);
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
return cform;
|
|
265
|
+
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
static VALUE
|
|
269
|
+
dcl_timec2(obj, cform, itt)
|
|
270
|
+
VALUE obj, cform, itt;
|
|
271
|
+
{
|
|
272
|
+
char *io_cform;
|
|
273
|
+
integer i_itt;
|
|
274
|
+
|
|
275
|
+
if (TYPE(cform) != T_STRING) {
|
|
276
|
+
cform = rb_funcall(cform, rb_intern("to_str"), 0);
|
|
277
|
+
}
|
|
278
|
+
if ((TYPE(itt) != T_BIGNUM) || (TYPE(itt) != T_FIXNUM)) {
|
|
279
|
+
itt = rb_funcall(itt, rb_intern("to_i"), 0);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
io_cform = ALLOCA_N(char, strlen(StringValuePtr(cform))+1);
|
|
283
|
+
strcpy(io_cform, StringValuePtr(cform));
|
|
284
|
+
i_itt = NUM2INT(itt);
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
timec2_(io_cform, &i_itt, (ftnlen)strlen(io_cform));
|
|
288
|
+
|
|
289
|
+
cform = rb_str_new2(io_cform);
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
return cform;
|
|
293
|
+
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
static VALUE
|
|
297
|
+
dcl_timec3(obj, cform, ih, im, is)
|
|
298
|
+
VALUE obj, cform, ih, im, is;
|
|
299
|
+
{
|
|
300
|
+
char *io_cform;
|
|
301
|
+
integer i_ih;
|
|
302
|
+
integer i_im;
|
|
303
|
+
integer i_is;
|
|
304
|
+
|
|
305
|
+
if (TYPE(cform) != T_STRING) {
|
|
306
|
+
cform = rb_funcall(cform, rb_intern("to_str"), 0);
|
|
307
|
+
}
|
|
308
|
+
if ((TYPE(ih) != T_BIGNUM) || (TYPE(ih) != T_FIXNUM)) {
|
|
309
|
+
ih = rb_funcall(ih, rb_intern("to_i"), 0);
|
|
310
|
+
}
|
|
311
|
+
if ((TYPE(im) != T_BIGNUM) || (TYPE(im) != T_FIXNUM)) {
|
|
312
|
+
im = rb_funcall(im, rb_intern("to_i"), 0);
|
|
313
|
+
}
|
|
314
|
+
if ((TYPE(is) != T_BIGNUM) || (TYPE(is) != T_FIXNUM)) {
|
|
315
|
+
is = rb_funcall(is, rb_intern("to_i"), 0);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
io_cform = ALLOCA_N(char, strlen(StringValuePtr(cform))+1);
|
|
319
|
+
strcpy(io_cform, StringValuePtr(cform));
|
|
320
|
+
i_ih = NUM2INT(ih);
|
|
321
|
+
i_im = NUM2INT(im);
|
|
322
|
+
i_is = NUM2INT(is);
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
timec3_(io_cform, &i_ih, &i_im, &i_is, (ftnlen)strlen(io_cform));
|
|
326
|
+
|
|
327
|
+
cform = rb_str_new2(io_cform);
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
return cform;
|
|
331
|
+
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
static VALUE
|
|
335
|
+
dcl_timeq1(obj)
|
|
336
|
+
VALUE obj;
|
|
337
|
+
{
|
|
338
|
+
integer o_itime;
|
|
339
|
+
VALUE itime;
|
|
340
|
+
|
|
341
|
+
timeq1_(&o_itime);
|
|
342
|
+
|
|
343
|
+
itime = INT2NUM(o_itime);
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
return itime;
|
|
347
|
+
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
static VALUE
|
|
351
|
+
dcl_timeq2(obj)
|
|
352
|
+
VALUE obj;
|
|
353
|
+
{
|
|
354
|
+
integer o_itt;
|
|
355
|
+
VALUE itt;
|
|
356
|
+
|
|
357
|
+
timeq2_(&o_itt);
|
|
358
|
+
|
|
359
|
+
itt = INT2NUM(o_itt);
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
return itt;
|
|
363
|
+
|
|
364
|
+
}
|
|
365
|
+
void
|
|
366
|
+
init_misc1_timelib(mDCL)
|
|
367
|
+
VALUE mDCL;
|
|
368
|
+
{
|
|
369
|
+
rb_define_module_function(mDCL, "time12", dcl_time12, 1);
|
|
370
|
+
rb_define_module_function(mDCL, "time13", dcl_time13, 1);
|
|
371
|
+
rb_define_module_function(mDCL, "time21", dcl_time21, 1);
|
|
372
|
+
rb_define_module_function(mDCL, "time23", dcl_time23, 1);
|
|
373
|
+
rb_define_module_function(mDCL, "time31", dcl_time31, 3);
|
|
374
|
+
rb_define_module_function(mDCL, "time32", dcl_time32, 3);
|
|
375
|
+
rb_define_module_function(mDCL, "timec1", dcl_timec1, 2);
|
|
376
|
+
rb_define_module_function(mDCL, "timec2", dcl_timec2, 2);
|
|
377
|
+
rb_define_module_function(mDCL, "timec3", dcl_timec3, 4);
|
|
378
|
+
rb_define_module_function(mDCL, "timeq1", dcl_timeq1, 0);
|
|
379
|
+
rb_define_module_function(mDCL, "timeq2", dcl_timeq2, 0);
|
|
380
|
+
}
|