Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
typemap
Package: gmp-5.0.1.tar.gz [view]
Upload User: qaz666999
Upload Date: 2022-08-06
Package Size: 2570k
Code Size: 3k
Category:
Algorithm
Development Platform:
Unix_Linux
- # GMP module external subroutine type mappings.
- # Copyright 2001, 2003 Free Software Foundation, Inc.
- #
- # This file is part of the GNU MP Library.
- #
- # The GNU MP Library is free software; you can redistribute it and/or modify
- # it under the terms of the GNU Lesser General Public License as published
- # by the Free Software Foundation; either version 3 of the License, or (at
- # your option) any later version.
- #
- # The GNU MP Library is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- # License for more details.
- #
- # You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see http://www.gnu.org/licenses/.
- TYPEMAP
- const_string T_PV
- const_string_assume CONST_STRING_ASSUME
- mpz MPZ
- mpq MPQ
- mpf MPF
- mpz_assume MPZ_ASSUME
- mpq_assume MPQ_ASSUME
- mpf_assume MPF_ASSUME
- mpz_coerce MPZ_COERCE
- mpq_coerce MPQ_COERCE
- mpf_coerce_st0 MPF_COERCE_ST0
- mpf_coerce_def MPF_COERCE_DEF
- randstate RANDSTATE
- ulong_coerce ULONG_COERCE
- malloced_string MALLOCED_STRING
- order_noswap ORDER_NOSWAP
- dummy DUMMY
- # perl 5.005 doesn't have UV in its standard typemap, so use this instead
- gmp_UV GMP_UV
- INPUT
- MPZ
- class_or_croak ($arg, mpz_class); $var = SvMPZ($arg);
- MPQ
- class_or_croak ($arg, mpq_class); $var = SvMPQ($arg);
- MPF
- class_or_croak ($arg, mpf_class); $var = SvMPF($arg);
- MPZ_ASSUME
- MPZ_ASSUME ($var, $arg)
- MPQ_ASSUME
- MPQ_ASSUME ($var, $arg)
- MPF_ASSUME
- MPF_ASSUME ($var, $arg)
- MPZ_COERCE
- $var = coerce_mpz (tmp_mpz_${(my $stnum=$arg)=~s/[^0-9]//g;$stnum}, $arg)
- MPQ_COERCE
- $var = coerce_mpq (tmp_mpq_${(my $stnum=$arg)=~s/[^0-9]//g;$stnum}, $arg)
- MPF_COERCE_ST0
- /* precision follows ST(0) */
- assert (sv_derived_from (ST(0), mpf_class));
- $var = coerce_mpf (tmp_mpf_${(my $stnum=$arg)=~s/[^0-9]//g;$stnum},
- $arg, mpf_get_prec (SvMPF(ST(0))))
- MPF_COERCE_DEF
- /* default precision used */
- $var = coerce_mpf (tmp_mpf_${(my $stnum=$arg)=~s/[^0-9]//g;$stnum},
- $arg, mpf_get_default_prec())
- RANDSTATE
- class_or_croak ($arg, rand_class); $var = SvRANDSTATE($arg);
- ULONG_COERCE
- $var = coerce_ulong ($arg)
- ORDER_NOSWAP
- assert ($arg != &PL_sv_yes);
- DUMMY
- /* dummy $var */
- CONST_STRING_ASSUME
- /* No need to check for SvPOKp and use SvPV, this mapping is
- only used for overload_constant, which always gets literal
- strings. */
- assert (SvPOK ($arg));
- $var = SvPVX ($arg);
- OUTPUT
- MPZ
- sv_bless (sv_setref_pv ($arg, NULL, $var), mpz_class_hv);
- MPQ
- sv_bless (sv_setref_pv ($arg, NULL, $var), mpq_class_hv);
- MPF
- sv_bless (sv_setref_pv ($arg, NULL, $var), mpf_class_hv);
- RANDSTATE
- sv_setref_pv ($arg, rand_class, $var);
- MALLOCED_STRING
- sv_usepvn_mg ($arg, $var, strlen($var));
- GMP_UV
- sv_setuv ($arg, (UV) ($var));