Annotation of OpenXM_contrib/gmp/demos/perl/typemap, Revision 1.1.1.1
1.1 ohara 1: # GMP module external subroutine type mappings.
2:
3: # Copyright 2001 Free Software Foundation, Inc.
4: #
5: # This file is part of the GNU MP Library.
6: #
7: # The GNU MP Library is free software; you can redistribute it and/or modify
8: # it under the terms of the GNU Lesser General Public License as published
9: # by the Free Software Foundation; either version 2.1 of the License, or (at
10: # your option) any later version.
11: #
12: # The GNU MP Library is distributed in the hope that it will be useful, but
13: # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14: # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15: # License for more details.
16: #
17: # You should have received a copy of the GNU Lesser General Public License
18: # along with the GNU MP Library; see the file COPYING.LIB. If not, write to
19: # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
20: # MA 02111-1307, USA.
21:
22:
23: TYPEMAP
24: const_string T_PV
25: const_string_assume CONST_STRING_ASSUME
26: mpz MPZ
27: mpq MPQ
28: mpf MPF
29: mpz_assume MPZ_ASSUME
30: mpq_assume MPQ_ASSUME
31: mpf_assume MPF_ASSUME
32: mpz_coerce MPZ_COERCE
33: mpq_coerce MPQ_COERCE
34: mpf_coerce_st0 MPF_COERCE_ST0
35: mpf_coerce_def MPF_COERCE_DEF
36: mpz_mutate MPZ_MUTATE
37: randstate RANDSTATE
38: ulong_coerce ULONG_COERCE
39: malloced_string MALLOCED_STRING
40: order_noswap ORDER_NOSWAP
41: dummy DUMMY
42:
43:
44: INPUT
45: MPZ
46: class_or_croak ($arg, mpz_class); $var = SvMPZ($arg);
47: MPQ
48: class_or_croak ($arg, mpq_class); $var = SvMPQ($arg);
49: MPF
50: class_or_croak ($arg, mpf_class); $var = SvMPF($arg);
51: MPZ_ASSUME
52: MPZ_ASSUME ($var, $arg)
53: MPQ_ASSUME
54: MPQ_ASSUME ($var, $arg)
55: MPF_ASSUME
56: MPF_ASSUME ($var, $arg)
57: MPZ_COERCE
58: $var = coerce_mpz (tmp_mpz_${(my $stnum=$arg)=~s/[^0-9]//g;\$stnum}, $arg)
59: MPQ_COERCE
60: $var = coerce_mpq (tmp_mpq_${(my $stnum=$arg)=~s/[^0-9]//g;\$stnum}, $arg)
61: MPF_COERCE_ST0
62: /* precision follows ST(0) */
63: assert (sv_derived_from (ST(0), mpf_class));
64: $var = coerce_mpf (tmp_mpf_${(my $stnum=$arg)=~s/[^0-9]//g;\$stnum},
65: $arg, mpf_get_prec (SvMPF(ST(0))))
66: MPF_COERCE_DEF
67: /* default precision used */
68: $var = coerce_mpf (tmp_mpf_${(my $stnum=$arg)=~s/[^0-9]//g;\$stnum},
69: $arg, mpf_get_default_prec())
70: MPZ_MUTATE
71: $var = mutate_mpz ($arg)
72: RANDSTATE
73: class_or_croak ($arg, rand_class); $var = SvRANDSTATE($arg);
74: ULONG_COERCE
75: $var = coerce_ulong ($arg)
76: ORDER_NOSWAP
77: assert ($arg != &PL_sv_yes);
78: DUMMY
79: /* dummy $var */
80: CONST_STRING_ASSUME
81: /* No need to check for SvPOKp and use SvPV, this mapping is
82: only used for overload_constant, which always gets literal
83: strings. */
84: assert (SvPOK ($arg));
85: $var = SvPVX ($arg);
86:
87:
88: OUTPUT
89: MPZ
90: sv_setref_pv ($arg, mpz_class, $var);
91: MPQ
92: sv_setref_pv ($arg, mpq_class, $var);
93: MPF
94: sv_setref_pv ($arg, mpf_class, $var);
95: MPZ_ASSUME
96: sv_setref_pv ($arg, mpz_class, $var);
97: MPQ_ASSUME
98: sv_setref_pv ($arg, mpq_class, $var);
99: MPF_ASSUME
100: sv_setref_pv ($arg, mpf_class, $var);
101: RANDSTATE
102: sv_setref_pv ($arg, rand_class, $var);
103: MALLOCED_STRING
104: sv_usepvn_mg ($arg, $var, strlen($var));
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>