Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / share / swig / 1.3.26 / ruby / std_pair.i
CommitLineData
920dae64
AT
1//
2// SWIG typemaps for std::pair
3// Luigi Ballabio
4// July 2003
5//
6// Ruby implementation
7
8%include std_common.i
9%include exception.i
10
11// ------------------------------------------------------------------------
12// std::pair
13//
14// See std_vector.i for the rationale of typemap application
15// ------------------------------------------------------------------------
16
17%{
18#include <utility>
19%}
20
21// exported class
22
23namespace std {
24
25 template<class T, class U> struct pair {
26 %typemap(in) pair<T,U> (std::pair<T,U>* p) {
27 if (rb_obj_is_kind_of($input,rb_cArray)) {
28 unsigned int size = RARRAY($input)->len;
29 if (size != 2)
30 SWIG_exception(SWIG_TypeError,
31 "pair<" #T "," #U "> expected");
32 T* x;
33 U* y;
34 VALUE first = RARRAY($input)->ptr[0];
35 VALUE second = RARRAY($input)->ptr[1];
36 SWIG_ConvertPtr(first, (void **) &x, $descriptor(T *), 1);
37 SWIG_ConvertPtr(second, (void **) &y, $descriptor(U *), 1);
38 $1 = std::make_pair(x,y);
39 } else {
40 SWIG_ConvertPtr($input, (void **) &p, $&1_descriptor, 1);
41 $1 = *p;
42 }
43 }
44 %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
45 std::pair<T,U>* p),
46 const pair<T,U>* (std::pair<T,U> temp,
47 std::pair<T,U>* p) {
48 if (rb_obj_is_kind_of($input,rb_cArray)) {
49 unsigned int size = RARRAY($input)->len;
50 if (size != 2)
51 SWIG_exception(SWIG_TypeError,
52 "pair<" #T "," #U "> expected");
53 T* x;
54 U* y;
55 VALUE first = RARRAY($input)->ptr[0];
56 VALUE second = RARRAY($input)->ptr[1];
57 SWIG_ConvertPtr(first, (void **) &x, $descriptor(T *), 1);
58 SWIG_ConvertPtr(second, (void **) &y, $descriptor(U *), 1);
59 temp = std::make_pair(x,y);
60 $1 = &temp;
61 } else {
62 SWIG_ConvertPtr($input, (void **) &p, $1_descriptor, 1);
63 $1 = p;
64 }
65 }
66 %typemap(out) pair<T,U> {
67 $result = rb_ary_new2(2);
68 T* x = new T($1.first);
69 U* y = new U($1.second);
70 rb_ary_store($result,0,
71 SWIG_NewPointerObj((void *) x,
72 $descriptor(T *), 1));
73 rb_ary_store($result,1,
74 SWIG_NewPointerObj((void *) y,
75 $descriptor(U *), 1));
76 }
77 %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
78 /* native sequence? */
79 if (rb_obj_is_kind_of($input,rb_cArray)) {
80 unsigned int size = RARRAY($input)->len;
81 if (size != 2) {
82 /* not a pair */
83 $1 = 0;
84 } else {
85 T* x;
86 U* y;
87 VALUE first = RARRAY($input)->ptr[0];
88 VALUE second = RARRAY($input)->ptr[1];
89 if (SWIG_ConvertPtr(first,(void **) &x,
90 $descriptor(T *),0) != -1 &&
91 SWIG_ConvertPtr(second,(void **) &y,
92 $descriptor(U *),0) != -1)
93 $1 = 1;
94 else
95 $1 = 0;
96 }
97 } else {
98 /* wrapped pair? */
99 std::pair<T,U >* p;
100 if (SWIG_ConvertPtr($input,(void **) &p,
101 $&1_descriptor,0) != -1)
102 $1 = 1;
103 else
104 $1 = 0;
105 }
106 }
107 %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
108 const pair<T,U>* {
109 /* native sequence? */
110 if (rb_obj_is_kind_of($input,rb_cHash)) {
111 unsigned int size = RARRAY($input)->len;
112 if (size != 2) {
113 /* not a pair */
114 $1 = 0;
115 } else {
116 T* x;
117 U* y;
118 VALUE first = RARRAY($input)->ptr[0];
119 VALUE second = RARRAY($input)->ptr[1];
120 if (SWIG_ConvertPtr(first,(void **) &x,
121 $descriptor(T *),0) != -1 &&
122 SWIG_ConvertPtr(second,(void **) &y,
123 $descriptor(U *),0) != -1)
124 $1 = 1;
125 else
126 $1 = 0;
127 }
128 } else {
129 /* wrapped map? */
130 std::pair<T,U >* p;
131 if (SWIG_ConvertPtr($input,(void **) &p,
132 $1_descriptor,0) != -1)
133 $1 = 1;
134 else
135 $1 = 0;
136 }
137 }
138 pair();
139 pair(T first, U second);
140 pair(const pair& p);
141
142 template <class U1, class U2> pair(const pair<U1, U2> &p);
143
144 T first;
145 U second;
146 };
147
148 // specializations for built-ins
149
150 %define specialize_std_pair_on_first(T,CHECK,CONVERT_FROM,CONVERT_TO)
151
152 template<class U> struct pair<T,U> {
153 %typemap(in) pair<T,U> (std::pair<T,U>* p) {
154 if (rb_obj_is_kind_of($input,rb_cArray)) {
155 unsigned int size = RARRAY($input)->len;
156 if (size != 2)
157 SWIG_exception(SWIG_TypeError,
158 "pair<" #T "," #U "> expected");
159 U* y;
160 VALUE first = RARRAY($input)->ptr[0];
161 VALUE second = RARRAY($input)->ptr[1];
162 if (!CHECK(first))
163 SWIG_exception(SWIG_TypeError,
164 "pair<" #T "," #U "> expected");
165 SWIG_ConvertPtr(second, (void **) &y, $descriptor(U *), 1);
166 $1 = std::make_pair(CONVERT_FROM(first),y);
167 } else {
168 SWIG_ConvertPtr($input, (void **) &p, $&1_descriptor, 1);
169 $1 = *p;
170 }
171 }
172 %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
173 std::pair<T,U>* p),
174 const pair<T,U>* (std::pair<T,U> temp,
175 std::pair<T,U>* p) {
176 if (rb_obj_is_kind_of($input,rb_cArray)) {
177 unsigned int size = RARRAY($input)->len;
178 if (size != 2)
179 SWIG_exception(SWIG_TypeError,
180 "pair<" #T "," #U "> expected");
181 U* y;
182 VALUE first = RARRAY($input)->ptr[0];
183 VALUE second = RARRAY($input)->ptr[1];
184 if (!CHECK(first))
185 SWIG_exception(SWIG_TypeError,
186 "pair<" #T "," #U "> expected");
187 SWIG_ConvertPtr(second, (void **) &y, $descriptor(U *), 1);
188 temp = std::make_pair(CONVERT_FROM(first),y);
189 $1 = &temp;
190 } else {
191 SWIG_ConvertPtr($input, (void **) &p, $1_descriptor, 1);
192 $1 = p;
193 }
194 }
195 %typemap(out) pair<T,U> {
196 $result = rb_ary_new2(2);
197 U* y = new U($1.second);
198 rb_ary_store($result,0,CONVERT_TO($1.first));
199 rb_ary_store($result,1,
200 SWIG_NewPointerObj((void *) y,
201 $descriptor(U *), 1));
202 }
203 %typecheck(SWIG_TYPECHECK_MAP) pair<T,U> {
204 /* native sequence? */
205 if (rb_obj_is_kind_of($input,rb_cArray)) {
206 unsigned int size = RARRAY($input)->len;
207 if (size != 2) {
208 /* not a pair */
209 $1 = 0;
210 } else {
211 U* y;
212 VALUE first = RARRAY($input)->ptr[0];
213 VALUE second = RARRAY($input)->ptr[1];
214 if (CHECK(first) &&
215 SWIG_ConvertPtr(second,(void **) &y,
216 $descriptor(U *),0) != -1)
217 $1 = 1;
218 else
219 $1 = 0;
220 }
221 } else {
222 /* wrapped pair? */
223 std::pair<T,U >* p;
224 if (SWIG_ConvertPtr($input,(void **) &p,
225 $&1_descriptor,0) != -1)
226 $1 = 1;
227 else
228 $1 = 0;
229 }
230 }
231 %typecheck(SWIG_TYPECHECK_MAP) const pair<T,U>&,
232 const pair<T,U>* {
233 /* native sequence? */
234 if (rb_obj_is_kind_of($input,rb_cHash)) {
235 unsigned int size = RARRAY($input)->len;
236 if (size != 2) {
237 /* not a pair */
238 $1 = 0;
239 } else {
240 U* y;
241 VALUE first = RARRAY($input)->ptr[0];
242 VALUE second = RARRAY($input)->ptr[1];
243 if (CHECK(first) &&
244 SWIG_ConvertPtr(second,(void **) &y,
245 $descriptor(U *),0) != -1)
246 $1 = 1;
247 else
248 $1 = 0;
249 }
250 } else {
251 /* wrapped map? */
252 std::pair<T,U >* p;
253 if (SWIG_ConvertPtr($input,(void **) &p,
254 $1_descriptor,0) != -1)
255 $1 = 1;
256 else
257 $1 = 0;
258 }
259 }
260 pair();
261 pair(T first, U second);
262 pair(const pair& p);
263
264 template <class U1, class U2> pair(const pair<U1, U2> &p);
265
266 T first;
267 U second;
268 };
269 %enddef
270
271 %define specialize_std_pair_on_second(U,CHECK,CONVERT_FROM,CONVERT_TO)
272
273 template<class T> struct pair<T,U> {
274 %typemap(in) pair<T,U> (std::pair<T,U>* p) {
275 if (rb_obj_is_kind_of($input,rb_cArray)) {
276 unsigned int size = RARRAY($input)->len;
277 if (size != 2) {
278 SWIG_exception(SWIG_TypeError,
279 "pair<" #T "," #U "> expected");
280 }
281 T* x;
282 VALUE first = RARRAY($input)->ptr[0];
283 VALUE second = RARRAY($input)->ptr[1];
284 SWIG_ConvertPtr(first, (void **) &x, $descriptor(T *), 1);
285 if (!CHECK(second))
286 SWIG_exception(SWIG_TypeError,
287 "pair<" #T "," #U "> expected");
288 $1 = std::make_pair(x,CONVERT_FROM(second));
289 } else {
290 SWIG_ConvertPtr($input, (void **) &p, $&1_descriptor, 1);
291 $1 = *p;
292 }
293 }
294 %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
295 std::pair<T,U>* p),
296 const pair<T,U>* (std::pair<T,U> temp,
297 std::pair<T,U>* p) {
298 if (rb_obj_is_kind_of($input,rb_cArray)) {
299 unsigned int size = RARRAY($input)->len;
300 if (size != 2) {
301 SWIG_exception(SWIG_TypeError,
302 "pair<" #T "," #U "> expected");
303 }
304 T* x;
305 VALUE first = RARRAY($input)->ptr[0];
306 VALUE second = RARRAY($input)->ptr[1];
307 SWIG_ConvertPtr(first, (void **) &x, $descriptor(T *), 1);
308 if (!CHECK(second))
309 SWIG_exception(SWIG_TypeError,
310 "pair<" #T "," #U "> expected");
311 temp = std::make_pair(x,CONVERT_FROM(second));
312 $1 = &temp;
313 } else {
314 SWIG_ConvertPtr($input, (void **) &p, $1_descriptor, 1);
315 $1 = p;
316 }
317 }
318 %typemap(out) pair<T,U> {
319 $result = rb_ary_new2(2);
320 T* x = new T($1.first);
321 rb_ary_store($result,0,
322 SWIG_NewPointerObj((void *) x,
323 $descriptor(T *), 1));
324 rb_ary_store($result,1,CONVERT_TO($1.second));
325 }
326 %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
327 /* native sequence? */
328 if (rb_obj_is_kind_of($input,rb_cArray)) {
329 unsigned int size = RARRAY($input)->len;
330 if (size != 2) {
331 /* not a pair */
332 $1 = 0;
333 } else {
334 T* x;
335 VALUE first = RARRAY($input)->ptr[0];
336 VALUE second = RARRAY($input)->ptr[1];
337 if (SWIG_ConvertPtr(first,(void **) &x,
338 $descriptor(T *),0) != -1 &&
339 CHECK(second))
340 $1 = 1;
341 else
342 $1 = 0;
343 }
344 } else {
345 /* wrapped pair? */
346 std::pair<T,U >* p;
347 if (SWIG_ConvertPtr($input,(void **) &p,
348 $&1_descriptor,0) != -1)
349 $1 = 1;
350 else
351 $1 = 0;
352 }
353 }
354 %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
355 const pair<T,U>* {
356 /* native sequence? */
357 if (rb_obj_is_kind_of($input,rb_cHash)) {
358 unsigned int size = RARRAY($input)->len;
359 if (size != 2) {
360 /* not a pair */
361 $1 = 0;
362 } else {
363 T* x;
364 VALUE first = RARRAY($input)->ptr[0];
365 VALUE second = RARRAY($input)->ptr[1];
366 if (SWIG_ConvertPtr(first,(void **) &x,
367 $descriptor(T *),0) != -1 &&
368 CHECK(second))
369 $1 = 1;
370 else
371 $1 = 0;
372 }
373 } else {
374 /* wrapped map? */
375 std::pair<T,U >* p;
376 if (SWIG_ConvertPtr($input,(void **) &p,
377 $1_descriptor,0) != -1)
378 $1 = 1;
379 else
380 $1 = 0;
381 }
382 }
383 pair();
384 pair(T first, U second);
385 pair(const pair& p);
386
387 template <class U1, class U2> pair(const pair<U1, U2> &p);
388
389 T first;
390 U second;
391 };
392 %enddef
393
394 %define specialize_std_pair_on_both(T,CHECK_T,CONVERT_T_FROM,CONVERT_T_TO,
395 U,CHECK_U,CONVERT_U_FROM,CONVERT_U_TO)
396 template<> struct pair<T,U> {
397 %typemap(in) pair<T,U> (std::pair<T,U>* p) {
398 if (rb_obj_is_kind_of($input,rb_cArray)) {
399 unsigned int size = RARRAY($input)->len;
400 if (size != 2) {
401 SWIG_exception(SWIG_TypeError,
402 "pair<" #T "," #U "> expected");
403 }
404 VALUE first = RARRAY($input)->ptr[0];
405 VALUE second = RARRAY($input)->ptr[1];
406 if (!CHECK_T(first) || !CHECK_U(second))
407 SWIG_exception(SWIG_TypeError,
408 "pair<" #T "," #U "> expected");
409 $1 = std::make_pair(CONVERT_T_FROM(first),
410 CONVERT_U_FROM(second));
411 } else {
412 SWIG_ConvertPtr($input, (void **) &p, $&1_descriptor, 1);
413 $1 = *p;
414 }
415 }
416 %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
417 std::pair<T,U>* p),
418 const pair<T,U>* (std::pair<T,U> temp,
419 std::pair<T,U>* p) {
420 if (rb_obj_is_kind_of($input,rb_cArray)) {
421 unsigned int size = RARRAY($input)->len;
422 if (size != 2) {
423 SWIG_exception(SWIG_TypeError,
424 "pair<" #T "," #U "> expected");
425 }
426 VALUE first = RARRAY($input)->ptr[0];
427 VALUE second = RARRAY($input)->ptr[1];
428 if (!CHECK_T(first) || !CHECK_U(second))
429 SWIG_exception(SWIG_TypeError,
430 "pair<" #T "," #U "> expected");
431 temp = std::make_pair(CONVERT_T_FROM(first),
432 CONVERT_U_FROM(second));
433 $1 = &temp;
434 } else {
435 SWIG_ConvertPtr($input, (void **) &p, $1_descriptor, 1);
436 $1 = p;
437 }
438 }
439 %typemap(out) pair<T,U> {
440 $result = rb_ary_new2(2);
441 rb_ary_store($result,0,CONVERT_T_TO($1.first));
442 rb_ary_store($result,1,CONVERT_U_TO($1.second));
443 }
444 %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
445 /* native sequence? */
446 if (rb_obj_is_kind_of($input,rb_cArray)) {
447 unsigned int size = RARRAY($input)->len;
448 if (size != 2) {
449 /* not a pair */
450 $1 = 0;
451 } else {
452 VALUE first = RARRAY($input)->ptr[0];
453 VALUE second = RARRAY($input)->ptr[1];
454 if (CHECK_T(first) && CHECK_U(second))
455 $1 = 1;
456 else
457 $1 = 0;
458 }
459 } else {
460 /* wrapped pair? */
461 std::pair<T,U >* p;
462 if (SWIG_ConvertPtr($input,(void **) &p,
463 $&1_descriptor,0) != -1)
464 $1 = 1;
465 else
466 $1 = 0;
467 }
468 }
469 %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
470 const pair<T,U>* {
471 /* native sequence? */
472 if (rb_obj_is_kind_of($input,rb_cHash)) {
473 unsigned int size = RARRAY($input)->len;
474 if (size != 2) {
475 /* not a pair */
476 $1 = 0;
477 } else {
478 VALUE first = RARRAY($input)->ptr[0];
479 VALUE second = RARRAY($input)->ptr[1];
480 if (CHECK_T(first) && CHECK_U(second))
481 $1 = 1;
482 else
483 $1 = 0;
484 }
485 } else {
486 /* wrapped map? */
487 std::pair<T,U >* p;
488 if (SWIG_ConvertPtr($input,(void **) &p,
489 $1_descriptor,0) != -1)
490 $1 = 1;
491 else
492 $1 = 0;
493 }
494 }
495 pair();
496 pair(T first, U second);
497 pair(const pair& p);
498
499 template <class U1, class U2> pair(const pair<U1, U2> &p);
500
501 T first;
502 U second;
503 };
504 %enddef
505
506
507 specialize_std_pair_on_first(bool,SWIG_BOOL_P,
508 SWIG_RB2BOOL,SWIG_BOOL2RB);
509 specialize_std_pair_on_first(int,FIXNUM_P,
510 FIX2INT,INT2NUM);
511 specialize_std_pair_on_first(short,FIXNUM_P,
512 FIX2INT,INT2NUM);
513 specialize_std_pair_on_first(long,FIXNUM_P,
514 FIX2INT,INT2NUM);
515 specialize_std_pair_on_first(unsigned int,FIXNUM_P,
516 FIX2INT,INT2NUM);
517 specialize_std_pair_on_first(unsigned short,FIXNUM_P,
518 FIX2INT,INT2NUM);
519 specialize_std_pair_on_first(unsigned long,FIXNUM_P,
520 FIX2INT,INT2NUM);
521 specialize_std_pair_on_first(double,SWIG_FLOAT_P,
522 SWIG_NUM2DBL,rb_float_new);
523 specialize_std_pair_on_first(float,SWIG_FLOAT_P,
524 SWIG_NUM2DBL,rb_float_new);
525 specialize_std_pair_on_first(std::string,SWIG_STRING_P,
526 SWIG_RB2STR,SWIG_STR2RB);
527
528 specialize_std_pair_on_second(bool,SWIG_BOOL_P,
529 SWIG_RB2BOOL,SWIG_BOOL2RB);
530 specialize_std_pair_on_second(int,FIXNUM_P,
531 FIX2INT,INT2NUM);
532 specialize_std_pair_on_second(short,FIXNUM_P,
533 FIX2INT,INT2NUM);
534 specialize_std_pair_on_second(long,FIXNUM_P,
535 FIX2INT,INT2NUM);
536 specialize_std_pair_on_second(unsigned int,FIXNUM_P,
537 FIX2INT,INT2NUM);
538 specialize_std_pair_on_second(unsigned short,FIXNUM_P,
539 FIX2INT,INT2NUM);
540 specialize_std_pair_on_second(unsigned long,FIXNUM_P,
541 FIX2INT,INT2NUM);
542 specialize_std_pair_on_second(double,SWIG_FLOAT_P,
543 SWIG_NUM2DBL,rb_float_new);
544 specialize_std_pair_on_second(float,SWIG_FLOAT_P,
545 SWIG_NUM2DBL,rb_float_new);
546 specialize_std_pair_on_second(std::string,SWIG_STRING_P,
547 SWIG_RB2STR,SWIG_STR2RB);
548
549 specialize_std_pair_on_both(bool,SWIG_BOOL_P,
550 SWIG_RB2BOOL,SWIG_BOOL2RB,
551 bool,SWIG_BOOL_P,
552 SWIG_RB2BOOL,SWIG_BOOL2RB);
553 specialize_std_pair_on_both(bool,SWIG_BOOL_P,
554 SWIG_RB2BOOL,SWIG_BOOL2RB,
555 int,FIXNUM_P,
556 FIX2INT,INT2NUM);
557 specialize_std_pair_on_both(bool,SWIG_BOOL_P,
558 SWIG_RB2BOOL,SWIG_BOOL2RB,
559 short,FIXNUM_P,
560 FIX2INT,INT2NUM);
561 specialize_std_pair_on_both(bool,SWIG_BOOL_P,
562 SWIG_RB2BOOL,SWIG_BOOL2RB,
563 long,FIXNUM_P,
564 FIX2INT,INT2NUM);
565 specialize_std_pair_on_both(bool,SWIG_BOOL_P,
566 SWIG_RB2BOOL,SWIG_BOOL2RB,
567 unsigned int,FIXNUM_P,
568 FIX2INT,INT2NUM);
569 specialize_std_pair_on_both(bool,SWIG_BOOL_P,
570 SWIG_RB2BOOL,SWIG_BOOL2RB,
571 unsigned short,FIXNUM_P,
572 FIX2INT,INT2NUM);
573 specialize_std_pair_on_both(bool,SWIG_BOOL_P,
574 SWIG_RB2BOOL,SWIG_BOOL2RB,
575 unsigned long,FIXNUM_P,
576 FIX2INT,INT2NUM);
577 specialize_std_pair_on_both(bool,SWIG_BOOL_P,
578 SWIG_RB2BOOL,SWIG_BOOL2RB,
579 double,SWIG_FLOAT_P,
580 SWIG_NUM2DBL,rb_float_new);
581 specialize_std_pair_on_both(bool,SWIG_BOOL_P,
582 SWIG_RB2BOOL,SWIG_BOOL2RB,
583 float,SWIG_FLOAT_P,
584 SWIG_NUM2DBL,rb_float_new);
585 specialize_std_pair_on_both(bool,SWIG_BOOL_P,
586 SWIG_RB2BOOL,SWIG_BOOL2RB,
587 std::string,SWIG_STRING_P,
588 SWIG_RB2STR,SWIG_STR2RB);
589 specialize_std_pair_on_both(int,FIXNUM_P,
590 FIX2INT,INT2NUM,
591 bool,SWIG_BOOL_P,
592 SWIG_RB2BOOL,SWIG_BOOL2RB);
593 specialize_std_pair_on_both(int,FIXNUM_P,
594 FIX2INT,INT2NUM,
595 int,FIXNUM_P,
596 FIX2INT,INT2NUM);
597 specialize_std_pair_on_both(int,FIXNUM_P,
598 FIX2INT,INT2NUM,
599 short,FIXNUM_P,
600 FIX2INT,INT2NUM);
601 specialize_std_pair_on_both(int,FIXNUM_P,
602 FIX2INT,INT2NUM,
603 long,FIXNUM_P,
604 FIX2INT,INT2NUM);
605 specialize_std_pair_on_both(int,FIXNUM_P,
606 FIX2INT,INT2NUM,
607 unsigned int,FIXNUM_P,
608 FIX2INT,INT2NUM);
609 specialize_std_pair_on_both(int,FIXNUM_P,
610 FIX2INT,INT2NUM,
611 unsigned short,FIXNUM_P,
612 FIX2INT,INT2NUM);
613 specialize_std_pair_on_both(int,FIXNUM_P,
614 FIX2INT,INT2NUM,
615 unsigned long,FIXNUM_P,
616 FIX2INT,INT2NUM);
617 specialize_std_pair_on_both(int,FIXNUM_P,
618 FIX2INT,INT2NUM,
619 double,SWIG_FLOAT_P,
620 SWIG_NUM2DBL,rb_float_new);
621 specialize_std_pair_on_both(int,FIXNUM_P,
622 FIX2INT,INT2NUM,
623 float,SWIG_FLOAT_P,
624 SWIG_NUM2DBL,rb_float_new);
625 specialize_std_pair_on_both(int,FIXNUM_P,
626 FIX2INT,INT2NUM,
627 std::string,SWIG_STRING_P,
628 SWIG_RB2STR,SWIG_STR2RB);
629 specialize_std_pair_on_both(short,FIXNUM_P,
630 FIX2INT,INT2NUM,
631 bool,SWIG_BOOL_P,
632 SWIG_RB2BOOL,SWIG_BOOL2RB);
633 specialize_std_pair_on_both(short,FIXNUM_P,
634 FIX2INT,INT2NUM,
635 int,FIXNUM_P,
636 FIX2INT,INT2NUM);
637 specialize_std_pair_on_both(short,FIXNUM_P,
638 FIX2INT,INT2NUM,
639 short,FIXNUM_P,
640 FIX2INT,INT2NUM);
641 specialize_std_pair_on_both(short,FIXNUM_P,
642 FIX2INT,INT2NUM,
643 long,FIXNUM_P,
644 FIX2INT,INT2NUM);
645 specialize_std_pair_on_both(short,FIXNUM_P,
646 FIX2INT,INT2NUM,
647 unsigned int,FIXNUM_P,
648 FIX2INT,INT2NUM);
649 specialize_std_pair_on_both(short,FIXNUM_P,
650 FIX2INT,INT2NUM,
651 unsigned short,FIXNUM_P,
652 FIX2INT,INT2NUM);
653 specialize_std_pair_on_both(short,FIXNUM_P,
654 FIX2INT,INT2NUM,
655 unsigned long,FIXNUM_P,
656 FIX2INT,INT2NUM);
657 specialize_std_pair_on_both(short,FIXNUM_P,
658 FIX2INT,INT2NUM,
659 double,SWIG_FLOAT_P,
660 SWIG_NUM2DBL,rb_float_new);
661 specialize_std_pair_on_both(short,FIXNUM_P,
662 FIX2INT,INT2NUM,
663 float,SWIG_FLOAT_P,
664 SWIG_NUM2DBL,rb_float_new);
665 specialize_std_pair_on_both(short,FIXNUM_P,
666 FIX2INT,INT2NUM,
667 std::string,SWIG_STRING_P,
668 SWIG_RB2STR,SWIG_STR2RB);
669 specialize_std_pair_on_both(long,FIXNUM_P,
670 FIX2INT,INT2NUM,
671 bool,SWIG_BOOL_P,
672 SWIG_RB2BOOL,SWIG_BOOL2RB);
673 specialize_std_pair_on_both(long,FIXNUM_P,
674 FIX2INT,INT2NUM,
675 int,FIXNUM_P,
676 FIX2INT,INT2NUM);
677 specialize_std_pair_on_both(long,FIXNUM_P,
678 FIX2INT,INT2NUM,
679 short,FIXNUM_P,
680 FIX2INT,INT2NUM);
681 specialize_std_pair_on_both(long,FIXNUM_P,
682 FIX2INT,INT2NUM,
683 long,FIXNUM_P,
684 FIX2INT,INT2NUM);
685 specialize_std_pair_on_both(long,FIXNUM_P,
686 FIX2INT,INT2NUM,
687 unsigned int,FIXNUM_P,
688 FIX2INT,INT2NUM);
689 specialize_std_pair_on_both(long,FIXNUM_P,
690 FIX2INT,INT2NUM,
691 unsigned short,FIXNUM_P,
692 FIX2INT,INT2NUM);
693 specialize_std_pair_on_both(long,FIXNUM_P,
694 FIX2INT,INT2NUM,
695 unsigned long,FIXNUM_P,
696 FIX2INT,INT2NUM);
697 specialize_std_pair_on_both(long,FIXNUM_P,
698 FIX2INT,INT2NUM,
699 double,SWIG_FLOAT_P,
700 SWIG_NUM2DBL,rb_float_new);
701 specialize_std_pair_on_both(long,FIXNUM_P,
702 FIX2INT,INT2NUM,
703 float,SWIG_FLOAT_P,
704 SWIG_NUM2DBL,rb_float_new);
705 specialize_std_pair_on_both(long,FIXNUM_P,
706 FIX2INT,INT2NUM,
707 std::string,SWIG_STRING_P,
708 SWIG_RB2STR,SWIG_STR2RB);
709 specialize_std_pair_on_both(unsigned int,FIXNUM_P,
710 FIX2INT,INT2NUM,
711 bool,SWIG_BOOL_P,
712 SWIG_RB2BOOL,SWIG_BOOL2RB);
713 specialize_std_pair_on_both(unsigned int,FIXNUM_P,
714 FIX2INT,INT2NUM,
715 int,FIXNUM_P,
716 FIX2INT,INT2NUM);
717 specialize_std_pair_on_both(unsigned int,FIXNUM_P,
718 FIX2INT,INT2NUM,
719 short,FIXNUM_P,
720 FIX2INT,INT2NUM);
721 specialize_std_pair_on_both(unsigned int,FIXNUM_P,
722 FIX2INT,INT2NUM,
723 long,FIXNUM_P,
724 FIX2INT,INT2NUM);
725 specialize_std_pair_on_both(unsigned int,FIXNUM_P,
726 FIX2INT,INT2NUM,
727 unsigned int,FIXNUM_P,
728 FIX2INT,INT2NUM);
729 specialize_std_pair_on_both(unsigned int,FIXNUM_P,
730 FIX2INT,INT2NUM,
731 unsigned short,FIXNUM_P,
732 FIX2INT,INT2NUM);
733 specialize_std_pair_on_both(unsigned int,FIXNUM_P,
734 FIX2INT,INT2NUM,
735 unsigned long,FIXNUM_P,
736 FIX2INT,INT2NUM);
737 specialize_std_pair_on_both(unsigned int,FIXNUM_P,
738 FIX2INT,INT2NUM,
739 double,SWIG_FLOAT_P,
740 SWIG_NUM2DBL,rb_float_new);
741 specialize_std_pair_on_both(unsigned int,FIXNUM_P,
742 FIX2INT,INT2NUM,
743 float,SWIG_FLOAT_P,
744 SWIG_NUM2DBL,rb_float_new);
745 specialize_std_pair_on_both(unsigned int,FIXNUM_P,
746 FIX2INT,INT2NUM,
747 std::string,SWIG_STRING_P,
748 SWIG_RB2STR,SWIG_STR2RB);
749 specialize_std_pair_on_both(unsigned short,FIXNUM_P,
750 FIX2INT,INT2NUM,
751 bool,SWIG_BOOL_P,
752 SWIG_RB2BOOL,SWIG_BOOL2RB);
753 specialize_std_pair_on_both(unsigned short,FIXNUM_P,
754 FIX2INT,INT2NUM,
755 int,FIXNUM_P,
756 FIX2INT,INT2NUM);
757 specialize_std_pair_on_both(unsigned short,FIXNUM_P,
758 FIX2INT,INT2NUM,
759 short,FIXNUM_P,
760 FIX2INT,INT2NUM);
761 specialize_std_pair_on_both(unsigned short,FIXNUM_P,
762 FIX2INT,INT2NUM,
763 long,FIXNUM_P,
764 FIX2INT,INT2NUM);
765 specialize_std_pair_on_both(unsigned short,FIXNUM_P,
766 FIX2INT,INT2NUM,
767 unsigned int,FIXNUM_P,
768 FIX2INT,INT2NUM);
769 specialize_std_pair_on_both(unsigned short,FIXNUM_P,
770 FIX2INT,INT2NUM,
771 unsigned short,FIXNUM_P,
772 FIX2INT,INT2NUM);
773 specialize_std_pair_on_both(unsigned short,FIXNUM_P,
774 FIX2INT,INT2NUM,
775 unsigned long,FIXNUM_P,
776 FIX2INT,INT2NUM);
777 specialize_std_pair_on_both(unsigned short,FIXNUM_P,
778 FIX2INT,INT2NUM,
779 double,SWIG_FLOAT_P,
780 SWIG_NUM2DBL,rb_float_new);
781 specialize_std_pair_on_both(unsigned short,FIXNUM_P,
782 FIX2INT,INT2NUM,
783 float,SWIG_FLOAT_P,
784 SWIG_NUM2DBL,rb_float_new);
785 specialize_std_pair_on_both(unsigned short,FIXNUM_P,
786 FIX2INT,INT2NUM,
787 std::string,SWIG_STRING_P,
788 SWIG_RB2STR,SWIG_STR2RB);
789 specialize_std_pair_on_both(unsigned long,FIXNUM_P,
790 FIX2INT,INT2NUM,
791 bool,SWIG_BOOL_P,
792 SWIG_RB2BOOL,SWIG_BOOL2RB);
793 specialize_std_pair_on_both(unsigned long,FIXNUM_P,
794 FIX2INT,INT2NUM,
795 int,FIXNUM_P,
796 FIX2INT,INT2NUM);
797 specialize_std_pair_on_both(unsigned long,FIXNUM_P,
798 FIX2INT,INT2NUM,
799 short,FIXNUM_P,
800 FIX2INT,INT2NUM);
801 specialize_std_pair_on_both(unsigned long,FIXNUM_P,
802 FIX2INT,INT2NUM,
803 long,FIXNUM_P,
804 FIX2INT,INT2NUM);
805 specialize_std_pair_on_both(unsigned long,FIXNUM_P,
806 FIX2INT,INT2NUM,
807 unsigned int,FIXNUM_P,
808 FIX2INT,INT2NUM);
809 specialize_std_pair_on_both(unsigned long,FIXNUM_P,
810 FIX2INT,INT2NUM,
811 unsigned short,FIXNUM_P,
812 FIX2INT,INT2NUM);
813 specialize_std_pair_on_both(unsigned long,FIXNUM_P,
814 FIX2INT,INT2NUM,
815 unsigned long,FIXNUM_P,
816 FIX2INT,INT2NUM);
817 specialize_std_pair_on_both(unsigned long,FIXNUM_P,
818 FIX2INT,INT2NUM,
819 double,SWIG_FLOAT_P,
820 SWIG_NUM2DBL,rb_float_new);
821 specialize_std_pair_on_both(unsigned long,FIXNUM_P,
822 FIX2INT,INT2NUM,
823 float,SWIG_FLOAT_P,
824 SWIG_NUM2DBL,rb_float_new);
825 specialize_std_pair_on_both(unsigned long,FIXNUM_P,
826 FIX2INT,INT2NUM,
827 std::string,SWIG_STRING_P,
828 SWIG_RB2STR,SWIG_STR2RB);
829 specialize_std_pair_on_both(double,SWIG_FLOAT_P,
830 SWIG_NUM2DBL,rb_float_new,
831 bool,SWIG_BOOL_P,
832 SWIG_RB2BOOL,SWIG_BOOL2RB);
833 specialize_std_pair_on_both(double,SWIG_FLOAT_P,
834 SWIG_NUM2DBL,rb_float_new,
835 int,FIXNUM_P,
836 FIX2INT,INT2NUM);
837 specialize_std_pair_on_both(double,SWIG_FLOAT_P,
838 SWIG_NUM2DBL,rb_float_new,
839 short,FIXNUM_P,
840 FIX2INT,INT2NUM);
841 specialize_std_pair_on_both(double,SWIG_FLOAT_P,
842 SWIG_NUM2DBL,rb_float_new,
843 long,FIXNUM_P,
844 FIX2INT,INT2NUM);
845 specialize_std_pair_on_both(double,SWIG_FLOAT_P,
846 SWIG_NUM2DBL,rb_float_new,
847 unsigned int,FIXNUM_P,
848 FIX2INT,INT2NUM);
849 specialize_std_pair_on_both(double,SWIG_FLOAT_P,
850 SWIG_NUM2DBL,rb_float_new,
851 unsigned short,FIXNUM_P,
852 FIX2INT,INT2NUM);
853 specialize_std_pair_on_both(double,SWIG_FLOAT_P,
854 SWIG_NUM2DBL,rb_float_new,
855 unsigned long,FIXNUM_P,
856 FIX2INT,INT2NUM);
857 specialize_std_pair_on_both(double,SWIG_FLOAT_P,
858 SWIG_NUM2DBL,rb_float_new,
859 double,SWIG_FLOAT_P,
860 SWIG_NUM2DBL,rb_float_new);
861 specialize_std_pair_on_both(double,SWIG_FLOAT_P,
862 SWIG_NUM2DBL,rb_float_new,
863 float,SWIG_FLOAT_P,
864 SWIG_NUM2DBL,rb_float_new);
865 specialize_std_pair_on_both(double,SWIG_FLOAT_P,
866 SWIG_NUM2DBL,rb_float_new,
867 std::string,SWIG_STRING_P,
868 SWIG_RB2STR,SWIG_STR2RB);
869 specialize_std_pair_on_both(float,SWIG_FLOAT_P,
870 SWIG_NUM2DBL,rb_float_new,
871 bool,SWIG_BOOL_P,
872 SWIG_RB2BOOL,SWIG_BOOL2RB);
873 specialize_std_pair_on_both(float,SWIG_FLOAT_P,
874 SWIG_NUM2DBL,rb_float_new,
875 int,FIXNUM_P,
876 FIX2INT,INT2NUM);
877 specialize_std_pair_on_both(float,SWIG_FLOAT_P,
878 SWIG_NUM2DBL,rb_float_new,
879 short,FIXNUM_P,
880 FIX2INT,INT2NUM);
881 specialize_std_pair_on_both(float,SWIG_FLOAT_P,
882 SWIG_NUM2DBL,rb_float_new,
883 long,FIXNUM_P,
884 FIX2INT,INT2NUM);
885 specialize_std_pair_on_both(float,SWIG_FLOAT_P,
886 SWIG_NUM2DBL,rb_float_new,
887 unsigned int,FIXNUM_P,
888 FIX2INT,INT2NUM);
889 specialize_std_pair_on_both(float,SWIG_FLOAT_P,
890 SWIG_NUM2DBL,rb_float_new,
891 unsigned short,FIXNUM_P,
892 FIX2INT,INT2NUM);
893 specialize_std_pair_on_both(float,SWIG_FLOAT_P,
894 SWIG_NUM2DBL,rb_float_new,
895 unsigned long,FIXNUM_P,
896 FIX2INT,INT2NUM);
897 specialize_std_pair_on_both(float,SWIG_FLOAT_P,
898 SWIG_NUM2DBL,rb_float_new,
899 double,SWIG_FLOAT_P,
900 SWIG_NUM2DBL,rb_float_new);
901 specialize_std_pair_on_both(float,SWIG_FLOAT_P,
902 SWIG_NUM2DBL,rb_float_new,
903 float,SWIG_FLOAT_P,
904 SWIG_NUM2DBL,rb_float_new);
905 specialize_std_pair_on_both(float,SWIG_FLOAT_P,
906 SWIG_NUM2DBL,rb_float_new,
907 std::string,SWIG_STRING_P,
908 SWIG_RB2STR,SWIG_STR2RB);
909 specialize_std_pair_on_both(std::string,SWIG_STRING_P,
910 SWIG_RB2STR,SWIG_STR2RB,
911 bool,SWIG_BOOL_P,
912 SWIG_RB2BOOL,SWIG_BOOL2RB);
913 specialize_std_pair_on_both(std::string,SWIG_STRING_P,
914 SWIG_RB2STR,SWIG_STR2RB,
915 int,FIXNUM_P,
916 FIX2INT,INT2NUM);
917 specialize_std_pair_on_both(std::string,SWIG_STRING_P,
918 SWIG_RB2STR,SWIG_STR2RB,
919 short,FIXNUM_P,
920 FIX2INT,INT2NUM);
921 specialize_std_pair_on_both(std::string,SWIG_STRING_P,
922 SWIG_RB2STR,SWIG_STR2RB,
923 long,FIXNUM_P,
924 FIX2INT,INT2NUM);
925 specialize_std_pair_on_both(std::string,SWIG_STRING_P,
926 SWIG_RB2STR,SWIG_STR2RB,
927 unsigned int,FIXNUM_P,
928 FIX2INT,INT2NUM);
929 specialize_std_pair_on_both(std::string,SWIG_STRING_P,
930 SWIG_RB2STR,SWIG_STR2RB,
931 unsigned short,FIXNUM_P,
932 FIX2INT,INT2NUM);
933 specialize_std_pair_on_both(std::string,SWIG_STRING_P,
934 SWIG_RB2STR,SWIG_STR2RB,
935 unsigned long,FIXNUM_P,
936 FIX2INT,INT2NUM);
937 specialize_std_pair_on_both(std::string,SWIG_STRING_P,
938 SWIG_RB2STR,SWIG_STR2RB,
939 double,SWIG_FLOAT_P,
940 SWIG_NUM2DBL,rb_float_new);
941 specialize_std_pair_on_both(std::string,SWIG_STRING_P,
942 SWIG_RB2STR,SWIG_STR2RB,
943 float,SWIG_FLOAT_P,
944 SWIG_NUM2DBL,rb_float_new);
945 specialize_std_pair_on_both(std::string,SWIG_STRING_P,
946 SWIG_RB2STR,SWIG_STR2RB,
947 std::string,SWIG_STRING_P,
948 SWIG_RB2STR,SWIG_STR2RB);
949}