[BACK]Return to typemap CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / demos / perl

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>