ruby-dcl 1.6.3.1 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/grph2_uipack.c ADDED
@@ -0,0 +1,1456 @@
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
+ #if DCLVER >= 544
65
+
66
+ static VALUE
67
+ dcl_uipdat(obj, z, mx, nx, ny)
68
+ VALUE obj, z, mx, nx, ny;
69
+ {
70
+ real *i_z;
71
+ integer i_mx;
72
+ integer i_nx;
73
+ integer i_ny;
74
+
75
+ if (TYPE(z) == T_FLOAT) {
76
+ z = rb_Array(z);
77
+ }
78
+ /* if ((TYPE(z) != T_ARRAY) &&
79
+ (rb_obj_is_kind_of(z, cNArray) != Qtrue)) {
80
+ rb_raise(rb_eTypeError, "invalid type");
81
+ } -- no check since obj2c*ary will do that */
82
+ if ((TYPE(mx) != T_BIGNUM) || (TYPE(mx) != T_FIXNUM)) {
83
+ mx = rb_funcall(mx, rb_intern("to_i"), 0);
84
+ }
85
+ if ((TYPE(nx) != T_BIGNUM) || (TYPE(nx) != T_FIXNUM)) {
86
+ nx = rb_funcall(nx, rb_intern("to_i"), 0);
87
+ }
88
+ if ((TYPE(ny) != T_BIGNUM) || (TYPE(ny) != T_FIXNUM)) {
89
+ ny = rb_funcall(ny, rb_intern("to_i"), 0);
90
+ }
91
+
92
+ i_mx = NUM2INT(mx);
93
+ i_nx = NUM2INT(nx);
94
+ i_ny = NUM2INT(ny);
95
+ i_z = dcl_obj2crealary(z);
96
+
97
+
98
+ uipdat_(i_z, &i_mx, &i_nx, &i_ny);
99
+
100
+ dcl_freecrealary(i_z);
101
+
102
+ return Qnil;
103
+
104
+ }
105
+
106
+ static VALUE
107
+ dcl_uipda2(obj, u, v, mx, nx, ny)
108
+ VALUE obj, u, v, mx, nx, ny;
109
+ {
110
+ real *i_u;
111
+ real *i_v;
112
+ integer i_mx;
113
+ integer i_nx;
114
+ integer i_ny;
115
+
116
+ if (TYPE(u) == T_FLOAT) {
117
+ u = rb_Array(u);
118
+ }
119
+ /* if ((TYPE(u) != T_ARRAY) &&
120
+ (rb_obj_is_kind_of(u, cNArray) != Qtrue)) {
121
+ rb_raise(rb_eTypeError, "invalid type");
122
+ } -- no check since obj2c*ary will do that */
123
+ if (TYPE(v) == T_FLOAT) {
124
+ v = rb_Array(v);
125
+ }
126
+ /* if ((TYPE(v) != T_ARRAY) &&
127
+ (rb_obj_is_kind_of(v, cNArray) != Qtrue)) {
128
+ rb_raise(rb_eTypeError, "invalid type");
129
+ } -- no check since obj2c*ary will do that */
130
+ if ((TYPE(mx) != T_BIGNUM) || (TYPE(mx) != T_FIXNUM)) {
131
+ mx = rb_funcall(mx, rb_intern("to_i"), 0);
132
+ }
133
+ if ((TYPE(nx) != T_BIGNUM) || (TYPE(nx) != T_FIXNUM)) {
134
+ nx = rb_funcall(nx, rb_intern("to_i"), 0);
135
+ }
136
+ if ((TYPE(ny) != T_BIGNUM) || (TYPE(ny) != T_FIXNUM)) {
137
+ ny = rb_funcall(ny, rb_intern("to_i"), 0);
138
+ }
139
+
140
+ i_mx = NUM2INT(mx);
141
+ i_nx = NUM2INT(nx);
142
+ i_ny = NUM2INT(ny);
143
+ i_u = dcl_obj2crealary(u);
144
+ i_v = dcl_obj2crealary(v);
145
+
146
+
147
+ uipda2_(i_u, i_v, &i_mx, &i_nx, &i_ny);
148
+
149
+ dcl_freecrealary(i_u);
150
+ dcl_freecrealary(i_v);
151
+
152
+ return Qnil;
153
+
154
+ }
155
+
156
+ static VALUE
157
+ dcl_uipda3(obj, u, v, w, mx, nx, ny)
158
+ VALUE obj, u, v, w, mx, nx, ny;
159
+ {
160
+ real *i_u;
161
+ real *i_v;
162
+ real *i_w;
163
+ integer i_mx;
164
+ integer i_nx;
165
+ integer i_ny;
166
+
167
+ if (TYPE(u) == T_FLOAT) {
168
+ u = rb_Array(u);
169
+ }
170
+ /* if ((TYPE(u) != T_ARRAY) &&
171
+ (rb_obj_is_kind_of(u, cNArray) != Qtrue)) {
172
+ rb_raise(rb_eTypeError, "invalid type");
173
+ } -- no check since obj2c*ary will do that */
174
+ if (TYPE(v) == T_FLOAT) {
175
+ v = rb_Array(v);
176
+ }
177
+ /* if ((TYPE(v) != T_ARRAY) &&
178
+ (rb_obj_is_kind_of(v, cNArray) != Qtrue)) {
179
+ rb_raise(rb_eTypeError, "invalid type");
180
+ } -- no check since obj2c*ary will do that */
181
+ if (TYPE(w) == T_FLOAT) {
182
+ w = rb_Array(w);
183
+ }
184
+ /* if ((TYPE(w) != T_ARRAY) &&
185
+ (rb_obj_is_kind_of(w, cNArray) != Qtrue)) {
186
+ rb_raise(rb_eTypeError, "invalid type");
187
+ } -- no check since obj2c*ary will do that */
188
+ if ((TYPE(mx) != T_BIGNUM) || (TYPE(mx) != T_FIXNUM)) {
189
+ mx = rb_funcall(mx, rb_intern("to_i"), 0);
190
+ }
191
+ if ((TYPE(nx) != T_BIGNUM) || (TYPE(nx) != T_FIXNUM)) {
192
+ nx = rb_funcall(nx, rb_intern("to_i"), 0);
193
+ }
194
+ if ((TYPE(ny) != T_BIGNUM) || (TYPE(ny) != T_FIXNUM)) {
195
+ ny = rb_funcall(ny, rb_intern("to_i"), 0);
196
+ }
197
+
198
+ i_mx = NUM2INT(mx);
199
+ i_nx = NUM2INT(nx);
200
+ i_ny = NUM2INT(ny);
201
+ i_u = dcl_obj2crealary(u);
202
+ i_v = dcl_obj2crealary(v);
203
+ i_w = dcl_obj2crealary(w);
204
+
205
+
206
+ uipda3_(i_u, i_v, i_w, &i_mx, &i_nx, &i_ny);
207
+
208
+ dcl_freecrealary(i_u);
209
+ dcl_freecrealary(i_v);
210
+ dcl_freecrealary(i_w);
211
+
212
+ return Qnil;
213
+
214
+ }
215
+
216
+ static VALUE
217
+ dcl_uiscrg(obj, zmin, zmax)
218
+ VALUE obj, zmin, zmax;
219
+ {
220
+ real i_zmin;
221
+ real i_zmax;
222
+
223
+ if (TYPE(zmin) != T_FLOAT) {
224
+ zmin = rb_funcall(zmin, rb_intern("to_f"), 0);
225
+ }
226
+ if (TYPE(zmax) != T_FLOAT) {
227
+ zmax = rb_funcall(zmax, rb_intern("to_f"), 0);
228
+ }
229
+
230
+ i_zmin = (real)NUM2DBL(zmin);
231
+ i_zmax = (real)NUM2DBL(zmax);
232
+
233
+
234
+ uiscrg_(&i_zmin, &i_zmax);
235
+
236
+ return Qnil;
237
+
238
+ }
239
+
240
+ static VALUE
241
+ dcl_uismrg(obj, zmin, zmax)
242
+ VALUE obj, zmin, zmax;
243
+ {
244
+ real i_zmin;
245
+ real i_zmax;
246
+
247
+ if (TYPE(zmin) != T_FLOAT) {
248
+ zmin = rb_funcall(zmin, rb_intern("to_f"), 0);
249
+ }
250
+ if (TYPE(zmax) != T_FLOAT) {
251
+ zmax = rb_funcall(zmax, rb_intern("to_f"), 0);
252
+ }
253
+
254
+ i_zmin = (real)NUM2DBL(zmin);
255
+ i_zmax = (real)NUM2DBL(zmax);
256
+
257
+
258
+ uismrg_(&i_zmin, &i_zmax);
259
+
260
+ return Qnil;
261
+
262
+ }
263
+
264
+ static VALUE
265
+ dcl_uiscsq(obj, clrlvl, icolor, n)
266
+ VALUE obj, clrlvl, icolor, n;
267
+ {
268
+ real *i_clrlvl;
269
+ integer *i_icolor;
270
+ integer i_n;
271
+
272
+ if (TYPE(clrlvl) == T_FLOAT) {
273
+ clrlvl = rb_Array(clrlvl);
274
+ }
275
+ /* if ((TYPE(clrlvl) != T_ARRAY) &&
276
+ (rb_obj_is_kind_of(clrlvl, cNArray) != Qtrue)) {
277
+ rb_raise(rb_eTypeError, "invalid type");
278
+ } -- no check since obj2c*ary will do that */
279
+ if ((TYPE(icolor) == T_BIGNUM) || (TYPE(icolor) == T_FIXNUM)) {
280
+ icolor = rb_Array(icolor);
281
+ }
282
+ /* if ((TYPE(icolor) != T_ARRAY) &&
283
+ (rb_obj_is_kind_of(icolor, cNArray) != Qtrue)) {
284
+ rb_raise(rb_eTypeError, "invalid type");
285
+ } -- no check since obj2c*ary will do that */
286
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
287
+ n = rb_funcall(n, rb_intern("to_i"), 0);
288
+ }
289
+
290
+ i_n = NUM2INT(n);
291
+ i_clrlvl = dcl_obj2crealary(clrlvl);
292
+ i_icolor = dcl_obj2cintegerary(icolor);
293
+
294
+
295
+ uiscsq_(i_clrlvl, i_icolor, &i_n);
296
+
297
+ dcl_freecrealary(i_clrlvl);
298
+ dcl_freecintegerary(i_icolor);
299
+
300
+ return Qnil;
301
+
302
+ }
303
+
304
+ static VALUE
305
+ dcl_uiscfl(obj, cdsn)
306
+ VALUE obj, cdsn;
307
+ {
308
+ char *i_cdsn;
309
+
310
+ if (TYPE(cdsn) != T_STRING) {
311
+ cdsn = rb_funcall(cdsn, rb_intern("to_str"), 0);
312
+ }
313
+
314
+ i_cdsn = StringValuePtr(cdsn);
315
+
316
+
317
+ uiscfl_(i_cdsn, (ftnlen)strlen(i_cdsn));
318
+
319
+ return Qnil;
320
+
321
+ }
322
+
323
+ static VALUE
324
+ dcl_uismsq(obj, shdlvl, shade, n)
325
+ VALUE obj, shdlvl, shade, n;
326
+ {
327
+ real *i_shdlvl;
328
+ integer *i_shade;
329
+ integer i_n;
330
+
331
+ if (TYPE(shdlvl) == T_FLOAT) {
332
+ shdlvl = rb_Array(shdlvl);
333
+ }
334
+ /* if ((TYPE(shdlvl) != T_ARRAY) &&
335
+ (rb_obj_is_kind_of(shdlvl, cNArray) != Qtrue)) {
336
+ rb_raise(rb_eTypeError, "invalid type");
337
+ } -- no check since obj2c*ary will do that */
338
+ if ((TYPE(shade) == T_BIGNUM) || (TYPE(shade) == T_FIXNUM)) {
339
+ shade = rb_Array(shade);
340
+ }
341
+ /* if ((TYPE(shade) != T_ARRAY) &&
342
+ (rb_obj_is_kind_of(shade, cNArray) != Qtrue)) {
343
+ rb_raise(rb_eTypeError, "invalid type");
344
+ } -- no check since obj2c*ary will do that */
345
+ if ((TYPE(n) != T_BIGNUM) || (TYPE(n) != T_FIXNUM)) {
346
+ n = rb_funcall(n, rb_intern("to_i"), 0);
347
+ }
348
+
349
+ i_n = NUM2INT(n);
350
+ i_shdlvl = dcl_obj2crealary(shdlvl);
351
+ i_shade = dcl_obj2cintegerary(shade);
352
+
353
+
354
+ uismsq_(i_shdlvl, i_shade, &i_n);
355
+
356
+ dcl_freecrealary(i_shdlvl);
357
+ dcl_freecintegerary(i_shade);
358
+
359
+ return Qnil;
360
+
361
+ }
362
+
363
+ static VALUE
364
+ dcl_uismfl(obj, cdsn)
365
+ VALUE obj, cdsn;
366
+ {
367
+ char *i_cdsn;
368
+
369
+ if (TYPE(cdsn) != T_STRING) {
370
+ cdsn = rb_funcall(cdsn, rb_intern("to_str"), 0);
371
+ }
372
+
373
+ i_cdsn = StringValuePtr(cdsn);
374
+
375
+
376
+ uismfl_(i_cdsn, (ftnlen)strlen(i_cdsn));
377
+
378
+ return Qnil;
379
+
380
+ }
381
+
382
+ static VALUE
383
+ dcl_uixbar(obj, xmin, xmax, ymin, ymax, zmin, zmax, cpos)
384
+ VALUE obj, xmin, xmax, ymin, ymax, zmin, zmax, cpos;
385
+ {
386
+ real i_xmin;
387
+ real i_xmax;
388
+ real i_ymin;
389
+ real i_ymax;
390
+ real i_zmin;
391
+ real i_zmax;
392
+ char *i_cpos;
393
+
394
+ if (TYPE(xmin) != T_FLOAT) {
395
+ xmin = rb_funcall(xmin, rb_intern("to_f"), 0);
396
+ }
397
+ if (TYPE(xmax) != T_FLOAT) {
398
+ xmax = rb_funcall(xmax, rb_intern("to_f"), 0);
399
+ }
400
+ if (TYPE(ymin) != T_FLOAT) {
401
+ ymin = rb_funcall(ymin, rb_intern("to_f"), 0);
402
+ }
403
+ if (TYPE(ymax) != T_FLOAT) {
404
+ ymax = rb_funcall(ymax, rb_intern("to_f"), 0);
405
+ }
406
+ if (TYPE(zmin) != T_FLOAT) {
407
+ zmin = rb_funcall(zmin, rb_intern("to_f"), 0);
408
+ }
409
+ if (TYPE(zmax) != T_FLOAT) {
410
+ zmax = rb_funcall(zmax, rb_intern("to_f"), 0);
411
+ }
412
+ if (TYPE(cpos) != T_STRING) {
413
+ cpos = rb_funcall(cpos, rb_intern("to_str"), 0);
414
+ }
415
+
416
+ i_xmin = (real)NUM2DBL(xmin);
417
+ i_xmax = (real)NUM2DBL(xmax);
418
+ i_ymin = (real)NUM2DBL(ymin);
419
+ i_ymax = (real)NUM2DBL(ymax);
420
+ i_zmin = (real)NUM2DBL(zmin);
421
+ i_zmax = (real)NUM2DBL(zmax);
422
+ i_cpos = StringValuePtr(cpos);
423
+
424
+
425
+ uixbar_(&i_xmin, &i_xmax, &i_ymin, &i_ymax, &i_zmin, &i_zmax, i_cpos, (ftnlen)strlen(i_cpos));
426
+
427
+ return Qnil;
428
+
429
+ }
430
+
431
+ static VALUE
432
+ dcl_uiybar(obj, xmin, xmax, ymin, ymax, zmin, zmax, cpos)
433
+ VALUE obj, xmin, xmax, ymin, ymax, zmin, zmax, cpos;
434
+ {
435
+ real i_xmin;
436
+ real i_xmax;
437
+ real i_ymin;
438
+ real i_ymax;
439
+ real i_zmin;
440
+ real i_zmax;
441
+ char *i_cpos;
442
+
443
+ if (TYPE(xmin) != T_FLOAT) {
444
+ xmin = rb_funcall(xmin, rb_intern("to_f"), 0);
445
+ }
446
+ if (TYPE(xmax) != T_FLOAT) {
447
+ xmax = rb_funcall(xmax, rb_intern("to_f"), 0);
448
+ }
449
+ if (TYPE(ymin) != T_FLOAT) {
450
+ ymin = rb_funcall(ymin, rb_intern("to_f"), 0);
451
+ }
452
+ if (TYPE(ymax) != T_FLOAT) {
453
+ ymax = rb_funcall(ymax, rb_intern("to_f"), 0);
454
+ }
455
+ if (TYPE(zmin) != T_FLOAT) {
456
+ zmin = rb_funcall(zmin, rb_intern("to_f"), 0);
457
+ }
458
+ if (TYPE(zmax) != T_FLOAT) {
459
+ zmax = rb_funcall(zmax, rb_intern("to_f"), 0);
460
+ }
461
+ if (TYPE(cpos) != T_STRING) {
462
+ cpos = rb_funcall(cpos, rb_intern("to_str"), 0);
463
+ }
464
+
465
+ i_xmin = (real)NUM2DBL(xmin);
466
+ i_xmax = (real)NUM2DBL(xmax);
467
+ i_ymin = (real)NUM2DBL(ymin);
468
+ i_ymax = (real)NUM2DBL(ymax);
469
+ i_zmin = (real)NUM2DBL(zmin);
470
+ i_zmax = (real)NUM2DBL(zmax);
471
+ i_cpos = StringValuePtr(cpos);
472
+
473
+
474
+ uiybar_(&i_xmin, &i_xmax, &i_ymin, &i_ymax, &i_zmin, &i_zmax, i_cpos, (ftnlen)strlen(i_cpos));
475
+
476
+ return Qnil;
477
+
478
+ }
479
+
480
+ static VALUE
481
+ dcl_uiscr2(obj, umin, umax, vmin, vmax)
482
+ VALUE obj, umin, umax, vmin, vmax;
483
+ {
484
+ real i_umin;
485
+ real i_umax;
486
+ real i_vmin;
487
+ real i_vmax;
488
+
489
+ if (TYPE(umin) != T_FLOAT) {
490
+ umin = rb_funcall(umin, rb_intern("to_f"), 0);
491
+ }
492
+ if (TYPE(umax) != T_FLOAT) {
493
+ umax = rb_funcall(umax, rb_intern("to_f"), 0);
494
+ }
495
+ if (TYPE(vmin) != T_FLOAT) {
496
+ vmin = rb_funcall(vmin, rb_intern("to_f"), 0);
497
+ }
498
+ if (TYPE(vmax) != T_FLOAT) {
499
+ vmax = rb_funcall(vmax, rb_intern("to_f"), 0);
500
+ }
501
+
502
+ i_umin = (real)NUM2DBL(umin);
503
+ i_umax = (real)NUM2DBL(umax);
504
+ i_vmin = (real)NUM2DBL(vmin);
505
+ i_vmax = (real)NUM2DBL(vmax);
506
+
507
+
508
+ uiscr2_(&i_umin, &i_umax, &i_vmin, &i_vmax);
509
+
510
+ return Qnil;
511
+
512
+ }
513
+
514
+ static VALUE
515
+ dcl_uiqcr2(obj)
516
+ VALUE obj;
517
+ {
518
+ real o_umin;
519
+ real o_umax;
520
+ real o_vmin;
521
+ real o_vmax;
522
+ VALUE umin;
523
+ VALUE umax;
524
+ VALUE vmin;
525
+ VALUE vmax;
526
+
527
+ uiqcr2_(&o_umin, &o_umax, &o_vmin, &o_vmax);
528
+
529
+ umin = rb_float_new((double)o_umin);
530
+ umax = rb_float_new((double)o_umax);
531
+ vmin = rb_float_new((double)o_vmin);
532
+ vmax = rb_float_new((double)o_vmax);
533
+
534
+
535
+ return rb_ary_new3(4, umin, umax, vmin, vmax);
536
+
537
+ }
538
+
539
+ static VALUE
540
+ dcl_uiscmp(obj, irgb1, irgb2, irgb3, irgb4)
541
+ VALUE obj, irgb1, irgb2, irgb3, irgb4;
542
+ {
543
+ integer i_irgb1;
544
+ integer i_irgb2;
545
+ integer i_irgb3;
546
+ integer i_irgb4;
547
+
548
+ if ((TYPE(irgb1) != T_BIGNUM) || (TYPE(irgb1) != T_FIXNUM)) {
549
+ irgb1 = rb_funcall(irgb1, rb_intern("to_i"), 0);
550
+ }
551
+ if ((TYPE(irgb2) != T_BIGNUM) || (TYPE(irgb2) != T_FIXNUM)) {
552
+ irgb2 = rb_funcall(irgb2, rb_intern("to_i"), 0);
553
+ }
554
+ if ((TYPE(irgb3) != T_BIGNUM) || (TYPE(irgb3) != T_FIXNUM)) {
555
+ irgb3 = rb_funcall(irgb3, rb_intern("to_i"), 0);
556
+ }
557
+ if ((TYPE(irgb4) != T_BIGNUM) || (TYPE(irgb4) != T_FIXNUM)) {
558
+ irgb4 = rb_funcall(irgb4, rb_intern("to_i"), 0);
559
+ }
560
+
561
+ i_irgb1 = NUM2INT(irgb1);
562
+ i_irgb2 = NUM2INT(irgb2);
563
+ i_irgb3 = NUM2INT(irgb3);
564
+ i_irgb4 = NUM2INT(irgb4);
565
+
566
+
567
+ uiscmp_(&i_irgb1, &i_irgb2, &i_irgb3, &i_irgb4);
568
+
569
+ return Qnil;
570
+
571
+ }
572
+
573
+ static VALUE
574
+ dcl_uipcmp(obj, xmin, xmax, ymin, ymax, cpos)
575
+ VALUE obj, xmin, xmax, ymin, ymax, cpos;
576
+ {
577
+ real i_xmin;
578
+ real i_xmax;
579
+ real i_ymin;
580
+ real i_ymax;
581
+ char *i_cpos;
582
+
583
+ if (TYPE(xmin) != T_FLOAT) {
584
+ xmin = rb_funcall(xmin, rb_intern("to_f"), 0);
585
+ }
586
+ if (TYPE(xmax) != T_FLOAT) {
587
+ xmax = rb_funcall(xmax, rb_intern("to_f"), 0);
588
+ }
589
+ if (TYPE(ymin) != T_FLOAT) {
590
+ ymin = rb_funcall(ymin, rb_intern("to_f"), 0);
591
+ }
592
+ if (TYPE(ymax) != T_FLOAT) {
593
+ ymax = rb_funcall(ymax, rb_intern("to_f"), 0);
594
+ }
595
+ if (TYPE(cpos) != T_STRING) {
596
+ cpos = rb_funcall(cpos, rb_intern("to_str"), 0);
597
+ }
598
+
599
+ i_xmin = (real)NUM2DBL(xmin);
600
+ i_xmax = (real)NUM2DBL(xmax);
601
+ i_ymin = (real)NUM2DBL(ymin);
602
+ i_ymax = (real)NUM2DBL(ymax);
603
+ i_cpos = StringValuePtr(cpos);
604
+
605
+
606
+ uipcmp_(&i_xmin, &i_xmax, &i_ymin, &i_ymax, i_cpos, (ftnlen)strlen(i_cpos));
607
+
608
+ return Qnil;
609
+
610
+ }
611
+
612
+ static VALUE
613
+ dcl_uifpac(obj, ir, ig, ib)
614
+ VALUE obj, ir, ig, ib;
615
+ {
616
+ integer i_ir;
617
+ integer i_ig;
618
+ integer i_ib;
619
+ integer o_irgb;
620
+ VALUE irgb;
621
+
622
+ if ((TYPE(ir) != T_BIGNUM) || (TYPE(ir) != T_FIXNUM)) {
623
+ ir = rb_funcall(ir, rb_intern("to_i"), 0);
624
+ }
625
+ if ((TYPE(ig) != T_BIGNUM) || (TYPE(ig) != T_FIXNUM)) {
626
+ ig = rb_funcall(ig, rb_intern("to_i"), 0);
627
+ }
628
+ if ((TYPE(ib) != T_BIGNUM) || (TYPE(ib) != T_FIXNUM)) {
629
+ ib = rb_funcall(ib, rb_intern("to_i"), 0);
630
+ }
631
+
632
+ i_ir = NUM2INT(ir);
633
+ i_ig = NUM2INT(ig);
634
+ i_ib = NUM2INT(ib);
635
+
636
+
637
+ uifpac_(&i_ir, &i_ig, &i_ib, &o_irgb);
638
+
639
+ irgb = INT2NUM(o_irgb);
640
+
641
+
642
+ return irgb;
643
+
644
+ }
645
+
646
+ static VALUE
647
+ dcl_uiipac(obj, irgb)
648
+ VALUE obj, irgb;
649
+ {
650
+ integer i_irgb;
651
+ integer o_ir;
652
+ integer o_ig;
653
+ integer o_ib;
654
+ VALUE ir;
655
+ VALUE ig;
656
+ VALUE ib;
657
+
658
+ if ((TYPE(irgb) != T_BIGNUM) || (TYPE(irgb) != T_FIXNUM)) {
659
+ irgb = rb_funcall(irgb, rb_intern("to_i"), 0);
660
+ }
661
+
662
+ i_irgb = NUM2INT(irgb);
663
+
664
+
665
+ uiipac_(&i_irgb, &o_ir, &o_ig, &o_ib);
666
+
667
+ ir = INT2NUM(o_ir);
668
+ ig = INT2NUM(o_ig);
669
+ ib = INT2NUM(o_ib);
670
+
671
+
672
+ return rb_ary_new3(3, ir, ig, ib);
673
+
674
+ }
675
+
676
+ static VALUE
677
+ dcl_uiiget(obj, cp)
678
+ VALUE obj, cp;
679
+ {
680
+ char *i_cp;
681
+ integer o_ipara;
682
+ VALUE ipara;
683
+
684
+ if (TYPE(cp) != T_STRING) {
685
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
686
+ }
687
+
688
+ i_cp = StringValuePtr(cp);
689
+
690
+
691
+ uiiget_(i_cp, &o_ipara, (ftnlen)strlen(i_cp));
692
+
693
+ ipara = INT2NUM(o_ipara);
694
+
695
+
696
+ return ipara;
697
+
698
+ }
699
+
700
+ static VALUE
701
+ dcl_uiiset(obj, cp, ipara)
702
+ VALUE obj, cp, ipara;
703
+ {
704
+ char *i_cp;
705
+ integer i_ipara;
706
+
707
+ if (TYPE(cp) != T_STRING) {
708
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
709
+ }
710
+ if ((TYPE(ipara) != T_BIGNUM) || (TYPE(ipara) != T_FIXNUM)) {
711
+ ipara = rb_funcall(ipara, rb_intern("to_i"), 0);
712
+ }
713
+
714
+ i_cp = StringValuePtr(cp);
715
+ i_ipara = NUM2INT(ipara);
716
+
717
+
718
+ uiiset_(i_cp, &i_ipara, (ftnlen)strlen(i_cp));
719
+
720
+ return Qnil;
721
+
722
+ }
723
+
724
+ static VALUE
725
+ dcl_uiistx(obj, cp, ipara)
726
+ VALUE obj, cp, ipara;
727
+ {
728
+ char *i_cp;
729
+ integer i_ipara;
730
+
731
+ if (TYPE(cp) != T_STRING) {
732
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
733
+ }
734
+ if ((TYPE(ipara) != T_BIGNUM) || (TYPE(ipara) != T_FIXNUM)) {
735
+ ipara = rb_funcall(ipara, rb_intern("to_i"), 0);
736
+ }
737
+
738
+ i_cp = StringValuePtr(cp);
739
+ i_ipara = NUM2INT(ipara);
740
+
741
+
742
+ uiistx_(i_cp, &i_ipara, (ftnlen)strlen(i_cp));
743
+
744
+ return Qnil;
745
+
746
+ }
747
+
748
+ static VALUE
749
+ dcl_uiiqnp(obj)
750
+ VALUE obj;
751
+ {
752
+ integer o_ncp;
753
+ VALUE ncp;
754
+
755
+ uiiqnp_(&o_ncp);
756
+
757
+ ncp = INT2NUM(o_ncp);
758
+
759
+
760
+ return ncp;
761
+
762
+ }
763
+
764
+ static VALUE
765
+ dcl_uiiqid(obj, cp)
766
+ VALUE obj, cp;
767
+ {
768
+ char *i_cp;
769
+ integer o_idx;
770
+ VALUE idx;
771
+
772
+ if (TYPE(cp) != T_STRING) {
773
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
774
+ }
775
+
776
+ i_cp = StringValuePtr(cp);
777
+
778
+
779
+ uiiqid_(i_cp, &o_idx, (ftnlen)strlen(i_cp));
780
+
781
+ idx = INT2NUM(o_idx);
782
+
783
+
784
+ return idx;
785
+
786
+ }
787
+
788
+ static VALUE
789
+ dcl_uiiqcp(obj, idx)
790
+ VALUE obj, idx;
791
+ {
792
+ integer i_idx;
793
+ char *o_cp;
794
+ VALUE cp;
795
+
796
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
797
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
798
+ }
799
+
800
+ i_idx = NUM2INT(idx);
801
+
802
+ o_cp= ALLOCA_N(char, (DFLT_SIZE+1));
803
+ memset(o_cp, '\0', DFLT_SIZE+1);
804
+
805
+ uiiqcp_(&i_idx, o_cp, (ftnlen)DFLT_SIZE);
806
+
807
+ cp = rb_str_new2(o_cp);
808
+
809
+
810
+ return cp;
811
+
812
+ }
813
+
814
+ static VALUE
815
+ dcl_uiiqcl(obj, idx)
816
+ VALUE obj, idx;
817
+ {
818
+ integer i_idx;
819
+ char *o_cp;
820
+ VALUE cp;
821
+
822
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
823
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
824
+ }
825
+
826
+ i_idx = NUM2INT(idx);
827
+
828
+ o_cp= ALLOCA_N(char, (DFLT_SIZE+1));
829
+ memset(o_cp, '\0', DFLT_SIZE+1);
830
+
831
+ uiiqcl_(&i_idx, o_cp, (ftnlen)DFLT_SIZE);
832
+
833
+ cp = rb_str_new2(o_cp);
834
+
835
+
836
+ return cp;
837
+
838
+ }
839
+
840
+ static VALUE
841
+ dcl_uiiqvl(obj, idx)
842
+ VALUE obj, idx;
843
+ {
844
+ integer i_idx;
845
+ integer o_ipara;
846
+ VALUE ipara;
847
+
848
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
849
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
850
+ }
851
+
852
+ i_idx = NUM2INT(idx);
853
+
854
+
855
+ uiiqvl_(&i_idx, &o_ipara);
856
+
857
+ ipara = INT2NUM(o_ipara);
858
+
859
+
860
+ return ipara;
861
+
862
+ }
863
+
864
+ static VALUE
865
+ dcl_uiisvl(obj, idx, ipara)
866
+ VALUE obj, idx, ipara;
867
+ {
868
+ integer i_idx;
869
+ integer i_ipara;
870
+
871
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
872
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
873
+ }
874
+ if ((TYPE(ipara) != T_BIGNUM) || (TYPE(ipara) != T_FIXNUM)) {
875
+ ipara = rb_funcall(ipara, rb_intern("to_i"), 0);
876
+ }
877
+
878
+ i_idx = NUM2INT(idx);
879
+ i_ipara = NUM2INT(ipara);
880
+
881
+
882
+ uiisvl_(&i_idx, &i_ipara);
883
+
884
+ return Qnil;
885
+
886
+ }
887
+
888
+ static VALUE
889
+ dcl_uiiqin(obj, cp)
890
+ VALUE obj, cp;
891
+ {
892
+ char *i_cp;
893
+ integer o_in;
894
+ VALUE in;
895
+
896
+ if (TYPE(cp) != T_STRING) {
897
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
898
+ }
899
+
900
+ i_cp = StringValuePtr(cp);
901
+
902
+
903
+ uiiqin_(i_cp, &o_in, (ftnlen)strlen(i_cp));
904
+
905
+ in = INT2NUM(o_in);
906
+
907
+
908
+ return in;
909
+
910
+ }
911
+
912
+ static VALUE
913
+ dcl_uilget(obj, cp)
914
+ VALUE obj, cp;
915
+ {
916
+ char *i_cp;
917
+ logical o_lpara;
918
+ VALUE lpara;
919
+
920
+ if (TYPE(cp) != T_STRING) {
921
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
922
+ }
923
+
924
+ i_cp = StringValuePtr(cp);
925
+
926
+
927
+ uilget_(i_cp, &o_lpara, (ftnlen)strlen(i_cp));
928
+
929
+ lpara = (o_lpara == FALSE_) ? Qfalse : Qtrue;
930
+
931
+
932
+ return lpara;
933
+
934
+ }
935
+
936
+ static VALUE
937
+ dcl_uilset(obj, cp, lpara)
938
+ VALUE obj, cp, lpara;
939
+ {
940
+ char *i_cp;
941
+ logical i_lpara;
942
+
943
+ if (TYPE(cp) != T_STRING) {
944
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
945
+ }
946
+
947
+ i_cp = StringValuePtr(cp);
948
+ i_lpara = ((lpara == Qnil)||(lpara == Qfalse)) ? FALSE_ : TRUE_;
949
+
950
+
951
+ uilset_(i_cp, &i_lpara, (ftnlen)strlen(i_cp));
952
+
953
+ return Qnil;
954
+
955
+ }
956
+
957
+ static VALUE
958
+ dcl_uilstx(obj, cp, lpara)
959
+ VALUE obj, cp, lpara;
960
+ {
961
+ char *i_cp;
962
+ logical i_lpara;
963
+
964
+ if (TYPE(cp) != T_STRING) {
965
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
966
+ }
967
+
968
+ i_cp = StringValuePtr(cp);
969
+ i_lpara = ((lpara == Qnil)||(lpara == Qfalse)) ? FALSE_ : TRUE_;
970
+
971
+
972
+ uilstx_(i_cp, &i_lpara, (ftnlen)strlen(i_cp));
973
+
974
+ return Qnil;
975
+
976
+ }
977
+
978
+ static VALUE
979
+ dcl_uilqnp(obj)
980
+ VALUE obj;
981
+ {
982
+ integer o_ncp;
983
+ VALUE ncp;
984
+
985
+ uilqnp_(&o_ncp);
986
+
987
+ ncp = INT2NUM(o_ncp);
988
+
989
+
990
+ return ncp;
991
+
992
+ }
993
+
994
+ static VALUE
995
+ dcl_uilqid(obj, cp)
996
+ VALUE obj, cp;
997
+ {
998
+ char *i_cp;
999
+ integer o_idx;
1000
+ VALUE idx;
1001
+
1002
+ if (TYPE(cp) != T_STRING) {
1003
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
1004
+ }
1005
+
1006
+ i_cp = StringValuePtr(cp);
1007
+
1008
+
1009
+ uilqid_(i_cp, &o_idx, (ftnlen)strlen(i_cp));
1010
+
1011
+ idx = INT2NUM(o_idx);
1012
+
1013
+
1014
+ return idx;
1015
+
1016
+ }
1017
+
1018
+ static VALUE
1019
+ dcl_uilqcp(obj, idx)
1020
+ VALUE obj, idx;
1021
+ {
1022
+ integer i_idx;
1023
+ char *o_cp;
1024
+ VALUE cp;
1025
+
1026
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
1027
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
1028
+ }
1029
+
1030
+ i_idx = NUM2INT(idx);
1031
+
1032
+ o_cp= ALLOCA_N(char, (DFLT_SIZE+1));
1033
+ memset(o_cp, '\0', DFLT_SIZE+1);
1034
+
1035
+ uilqcp_(&i_idx, o_cp, (ftnlen)DFLT_SIZE);
1036
+
1037
+ cp = rb_str_new2(o_cp);
1038
+
1039
+
1040
+ return cp;
1041
+
1042
+ }
1043
+
1044
+ static VALUE
1045
+ dcl_uilqcl(obj, idx)
1046
+ VALUE obj, idx;
1047
+ {
1048
+ integer i_idx;
1049
+ char *o_cp;
1050
+ VALUE cp;
1051
+
1052
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
1053
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
1054
+ }
1055
+
1056
+ i_idx = NUM2INT(idx);
1057
+
1058
+ o_cp= ALLOCA_N(char, (DFLT_SIZE+1));
1059
+ memset(o_cp, '\0', DFLT_SIZE+1);
1060
+
1061
+ uilqcl_(&i_idx, o_cp, (ftnlen)DFLT_SIZE);
1062
+
1063
+ cp = rb_str_new2(o_cp);
1064
+
1065
+
1066
+ return cp;
1067
+
1068
+ }
1069
+
1070
+ static VALUE
1071
+ dcl_uilqvl(obj, idx)
1072
+ VALUE obj, idx;
1073
+ {
1074
+ integer i_idx;
1075
+ logical o_lpara;
1076
+ VALUE lpara;
1077
+
1078
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
1079
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
1080
+ }
1081
+
1082
+ i_idx = NUM2INT(idx);
1083
+
1084
+
1085
+ uilqvl_(&i_idx, &o_lpara);
1086
+
1087
+ lpara = (o_lpara == FALSE_) ? Qfalse : Qtrue;
1088
+
1089
+
1090
+ return lpara;
1091
+
1092
+ }
1093
+
1094
+ static VALUE
1095
+ dcl_uilsvl(obj, idx, lpara)
1096
+ VALUE obj, idx, lpara;
1097
+ {
1098
+ integer i_idx;
1099
+ logical i_lpara;
1100
+
1101
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
1102
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
1103
+ }
1104
+
1105
+ i_idx = NUM2INT(idx);
1106
+ i_lpara = ((lpara == Qnil)||(lpara == Qfalse)) ? FALSE_ : TRUE_;
1107
+
1108
+
1109
+ uilsvl_(&i_idx, &i_lpara);
1110
+
1111
+ return Qnil;
1112
+
1113
+ }
1114
+
1115
+ static VALUE
1116
+ dcl_uilqin(obj, cp)
1117
+ VALUE obj, cp;
1118
+ {
1119
+ char *i_cp;
1120
+ integer o_in;
1121
+ VALUE in;
1122
+
1123
+ if (TYPE(cp) != T_STRING) {
1124
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
1125
+ }
1126
+
1127
+ i_cp = StringValuePtr(cp);
1128
+
1129
+
1130
+ uilqin_(i_cp, &o_in, (ftnlen)strlen(i_cp));
1131
+
1132
+ in = INT2NUM(o_in);
1133
+
1134
+
1135
+ return in;
1136
+
1137
+ }
1138
+
1139
+ static VALUE
1140
+ dcl_uirget(obj, cp)
1141
+ VALUE obj, cp;
1142
+ {
1143
+ char *i_cp;
1144
+ real o_rpara;
1145
+ VALUE rpara;
1146
+
1147
+ if (TYPE(cp) != T_STRING) {
1148
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
1149
+ }
1150
+
1151
+ i_cp = StringValuePtr(cp);
1152
+
1153
+
1154
+ uirget_(i_cp, &o_rpara, (ftnlen)strlen(i_cp));
1155
+
1156
+ rpara = rb_float_new((double)o_rpara);
1157
+
1158
+
1159
+ return rpara;
1160
+
1161
+ }
1162
+
1163
+ static VALUE
1164
+ dcl_uirset(obj, cp, rpara)
1165
+ VALUE obj, cp, rpara;
1166
+ {
1167
+ char *i_cp;
1168
+ real i_rpara;
1169
+
1170
+ if (TYPE(cp) != T_STRING) {
1171
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
1172
+ }
1173
+ if (TYPE(rpara) != T_FLOAT) {
1174
+ rpara = rb_funcall(rpara, rb_intern("to_f"), 0);
1175
+ }
1176
+
1177
+ i_cp = StringValuePtr(cp);
1178
+ i_rpara = (real)NUM2DBL(rpara);
1179
+
1180
+
1181
+ uirset_(i_cp, &i_rpara, (ftnlen)strlen(i_cp));
1182
+
1183
+ return Qnil;
1184
+
1185
+ }
1186
+
1187
+ static VALUE
1188
+ dcl_uirstx(obj, cp, rpara)
1189
+ VALUE obj, cp, rpara;
1190
+ {
1191
+ char *i_cp;
1192
+ real i_rpara;
1193
+
1194
+ if (TYPE(cp) != T_STRING) {
1195
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
1196
+ }
1197
+ if (TYPE(rpara) != T_FLOAT) {
1198
+ rpara = rb_funcall(rpara, rb_intern("to_f"), 0);
1199
+ }
1200
+
1201
+ i_cp = StringValuePtr(cp);
1202
+ i_rpara = (real)NUM2DBL(rpara);
1203
+
1204
+
1205
+ uirstx_(i_cp, &i_rpara, (ftnlen)strlen(i_cp));
1206
+
1207
+ return Qnil;
1208
+
1209
+ }
1210
+
1211
+ static VALUE
1212
+ dcl_uirqnp(obj)
1213
+ VALUE obj;
1214
+ {
1215
+ integer o_ncp;
1216
+ VALUE ncp;
1217
+
1218
+ uirqnp_(&o_ncp);
1219
+
1220
+ ncp = INT2NUM(o_ncp);
1221
+
1222
+
1223
+ return ncp;
1224
+
1225
+ }
1226
+
1227
+ static VALUE
1228
+ dcl_uirqid(obj, cp)
1229
+ VALUE obj, cp;
1230
+ {
1231
+ char *i_cp;
1232
+ integer o_idx;
1233
+ VALUE idx;
1234
+
1235
+ if (TYPE(cp) != T_STRING) {
1236
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
1237
+ }
1238
+
1239
+ i_cp = StringValuePtr(cp);
1240
+
1241
+
1242
+ uirqid_(i_cp, &o_idx, (ftnlen)strlen(i_cp));
1243
+
1244
+ idx = INT2NUM(o_idx);
1245
+
1246
+
1247
+ return idx;
1248
+
1249
+ }
1250
+
1251
+ static VALUE
1252
+ dcl_uirqcp(obj, idx)
1253
+ VALUE obj, idx;
1254
+ {
1255
+ integer i_idx;
1256
+ char *o_cp;
1257
+ VALUE cp;
1258
+
1259
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
1260
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
1261
+ }
1262
+
1263
+ i_idx = NUM2INT(idx);
1264
+
1265
+ o_cp= ALLOCA_N(char, (DFLT_SIZE+1));
1266
+ memset(o_cp, '\0', DFLT_SIZE+1);
1267
+
1268
+ uirqcp_(&i_idx, o_cp, (ftnlen)DFLT_SIZE);
1269
+
1270
+ cp = rb_str_new2(o_cp);
1271
+
1272
+
1273
+ return cp;
1274
+
1275
+ }
1276
+
1277
+ static VALUE
1278
+ dcl_uirqcl(obj, idx)
1279
+ VALUE obj, idx;
1280
+ {
1281
+ integer i_idx;
1282
+ char *o_cp;
1283
+ VALUE cp;
1284
+
1285
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
1286
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
1287
+ }
1288
+
1289
+ i_idx = NUM2INT(idx);
1290
+
1291
+ o_cp= ALLOCA_N(char, (DFLT_SIZE+1));
1292
+ memset(o_cp, '\0', DFLT_SIZE+1);
1293
+
1294
+ uirqcl_(&i_idx, o_cp, (ftnlen)DFLT_SIZE);
1295
+
1296
+ cp = rb_str_new2(o_cp);
1297
+
1298
+
1299
+ return cp;
1300
+
1301
+ }
1302
+
1303
+ static VALUE
1304
+ dcl_uirqvl(obj, idx)
1305
+ VALUE obj, idx;
1306
+ {
1307
+ integer i_idx;
1308
+ real o_rpara;
1309
+ VALUE rpara;
1310
+
1311
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
1312
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
1313
+ }
1314
+
1315
+ i_idx = NUM2INT(idx);
1316
+
1317
+
1318
+ uirqvl_(&i_idx, &o_rpara);
1319
+
1320
+ rpara = rb_float_new((double)o_rpara);
1321
+
1322
+
1323
+ return rpara;
1324
+
1325
+ }
1326
+
1327
+ static VALUE
1328
+ dcl_uirsvl(obj, idx, rpara)
1329
+ VALUE obj, idx, rpara;
1330
+ {
1331
+ integer i_idx;
1332
+ real i_rpara;
1333
+
1334
+ if ((TYPE(idx) != T_BIGNUM) || (TYPE(idx) != T_FIXNUM)) {
1335
+ idx = rb_funcall(idx, rb_intern("to_i"), 0);
1336
+ }
1337
+ if (TYPE(rpara) != T_FLOAT) {
1338
+ rpara = rb_funcall(rpara, rb_intern("to_f"), 0);
1339
+ }
1340
+
1341
+ i_idx = NUM2INT(idx);
1342
+ i_rpara = (real)NUM2DBL(rpara);
1343
+
1344
+
1345
+ uirsvl_(&i_idx, &i_rpara);
1346
+
1347
+ return Qnil;
1348
+
1349
+ }
1350
+
1351
+ static VALUE
1352
+ dcl_uirqin(obj, cp)
1353
+ VALUE obj, cp;
1354
+ {
1355
+ char *i_cp;
1356
+ integer o_in;
1357
+ VALUE in;
1358
+
1359
+ if (TYPE(cp) != T_STRING) {
1360
+ cp = rb_funcall(cp, rb_intern("to_str"), 0);
1361
+ }
1362
+
1363
+ i_cp = StringValuePtr(cp);
1364
+
1365
+
1366
+ uirqin_(i_cp, &o_in, (ftnlen)strlen(i_cp));
1367
+
1368
+ in = INT2NUM(o_in);
1369
+
1370
+
1371
+ return in;
1372
+
1373
+ }
1374
+
1375
+ static VALUE
1376
+ dcl_uiqfnm(obj, cpara)
1377
+ VALUE obj, cpara;
1378
+ {
1379
+ char *i_cpara;
1380
+ char *o_cfname;
1381
+ VALUE cfname;
1382
+
1383
+ if (TYPE(cpara) != T_STRING) {
1384
+ cpara = rb_funcall(cpara, rb_intern("to_str"), 0);
1385
+ }
1386
+
1387
+ i_cpara = StringValuePtr(cpara);
1388
+
1389
+ o_cfname= ALLOCA_N(char, (DFLT_SIZE+1));
1390
+ memset(o_cfname, '\0', DFLT_SIZE+1);
1391
+
1392
+ uiqfnm_(i_cpara, o_cfname, (ftnlen)strlen(i_cpara), (ftnlen)DFLT_SIZE);
1393
+
1394
+ cfname = rb_str_new2(o_cfname);
1395
+
1396
+
1397
+ return cfname;
1398
+
1399
+ }
1400
+
1401
+ #endif
1402
+ void
1403
+ init_grph2_uipack(mDCL)
1404
+ VALUE mDCL;
1405
+ {
1406
+ #if DCLVER >= 544
1407
+ rb_define_module_function(mDCL, "uipdat", dcl_uipdat, 4);
1408
+ rb_define_module_function(mDCL, "uipda2", dcl_uipda2, 5);
1409
+ rb_define_module_function(mDCL, "uipda3", dcl_uipda3, 6);
1410
+ rb_define_module_function(mDCL, "uiscrg", dcl_uiscrg, 2);
1411
+ rb_define_module_function(mDCL, "uismrg", dcl_uismrg, 2);
1412
+ rb_define_module_function(mDCL, "uiscsq", dcl_uiscsq, 3);
1413
+ rb_define_module_function(mDCL, "uiscfl", dcl_uiscfl, 1);
1414
+ rb_define_module_function(mDCL, "uismsq", dcl_uismsq, 3);
1415
+ rb_define_module_function(mDCL, "uismfl", dcl_uismfl, 1);
1416
+ rb_define_module_function(mDCL, "uixbar", dcl_uixbar, 7);
1417
+ rb_define_module_function(mDCL, "uiybar", dcl_uiybar, 7);
1418
+ rb_define_module_function(mDCL, "uiscr2", dcl_uiscr2, 4);
1419
+ rb_define_module_function(mDCL, "uiqcr2", dcl_uiqcr2, 0);
1420
+ rb_define_module_function(mDCL, "uiscmp", dcl_uiscmp, 4);
1421
+ rb_define_module_function(mDCL, "uipcmp", dcl_uipcmp, 5);
1422
+ rb_define_module_function(mDCL, "uifpac", dcl_uifpac, 3);
1423
+ rb_define_module_function(mDCL, "uiipac", dcl_uiipac, 1);
1424
+ rb_define_module_function(mDCL, "uiiget", dcl_uiiget, 1);
1425
+ rb_define_module_function(mDCL, "uiiset", dcl_uiiset, 2);
1426
+ rb_define_module_function(mDCL, "uiistx", dcl_uiistx, 2);
1427
+ rb_define_module_function(mDCL, "uiiqnp", dcl_uiiqnp, 0);
1428
+ rb_define_module_function(mDCL, "uiiqid", dcl_uiiqid, 1);
1429
+ rb_define_module_function(mDCL, "uiiqcp", dcl_uiiqcp, 1);
1430
+ rb_define_module_function(mDCL, "uiiqcl", dcl_uiiqcl, 1);
1431
+ rb_define_module_function(mDCL, "uiiqvl", dcl_uiiqvl, 1);
1432
+ rb_define_module_function(mDCL, "uiisvl", dcl_uiisvl, 2);
1433
+ rb_define_module_function(mDCL, "uiiqin", dcl_uiiqin, 1);
1434
+ rb_define_module_function(mDCL, "uilget", dcl_uilget, 1);
1435
+ rb_define_module_function(mDCL, "uilset", dcl_uilset, 2);
1436
+ rb_define_module_function(mDCL, "uilstx", dcl_uilstx, 2);
1437
+ rb_define_module_function(mDCL, "uilqnp", dcl_uilqnp, 0);
1438
+ rb_define_module_function(mDCL, "uilqid", dcl_uilqid, 1);
1439
+ rb_define_module_function(mDCL, "uilqcp", dcl_uilqcp, 1);
1440
+ rb_define_module_function(mDCL, "uilqcl", dcl_uilqcl, 1);
1441
+ rb_define_module_function(mDCL, "uilqvl", dcl_uilqvl, 1);
1442
+ rb_define_module_function(mDCL, "uilsvl", dcl_uilsvl, 2);
1443
+ rb_define_module_function(mDCL, "uilqin", dcl_uilqin, 1);
1444
+ rb_define_module_function(mDCL, "uirget", dcl_uirget, 1);
1445
+ rb_define_module_function(mDCL, "uirset", dcl_uirset, 2);
1446
+ rb_define_module_function(mDCL, "uirstx", dcl_uirstx, 2);
1447
+ rb_define_module_function(mDCL, "uirqnp", dcl_uirqnp, 0);
1448
+ rb_define_module_function(mDCL, "uirqid", dcl_uirqid, 1);
1449
+ rb_define_module_function(mDCL, "uirqcp", dcl_uirqcp, 1);
1450
+ rb_define_module_function(mDCL, "uirqcl", dcl_uirqcl, 1);
1451
+ rb_define_module_function(mDCL, "uirqvl", dcl_uirqvl, 1);
1452
+ rb_define_module_function(mDCL, "uirsvl", dcl_uirsvl, 2);
1453
+ rb_define_module_function(mDCL, "uirqin", dcl_uirqin, 1);
1454
+ rb_define_module_function(mDCL, "uiqfnm", dcl_uiqfnm, 1);
1455
+ #endif
1456
+ }