Annotation of OpenXM_contrib/gmp/demos/perl/typemap, Revision 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>