[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     ! 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>