From 39b98658a9efefcbc1abd850134a060ba296d899 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 23 Dec 2016 10:59:16 +0100 Subject: [PATCH] - added all mpir files for linux --- src/external/inc/linux-g++/mpir-2.4.0/mpir.h | 2413 ++++++++++++ .../inc/linux-g++/mpir-2.4.0/mpirxx.h | 3403 +++++++++++++++++ src/external/lib/linux-g++/libmpir.a | Bin 0 -> 1299966 bytes src/external/lib/linux-g++/libmpirxx.a | Bin 0 -> 41644 bytes 4 files changed, 5816 insertions(+) create mode 100644 src/external/inc/linux-g++/mpir-2.4.0/mpir.h create mode 100644 src/external/inc/linux-g++/mpir-2.4.0/mpirxx.h create mode 100644 src/external/lib/linux-g++/libmpir.a create mode 100644 src/external/lib/linux-g++/libmpirxx.a diff --git a/src/external/inc/linux-g++/mpir-2.4.0/mpir.h b/src/external/inc/linux-g++/mpir-2.4.0/mpir.h new file mode 100644 index 000000000..efffdd47e --- /dev/null +++ b/src/external/inc/linux-g++/mpir-2.4.0/mpir.h @@ -0,0 +1,2413 @@ +/* Definitions for GNU multiple precision functions. -*- mode: c -*- + +Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, +2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. + +Copyright 2008 William Hart, Gonzalo Tornaria + +This file is part of the MPIR Library. + +The MPIR 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 MPIR 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/. */ + +#ifndef __GMP_H__ + +#if defined (__cplusplus) +#include /* for std::istream, std::ostream, std::string */ +#include +#endif + + +/* Instantiated by configure. */ +#if ! defined (__GMP_WITHIN_CONFIGURE) +#define __GMP_BITS_PER_MP_LIMB 64 +#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 +#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 +#define GMP_LIMB_BITS 64 +#define GMP_NAIL_BITS 0 +#endif +#define GMP_NUMB_BITS (GMP_LIMB_BITS - GMP_NAIL_BITS) +#define GMP_NUMB_MASK ((~ __GMP_CAST (mp_limb_t, 0)) >> GMP_NAIL_BITS) +#define GMP_NUMB_MAX GMP_NUMB_MASK +#define GMP_NAIL_MASK (~ GMP_NUMB_MASK) + + +#ifndef __GNU_MP__ +#define __GNU_MP__ 4 + +#define __need_size_t /* tell gcc stddef.h we only want size_t */ +#if defined (__cplusplus) +#include /* for size_t */ +#else +#include /* for size_t */ +#endif +#undef __need_size_t + +/* Instantiated by configure. */ +#if ! defined (__GMP_WITHIN_CONFIGURE) +/* #undef _LONG_LONG_LIMB */ +#define __GMP_LIBGMP_DLL 0 +#endif + +/* #if defined(__GMP_WITHIN_CONFIGURE) && defined(_WIN64) */ +#ifdef __WIN64 +#define _LONG_LONG_LIMB 1 +#endif + +/* __STDC__ - some ANSI compilers define this only to 0, hence the use of + "defined" and not "__STDC__-0". In particular Sun workshop C 5.0 + sets __STDC__ to 0, but requires "##" for token pasting. + + _AIX - gnu ansidecl.h asserts that all known AIX compilers are ANSI but + don't always define __STDC__. + + __DECC - current versions of DEC C (5.9 for instance) for alpha are ANSI, + but don't define __STDC__ in their default mode. Don't know if old + versions might have been K&R, but let's not worry about that unless + someone is still using one. + + _mips - gnu ansidecl.h says the RISC/OS MIPS compiler is ANSI in SVR4 + mode, but doesn't define __STDC__. + + _MSC_VER - Microsoft C is ANSI, but __STDC__ is undefined unless the /Za + option is given (in which case it's 1). + + _WIN32 - tested for by gnu ansidecl.h, no doubt on the assumption that + all w32 compilers are ansi. + + Note: This same set of tests is used by gen-psqr.c and + demos/expr/expr-impl.h, so if anything needs adding, then be sure to + update those too. */ + +#if defined (__STDC__) \ + || defined (__cplusplus) \ + || defined (_AIX) \ + || defined (__DECC) \ + || (defined (__mips) && defined (_SYSTYPE_SVR4)) \ + || defined (_MSC_VER) \ + || defined (_WIN32) +#define __GMP_HAVE_CONST 1 +#define __GMP_HAVE_PROTOTYPES 1 +#define __GMP_HAVE_TOKEN_PASTE 1 +#else +#define __GMP_HAVE_CONST 0 +#define __GMP_HAVE_PROTOTYPES 0 +#define __GMP_HAVE_TOKEN_PASTE 0 +#endif + + +#if __GMP_HAVE_CONST +#define __gmp_const const +#define __gmp_signed signed +#else +#define __gmp_const +#define __gmp_signed +#endif + + +/* __GMP_DECLSPEC supports Windows DLL versions of libmpir, and is empty in + all other circumstances. + + When compiling objects for libmpir, __GMP_DECLSPEC is an export directive, + or when compiling for an application it's an import directive. The two + cases are differentiated by __GMP_WITHIN_GMP defined by the GMP Makefiles + (and not defined from an application). + + __GMP_DECLSPEC_XX is similarly used for libmpirxx. __GMP_WITHIN_GMPXX + indicates when building libmpirxx, and in that case libmpirxx functions are + exports, but libmpir functions which might get called are imports. + + libmp.la uses __GMP_DECLSPEC, just as if it were libmpir.la. libmpir and + libmp don't call each other, so there's no conflict or confusion. + + Libtool DLL_EXPORT define is not used. + + There's no attempt to support GMP built both static and DLL. Doing so + would mean applications would have to tell us which of the two is going + to be used when linking, and that seems very tedious and error prone if + using GMP by hand, and equally tedious from a package since autoconf and + automake don't give much help. + + __GMP_DECLSPEC is required on all documented global functions and + variables, the various internals in gmp-impl.h etc can be left unadorned. + But internals used by the test programs or speed measuring programs + should have __GMP_DECLSPEC, and certainly constants or variables must + have it or the wrong address will be resolved. + + In gcc __declspec can go at either the start or end of a prototype. + + In Microsoft C __declspec must go at the start, or after the type like + void __declspec(...) *foo()". There's no __dllexport or anything to + guard against someone foolish #defining dllexport. _export used to be + available, but no longer. + + In Borland C _export still exists, but needs to go after the type, like + "void _export foo();". Would have to change the __GMP_DECLSPEC syntax to + make use of that. Probably more trouble than it's worth. */ + +#if defined (__GNUC__) +#define __GMP_DECLSPEC_EXPORT __declspec(__dllexport__) +#define __GMP_DECLSPEC_IMPORT __declspec(__dllimport__) +#endif +#if defined (_MSC_VER) || defined (__BORLANDC__) +#define __GMP_DECLSPEC_EXPORT __declspec(dllexport) +#define __GMP_DECLSPEC_IMPORT __declspec(dllimport) +#endif +#ifdef __WATCOMC__ +#define __GMP_DECLSPEC_EXPORT __export +#define __GMP_DECLSPEC_IMPORT __import +#endif +#ifdef __IBMC__ +#define __GMP_DECLSPEC_EXPORT _Export +#define __GMP_DECLSPEC_IMPORT _Import +#endif + +#if __GMP_LIBGMP_DLL +#if __GMP_WITHIN_GMP +/* compiling to go into a DLL libmpir */ +#define __GMP_DECLSPEC __GMP_DECLSPEC_EXPORT +#else +/* compiling to go into an application which will link to a DLL libmpir */ +#define __GMP_DECLSPEC __GMP_DECLSPEC_IMPORT +#endif +#else +/* all other cases */ +#define __GMP_DECLSPEC +#endif + + +#ifdef __GMP_SHORT_LIMB +typedef unsigned int mp_limb_t; +typedef int mp_limb_signed_t; +#else +#ifdef _LONG_LONG_LIMB +typedef unsigned long long int mp_limb_t; +typedef long long int mp_limb_signed_t; +#else +typedef unsigned long int mp_limb_t; +typedef long int mp_limb_signed_t; +#endif +#endif + +#ifdef _WIN64 +typedef unsigned long long int mp_bitcnt_t; +#define __GMP_BITCNT_MAX (~(unsigned long long) 0) +#else +typedef unsigned long int mp_bitcnt_t; +#define __GMP_BITCNT_MAX (~(unsigned long) 0) +#endif + +/* For reference, note that the name __mpz_struct gets into C++ mangled + function names, which means although the "__" suggests an internal, we + must leave this name for binary compatibility. */ +typedef struct +{ + int _mp_alloc; /* Number of *limbs* allocated and pointed + to by the _mp_d field. */ + int _mp_size; /* abs(_mp_size) is the number of limbs the + last field points to. If _mp_size is + negative this is a negative number. */ + mp_limb_t *_mp_d; /* Pointer to the limbs. */ +} __mpz_struct; + +#endif /* __GNU_MP__ */ + +typedef __mpz_struct mpz_t[1]; + +typedef mp_limb_t * mp_ptr; +typedef __gmp_const mp_limb_t * mp_srcptr; +#if defined( _WIN64) +#define __GMP_MP_SIZE_T_INT 0 +typedef long long int mp_size_t; +typedef long int mp_exp_t; +#else +#define __GMP_MP_SIZE_T_INT 0 +typedef long int mp_size_t; +typedef long int mp_exp_t; +#endif + +typedef struct +{ + __mpz_struct _mp_num; + __mpz_struct _mp_den; +} __mpq_struct; + +typedef __mpq_struct mpq_t[1]; + +typedef struct +{ + int _mp_prec; /* Max precision, in number of `mp_limb_t's. + Set by mpf_init and modified by + mpf_set_prec. The area pointed to by the + _mp_d field contains `prec' + 1 limbs. */ + int _mp_size; /* abs(_mp_size) is the number of limbs the + last field points to. If _mp_size is + negative this is a negative number. */ + mp_exp_t _mp_exp; /* Exponent, in the base of `mp_limb_t'. */ + mp_limb_t *_mp_d; /* Pointer to the limbs. */ +} __mpf_struct; + +typedef __mpf_struct mpf_t[1]; + +/* Available random number generation algorithms. */ +typedef enum +{ + GMP_RAND_ALG_DEFAULT = 0, + GMP_RAND_ALG_LC = GMP_RAND_ALG_DEFAULT /* Linear congruential. */ +} gmp_randalg_t; + +/* Random state struct. */ +typedef struct +{ + mpz_t _mp_seed; /* _mp_d member points to state of the generator. */ + gmp_randalg_t _mp_alg; /* Currently unused. */ + union { + void *_mp_lc; /* Pointer to function pointers structure. */ + } _mp_algdata; +} __gmp_randstate_struct; +typedef __gmp_randstate_struct gmp_randstate_t[1]; + +/* Types for function declarations in gmp files. */ +/* ??? Should not pollute user name space with these ??? */ +typedef __gmp_const __mpz_struct *mpz_srcptr; +typedef __mpz_struct *mpz_ptr; +typedef __gmp_const __mpf_struct *mpf_srcptr; +typedef __mpf_struct *mpf_ptr; +typedef __gmp_const __mpq_struct *mpq_srcptr; +typedef __mpq_struct *mpq_ptr; + + +#if __GMP_LIBGMP_DLL +#if __GMP_WITHIN_GMPXX +/* compiling to go into a DLL libmpirxx */ +#define __GMP_DECLSPEC_XX __GMP_DECLSPEC_EXPORT +#else +/* compiling to go into a application which will link to a DLL libmpirxx */ +#define __GMP_DECLSPEC_XX __GMP_DECLSPEC_IMPORT +#endif +#else +/* all other cases */ +#define __GMP_DECLSPEC_XX +#endif + + +#if __GMP_HAVE_PROTOTYPES +#define __GMP_PROTO(x) x +#else +#define __GMP_PROTO(x) () +#endif + +#ifndef __MPN +#if __GMP_HAVE_TOKEN_PASTE +#define __MPN(x) __gmpn_##x +#else +#define __MPN(x) __gmpn_/**/x +#endif +#endif + +/* For reference, "defined(EOF)" cannot be used here. In g++ 2.95.4, + defines EOF but not FILE. */ +#if defined (FILE) \ + || defined (H_STDIO) \ + || defined (_H_STDIO) /* AIX */ \ + || defined (_STDIO_H) /* glibc, Sun, SCO */ \ + || defined (_STDIO_H_) /* BSD, OSF */ \ + || defined (__STDIO_H) /* Borland */ \ + || defined (__STDIO_H__) /* IRIX */ \ + || defined (_STDIO_INCLUDED) /* HPUX */ \ + || defined (_FILE_DEFINED) /* Microsoft */ \ + || defined (__STDIO__) /* Apple MPW MrC */ \ + || defined (_MSL_STDIO_H) /* Metrowerks */ \ + || defined (_STDIO_H_INCLUDED) /* QNX4 */ \ + || defined (_ISO_STDIO_ISO_H) /* Sun C++ */ +#define _GMP_H_HAVE_FILE 1 +#endif + +/* In ISO C, if a prototype involving "struct obstack *" is given without + that structure defined, then the struct is scoped down to just the + prototype, causing a conflict if it's subsequently defined for real. So + only give prototypes if we've got obstack.h. */ +#if defined (_OBSTACK_H) /* glibc */ +#define _GMP_H_HAVE_OBSTACK 1 +#endif + +/* The prototypes for gmp_vprintf etc are provided only if va_list is + available, via an application having included or . + Usually va_list is a typedef so can't be tested directly, but C99 + specifies that va_start is a macro (and it was normally a macro on past + systems too), so look for that. + + will define some sort of va_list for vprintf and vfprintf, but + let's not bother trying to use that since it's not standard and since + application uses for gmp_vprintf etc will almost certainly require the + whole or anyway. */ + +#ifdef va_start +#define _GMP_H_HAVE_VA_LIST 1 +#endif + +/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */ +#if defined (__GNUC__) && defined (__GNUC_MINOR__) +#define __GMP_GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +#define __GMP_GNUC_PREREQ(maj, min) 0 +#endif + +/* "pure" is in gcc 2.96 and up, see "(gcc)Function Attributes". Basically + it means a function does nothing but examine its arguments and memory + (global or via arguments) to generate a return value, but changes nothing + and has no side-effects. __GMP_NO_ATTRIBUTE_CONST_PURE lets + tune/common.c etc turn this off when trying to write timing loops. */ +#if __GMP_GNUC_PREREQ (2,96) && ! defined (__GMP_NO_ATTRIBUTE_CONST_PURE) +#define __GMP_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +#define __GMP_ATTRIBUTE_PURE +#endif + + +/* __GMP_CAST allows us to use static_cast in C++, so our macros are clean + to "g++ -Wold-style-cast". + + Casts in "extern inline" code within an extern "C" block don't induce + these warnings, so __GMP_CAST only needs to be used on documented + macros. */ + +#ifdef __cplusplus +#define __GMP_CAST(type, expr) (static_cast (expr)) +#else +#define __GMP_CAST(type, expr) ((type) (expr)) +#endif + + +/* An empty "throw ()" means the function doesn't throw any C++ exceptions, + this can save some stack frame info in applications. + + Currently it's given only on functions which never divide-by-zero etc, + don't allocate memory, and are expected to never need to allocate memory. + This leaves open the possibility of a C++ throw from a future GMP + exceptions scheme. + + mpz_set_ui etc are omitted to leave open the lazy allocation scheme + described in doc/tasks.html. mpz_get_d etc are omitted to leave open + exceptions for float overflows. + + Note that __GMP_NOTHROW must be given on any inlines the same as on their + prototypes (for g++ at least, where they're used together). Note also + that g++ 3.0 demands that __GMP_NOTHROW is before other attributes like + __GMP_ATTRIBUTE_PURE. */ + +#if defined (__cplusplus) +#define __GMP_NOTHROW throw () +#else +#define __GMP_NOTHROW +#endif + +/* PORTME: What other compilers have a useful "extern inline"? "static + inline" would be an acceptable substitute if the compiler (or linker) + discards unused statics. */ + +/* gcc has __inline__ in all modes, including strict ansi. Give a prototype + for an inline too, so as to correctly specify "dllimport" on windows, in + case the function is called rather than inlined. */ + +#ifdef __GNUC__ +#if defined(__APPLE_CC__) && (__APPLE_CC__ != 1) /* FSF GCC sets this flag to 1 on Apple machines */ + +#if ! (__APPLE_CC__ >= 5465 && __STDC_VERSION__ >= 199901L) +#define __GMP_EXTERN_INLINE extern __inline__ +#define __GMP_INLINE_PROTOTYPES 1 +#endif + +#else /*GNU CC*/ + +#if defined(__GNUC_STDC_INLINE__) || defined (__GNUC_GNU_INLINE__) +#define __GMP_EXTERN_INLINE extern __inline__ __attribute__((__gnu_inline__)) +#else +#define __GMP_EXTERN_INLINE extern __inline__ +#endif +#define __GMP_INLINE_PROTOTYPES 1 + +#endif +#endif + +/* DEC C (eg. version 5.9) supports "static __inline foo()", even in -std1 + strict ANSI mode. Inlining is done even when not optimizing (ie. -O0 + mode, which is the default), but an unnecessary local copy of foo is + emitted unless -O is used. "extern __inline" is accepted, but the + "extern" appears to be ignored, ie. it becomes a plain global function + but which is inlined within its file. Don't know if all old versions of + DEC C supported __inline, but as a start let's do the right thing for + current versions. */ +#ifdef __DECC +#define __GMP_EXTERN_INLINE static __inline +#endif + +/* SCO OpenUNIX 8 cc supports "static inline foo()" but not in -Xc strict + ANSI mode (__STDC__ is 1 in that mode). Inlining only actually takes + place under -O. Without -O "foo" seems to be emitted whether it's used + or not, which is wasteful. "extern inline foo()" isn't useful, the + "extern" is apparently ignored, so foo is inlined if possible but also + emitted as a global, which causes multiple definition errors when + building a shared libmpir. */ +#ifdef __SCO_VERSION__ +#if __SCO_VERSION__ > 400000000 && __STDC__ != 1 \ + && ! defined (__GMP_EXTERN_INLINE) +#define __GMP_EXTERN_INLINE static inline +#endif +#endif + +#if defined _MSC_VER +#define __GMP_EXTERN_INLINE static __inline +#endif + +/* C++ always has "inline" and since it's a normal feature the linker should + discard duplicate non-inlined copies, or if it doesn't then that's a + problem for everyone, not just GMP. */ +#if defined (__cplusplus) && ! defined (__GMP_EXTERN_INLINE) +#define __GMP_EXTERN_INLINE inline +#endif + +/* Don't do any inlining within a configure run, since if the compiler ends + up emitting copies of the code into the object file it can end up + demanding the various support routines (like mpn_popcount) for linking, + making the "alloca" test and perhaps others fail. And on hppa ia64 a + pre-release gcc 3.2 was seen not respecting the "extern" in "extern + __inline__", triggering this problem too. */ +#if defined (__GMP_WITHIN_CONFIGURE) && ! __GMP_WITHIN_CONFIGURE_INLINE +#undef __GMP_EXTERN_INLINE +#endif + +/* By default, don't give a prototype when there's going to be an inline + version. Note in particular that Cray C++ objects to the combination of + prototype and inline. */ +#ifdef __GMP_EXTERN_INLINE +#ifndef __GMP_INLINE_PROTOTYPES +#define __GMP_INLINE_PROTOTYPES 0 +#endif +#else +#define __GMP_INLINE_PROTOTYPES 1 +#endif + + +#define __GMP_ABS(x) ((x) >= 0 ? (x) : -(x)) +#define __GMP_MAX(h,i) ((h) > (i) ? (h) : (i)) + +/* __GMP_USHRT_MAX is not "~ (unsigned short) 0" because short is promoted + to int by "~". */ +#define __GMP_UINT_MAX (~ (unsigned) 0) +#define __GMP_ULONG_MAX (~ (unsigned long) 0) +#define __GMP_USHRT_MAX ((unsigned short) ~0) + + +/* __builtin_expect is in gcc 3.0, and not in 2.95. */ +#if __GMP_GNUC_PREREQ (3,0) +#define __GMP_LIKELY(cond) __builtin_expect ((cond) != 0, 1) +#define __GMP_UNLIKELY(cond) __builtin_expect ((cond) != 0, 0) +#else +#define __GMP_LIKELY(cond) (cond) +#define __GMP_UNLIKELY(cond) (cond) +#endif + +/* Allow direct user access to numerator and denominator of a mpq_t object. */ +#define mpq_numref(Q) (&((Q)->_mp_num)) +#define mpq_denref(Q) (&((Q)->_mp_den)) + + +#if defined (__cplusplus) +extern "C" { +using std::FILE; +#endif + +#define mp_set_memory_functions __gmp_set_memory_functions +__GMP_DECLSPEC void mp_set_memory_functions __GMP_PROTO ((void *(*) (size_t), + void *(*) (void *, size_t, size_t), + void (*) (void *, size_t))) __GMP_NOTHROW; + +#define mp_get_memory_functions __gmp_get_memory_functions +__GMP_DECLSPEC void mp_get_memory_functions __GMP_PROTO ((void *(**) (size_t), + void *(**) (void *, size_t, size_t), + void (**) (void *, size_t))) __GMP_NOTHROW; + +#define mp_bits_per_limb __gmp_bits_per_limb +__GMP_DECLSPEC extern __gmp_const int mp_bits_per_limb; + +#define gmp_errno __gmp_errno +__GMP_DECLSPEC extern int gmp_errno; + +#define gmp_version __gmp_version +__GMP_DECLSPEC extern __gmp_const char * __gmp_const gmp_version; + +#define mpir_version __mpir_version +__GMP_DECLSPEC extern __gmp_const char * __gmp_const mpir_version; + + +/**************** Random number routines. ****************/ + +#define gmp_randinit_default __gmp_randinit_default +__GMP_DECLSPEC void gmp_randinit_default __GMP_PROTO ((gmp_randstate_t)); + +#define gmp_randinit_lc_2exp __gmp_randinit_lc_2exp +__GMP_DECLSPEC void gmp_randinit_lc_2exp __GMP_PROTO ((gmp_randstate_t, + mpz_srcptr, unsigned long int, + mp_bitcnt_t)); + +#define gmp_randinit_lc_2exp_size __gmp_randinit_lc_2exp_size +__GMP_DECLSPEC int gmp_randinit_lc_2exp_size __GMP_PROTO ((gmp_randstate_t, mp_bitcnt_t)); + +#define gmp_randinit_mt __gmp_randinit_mt +__GMP_DECLSPEC void gmp_randinit_mt __GMP_PROTO ((gmp_randstate_t)); + +#define gmp_randinit_set __gmp_randinit_set +__GMP_DECLSPEC void gmp_randinit_set __GMP_PROTO ((gmp_randstate_t, __gmp_const __gmp_randstate_struct *)); + +#define gmp_randseed __gmp_randseed +__GMP_DECLSPEC void gmp_randseed __GMP_PROTO ((gmp_randstate_t, mpz_srcptr)); + +#define gmp_randseed_ui __gmp_randseed_ui +__GMP_DECLSPEC void gmp_randseed_ui __GMP_PROTO ((gmp_randstate_t, unsigned long int)); + +#define gmp_randclear __gmp_randclear +__GMP_DECLSPEC void gmp_randclear __GMP_PROTO ((gmp_randstate_t)); + +#define gmp_urandomb_ui __gmp_urandomb_ui +__GMP_DECLSPEC unsigned long gmp_urandomb_ui __GMP_PROTO ((gmp_randstate_t, unsigned long)); + +#define gmp_urandomm_ui __gmp_urandomm_ui +__GMP_DECLSPEC unsigned long gmp_urandomm_ui __GMP_PROTO ((gmp_randstate_t, unsigned long)); + + +/**************** Formatted output routines. ****************/ + +#define gmp_asprintf __gmp_asprintf +__GMP_DECLSPEC int gmp_asprintf __GMP_PROTO ((char **, __gmp_const char *, ...)); + +#define gmp_fprintf __gmp_fprintf +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC int gmp_fprintf __GMP_PROTO ((FILE *, __gmp_const char *, ...)); +#endif + +#define gmp_obstack_printf __gmp_obstack_printf +#if defined (_GMP_H_HAVE_OBSTACK) +__GMP_DECLSPEC int gmp_obstack_printf __GMP_PROTO ((struct obstack *, __gmp_const char *, ...)); +#endif + +#define gmp_obstack_vprintf __gmp_obstack_vprintf +#if defined (_GMP_H_HAVE_OBSTACK) && defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_obstack_vprintf __GMP_PROTO ((struct obstack *, __gmp_const char *, va_list)); +#endif + +#define gmp_printf __gmp_printf +__GMP_DECLSPEC int gmp_printf __GMP_PROTO ((__gmp_const char *, ...)); + +#define gmp_snprintf __gmp_snprintf +__GMP_DECLSPEC int gmp_snprintf __GMP_PROTO ((char *, size_t, __gmp_const char *, ...)); + +#define gmp_sprintf __gmp_sprintf +__GMP_DECLSPEC int gmp_sprintf __GMP_PROTO ((char *, __gmp_const char *, ...)); + +#define gmp_vasprintf __gmp_vasprintf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vasprintf __GMP_PROTO ((char **, __gmp_const char *, va_list)); +#endif + +#define gmp_vfprintf __gmp_vfprintf +#if defined (_GMP_H_HAVE_FILE) && defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vfprintf __GMP_PROTO ((FILE *, __gmp_const char *, va_list)); +#endif + +#define gmp_vprintf __gmp_vprintf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vprintf __GMP_PROTO ((__gmp_const char *, va_list)); +#endif + +#define gmp_vsnprintf __gmp_vsnprintf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vsnprintf __GMP_PROTO ((char *, size_t, __gmp_const char *, va_list)); +#endif + +#define gmp_vsprintf __gmp_vsprintf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vsprintf __GMP_PROTO ((char *, __gmp_const char *, va_list)); +#endif + + +/**************** Formatted input routines. ****************/ + +#define gmp_fscanf __gmp_fscanf +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC int gmp_fscanf __GMP_PROTO ((FILE *, __gmp_const char *, ...)); +#endif + +#define gmp_scanf __gmp_scanf +__GMP_DECLSPEC int gmp_scanf __GMP_PROTO ((__gmp_const char *, ...)); + +#define gmp_sscanf __gmp_sscanf +__GMP_DECLSPEC int gmp_sscanf __GMP_PROTO ((__gmp_const char *, __gmp_const char *, ...)); + +#define gmp_vfscanf __gmp_vfscanf +#if defined (_GMP_H_HAVE_FILE) && defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vfscanf __GMP_PROTO ((FILE *, __gmp_const char *, va_list)); +#endif + +#define gmp_vscanf __gmp_vscanf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vscanf __GMP_PROTO ((__gmp_const char *, va_list)); +#endif + +#define gmp_vsscanf __gmp_vsscanf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vsscanf __GMP_PROTO ((__gmp_const char *, __gmp_const char *, va_list)); +#endif + + +/**************** Integer (i.e. Z) routines. ****************/ + +#define __GMP_BITS_PER_ULONG (8*sizeof(unsigned long)) + +#define _mpz_realloc __gmpz_realloc +#define mpz_realloc __gmpz_realloc +__GMP_DECLSPEC void *_mpz_realloc __GMP_PROTO ((mpz_ptr, mp_size_t)); + +#define mpz_abs __gmpz_abs +#define __GMP_MPZ_ABS_MIN_ALLOC(x,y) (__GMP_ABS(y->_mp_size)) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_abs) +__GMP_DECLSPEC void mpz_abs __GMP_PROTO ((mpz_ptr, mpz_srcptr)); +#endif + +#define __GMP_MPZ_ADD_MIN_ALLOC(x,y,z) (__GMP_MAX(__GMP_ABS(y->_mp_size),__GMP_ABS(z->_mp_size))+1) +#define mpz_add __gmpz_add +__GMP_DECLSPEC void mpz_add __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define __GMP_MPZ_ADD_UI_MIN_ALLOC(x,y,z) (__GMP_MAX(__GMP_ABS(y->_mp_size),1+(__GMP_BITS_PER_ULONG-1)/GMP_NUMB_BITS)+1) +#define mpz_add_ui __gmpz_add_ui +__GMP_DECLSPEC void mpz_add_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_addmul __gmpz_addmul +__GMP_DECLSPEC void mpz_addmul __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_addmul_ui __gmpz_addmul_ui +__GMP_DECLSPEC void mpz_addmul_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_and __gmpz_and +__GMP_DECLSPEC void mpz_and __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_array_init __gmpz_array_init +__GMP_DECLSPEC void mpz_array_init __GMP_PROTO ((mpz_ptr, mp_size_t, mp_size_t)); + +#define mpz_bin_ui __gmpz_bin_ui +__GMP_DECLSPEC void mpz_bin_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_bin_uiui __gmpz_bin_uiui +__GMP_DECLSPEC void mpz_bin_uiui __GMP_PROTO ((mpz_ptr, unsigned long int, unsigned long int)); + +#define mpz_cdiv_q __gmpz_cdiv_q +__GMP_DECLSPEC void mpz_cdiv_q __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_cdiv_q_2exp __gmpz_cdiv_q_2exp +__GMP_DECLSPEC void mpz_cdiv_q_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); + +#define mpz_cdiv_q_ui __gmpz_cdiv_q_ui +__GMP_DECLSPEC unsigned long int mpz_cdiv_q_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_cdiv_qr __gmpz_cdiv_qr +__GMP_DECLSPEC void mpz_cdiv_qr __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_cdiv_qr_ui __gmpz_cdiv_qr_ui +__GMP_DECLSPEC unsigned long int mpz_cdiv_qr_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_cdiv_r __gmpz_cdiv_r +__GMP_DECLSPEC void mpz_cdiv_r __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_cdiv_r_2exp __gmpz_cdiv_r_2exp +__GMP_DECLSPEC void mpz_cdiv_r_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); + +#define mpz_cdiv_r_ui __gmpz_cdiv_r_ui +__GMP_DECLSPEC unsigned long int mpz_cdiv_r_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_cdiv_ui __gmpz_cdiv_ui +__GMP_DECLSPEC unsigned long int mpz_cdiv_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE; + +#define mpz_clear __gmpz_clear +__GMP_DECLSPEC void mpz_clear __GMP_PROTO ((mpz_ptr)); + +#define mpz_clears __gmpz_clears +__GMP_DECLSPEC void mpz_clears __GMP_PROTO ((mpz_ptr, ...)); + +#define mpz_clrbit __gmpz_clrbit +__GMP_DECLSPEC void mpz_clrbit __GMP_PROTO ((mpz_ptr, mp_bitcnt_t)); + +#define mpz_cmp __gmpz_cmp +__GMP_DECLSPEC int mpz_cmp __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_cmp_d __gmpz_cmp_d +__GMP_DECLSPEC int mpz_cmp_d __GMP_PROTO ((mpz_srcptr, double)) __GMP_ATTRIBUTE_PURE; + +#define _mpz_cmp_si __gmpz_cmp_si +__GMP_DECLSPEC int _mpz_cmp_si __GMP_PROTO ((mpz_srcptr, signed long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define _mpz_cmp_ui __gmpz_cmp_ui +__GMP_DECLSPEC int _mpz_cmp_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_cmpabs __gmpz_cmpabs +__GMP_DECLSPEC int mpz_cmpabs __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_cmpabs_d __gmpz_cmpabs_d +__GMP_DECLSPEC int mpz_cmpabs_d __GMP_PROTO ((mpz_srcptr, double)) __GMP_ATTRIBUTE_PURE; + +#define mpz_cmpabs_ui __gmpz_cmpabs_ui +__GMP_DECLSPEC int mpz_cmpabs_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_com __gmpz_com +__GMP_DECLSPEC void mpz_com __GMP_PROTO ((mpz_ptr, mpz_srcptr)); + +#define mpz_combit __gmpz_combit +__GMP_DECLSPEC void mpz_combit __GMP_PROTO ((mpz_ptr, mp_bitcnt_t)); + +#define mpz_congruent_p __gmpz_congruent_p +__GMP_DECLSPEC int mpz_congruent_p __GMP_PROTO ((mpz_srcptr, mpz_srcptr, mpz_srcptr)) __GMP_ATTRIBUTE_PURE; + +#define mpz_congruent_2exp_p __gmpz_congruent_2exp_p +__GMP_DECLSPEC int mpz_congruent_2exp_p __GMP_PROTO ((mpz_srcptr, mpz_srcptr, mp_bitcnt_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_congruent_ui_p __gmpz_congruent_ui_p +__GMP_DECLSPEC int mpz_congruent_ui_p __GMP_PROTO ((mpz_srcptr, unsigned long, unsigned long)) __GMP_ATTRIBUTE_PURE; + +#define mpz_divexact __gmpz_divexact +__GMP_DECLSPEC void mpz_divexact __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_divexact_ui __gmpz_divexact_ui +__GMP_DECLSPEC void mpz_divexact_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long)); + +#define mpz_divisible_p __gmpz_divisible_p +__GMP_DECLSPEC int mpz_divisible_p __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_ATTRIBUTE_PURE; + +#define mpz_divisible_ui_p __gmpz_divisible_ui_p +__GMP_DECLSPEC int mpz_divisible_ui_p __GMP_PROTO ((mpz_srcptr, unsigned long)) __GMP_ATTRIBUTE_PURE; + +#define mpz_divisible_2exp_p __gmpz_divisible_2exp_p +__GMP_DECLSPEC int mpz_divisible_2exp_p __GMP_PROTO ((mpz_srcptr, mp_bitcnt_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_dump __gmpz_dump +__GMP_DECLSPEC void mpz_dump __GMP_PROTO ((mpz_srcptr)); + +#define mpz_export __gmpz_export +__GMP_DECLSPEC void *mpz_export __GMP_PROTO ((void *, size_t *, int, size_t, int, size_t, mpz_srcptr)); + +#define mpz_fac_ui __gmpz_fac_ui +__GMP_DECLSPEC void mpz_fac_ui __GMP_PROTO ((mpz_ptr, unsigned long int)); + +#define mpz_fdiv_q __gmpz_fdiv_q +__GMP_DECLSPEC void mpz_fdiv_q __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_fdiv_q_2exp __gmpz_fdiv_q_2exp +__GMP_DECLSPEC void mpz_fdiv_q_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); + +#define mpz_fdiv_q_ui __gmpz_fdiv_q_ui +__GMP_DECLSPEC unsigned long int mpz_fdiv_q_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_fdiv_qr __gmpz_fdiv_qr +__GMP_DECLSPEC void mpz_fdiv_qr __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_fdiv_qr_ui __gmpz_fdiv_qr_ui +__GMP_DECLSPEC unsigned long int mpz_fdiv_qr_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_fdiv_r __gmpz_fdiv_r +__GMP_DECLSPEC void mpz_fdiv_r __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_fdiv_r_2exp __gmpz_fdiv_r_2exp +__GMP_DECLSPEC void mpz_fdiv_r_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); + +#define mpz_fdiv_r_ui __gmpz_fdiv_r_ui +__GMP_DECLSPEC unsigned long int mpz_fdiv_r_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_fdiv_ui __gmpz_fdiv_ui +__GMP_DECLSPEC unsigned long int mpz_fdiv_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE; + +#define mpz_fib_ui __gmpz_fib_ui +__GMP_DECLSPEC void mpz_fib_ui __GMP_PROTO ((mpz_ptr, unsigned long int)); + +#define mpz_fib2_ui __gmpz_fib2_ui +__GMP_DECLSPEC void mpz_fib2_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, unsigned long int)); + +#define mpz_fits_sint_p __gmpz_fits_sint_p +__GMP_DECLSPEC int mpz_fits_sint_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_fits_slong_p __gmpz_fits_slong_p +__GMP_DECLSPEC int mpz_fits_slong_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_fits_sshort_p __gmpz_fits_sshort_p +__GMP_DECLSPEC int mpz_fits_sshort_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_fits_uint_p __gmpz_fits_uint_p +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_uint_p) +__GMP_DECLSPEC int mpz_fits_uint_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_fits_ulong_p __gmpz_fits_ulong_p +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_ulong_p) +__GMP_DECLSPEC int mpz_fits_ulong_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_fits_ushort_p __gmpz_fits_ushort_p +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_ushort_p) +__GMP_DECLSPEC int mpz_fits_ushort_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_gcd __gmpz_gcd +__GMP_DECLSPEC void mpz_gcd __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_gcd_ui __gmpz_gcd_ui +__GMP_DECLSPEC unsigned long int mpz_gcd_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_gcdext __gmpz_gcdext +__GMP_DECLSPEC void mpz_gcdext __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_get_d __gmpz_get_d +__GMP_DECLSPEC double mpz_get_d __GMP_PROTO ((mpz_srcptr)) __GMP_ATTRIBUTE_PURE; + +#define mpz_get_d_2exp __gmpz_get_d_2exp +__GMP_DECLSPEC double mpz_get_d_2exp __GMP_PROTO ((signed long int *, mpz_srcptr)); + +#define mpz_get_si __gmpz_get_si +__GMP_DECLSPEC /* signed */ long int mpz_get_si __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_get_str __gmpz_get_str +__GMP_DECLSPEC char *mpz_get_str __GMP_PROTO ((char *, int, mpz_srcptr)); + +#define mpz_get_ui __gmpz_get_ui +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_get_ui) +__GMP_DECLSPEC unsigned long int mpz_get_ui __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_getlimbn __gmpz_getlimbn +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_getlimbn) +__GMP_DECLSPEC mp_limb_t mpz_getlimbn __GMP_PROTO ((mpz_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_hamdist __gmpz_hamdist +__GMP_DECLSPEC mp_bitcnt_t mpz_hamdist __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_import __gmpz_import +__GMP_DECLSPEC void mpz_import __GMP_PROTO ((mpz_ptr, size_t, int, size_t, int, size_t, __gmp_const void *)); + +#define mpz_init __gmpz_init +__GMP_DECLSPEC void mpz_init __GMP_PROTO ((mpz_ptr)); + +#define mpz_init2 __gmpz_init2 +__GMP_DECLSPEC void mpz_init2 __GMP_PROTO ((mpz_ptr, mp_bitcnt_t)); + +#define mpz_inits __gmpz_inits +__GMP_DECLSPEC void mpz_inits __GMP_PROTO ((mpz_ptr, ...)); + +#define mpz_init_set __gmpz_init_set +__GMP_DECLSPEC void mpz_init_set __GMP_PROTO ((mpz_ptr, mpz_srcptr)); + +#define mpz_init_set_d __gmpz_init_set_d +__GMP_DECLSPEC void mpz_init_set_d __GMP_PROTO ((mpz_ptr, double)); + +#define mpz_init_set_si __gmpz_init_set_si +__GMP_DECLSPEC void mpz_init_set_si __GMP_PROTO ((mpz_ptr, signed long int)); + +#define mpz_init_set_str __gmpz_init_set_str +__GMP_DECLSPEC int mpz_init_set_str __GMP_PROTO ((mpz_ptr, __gmp_const char *, int)); + +#define mpz_init_set_ui __gmpz_init_set_ui +__GMP_DECLSPEC void mpz_init_set_ui __GMP_PROTO ((mpz_ptr, unsigned long int)); + +#define mpz_inp_raw __gmpz_inp_raw +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpz_inp_raw __GMP_PROTO ((mpz_ptr, FILE *)); +#endif + +#define mpz_inp_str __gmpz_inp_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpz_inp_str __GMP_PROTO ((mpz_ptr, FILE *, int)); +#endif + +#define mpz_invert __gmpz_invert +__GMP_DECLSPEC int mpz_invert __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_ior __gmpz_ior +__GMP_DECLSPEC void mpz_ior __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_jacobi __gmpz_jacobi +__GMP_DECLSPEC int mpz_jacobi __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_ATTRIBUTE_PURE; + +#define mpz_kronecker mpz_jacobi /* alias */ + +#define mpz_kronecker_si __gmpz_kronecker_si +__GMP_DECLSPEC int mpz_kronecker_si __GMP_PROTO ((mpz_srcptr, long)) __GMP_ATTRIBUTE_PURE; + +#define mpz_kronecker_ui __gmpz_kronecker_ui +__GMP_DECLSPEC int mpz_kronecker_ui __GMP_PROTO ((mpz_srcptr, unsigned long)) __GMP_ATTRIBUTE_PURE; + +#define mpz_si_kronecker __gmpz_si_kronecker +__GMP_DECLSPEC int mpz_si_kronecker __GMP_PROTO ((long, mpz_srcptr)) __GMP_ATTRIBUTE_PURE; + +#define mpz_ui_kronecker __gmpz_ui_kronecker +__GMP_DECLSPEC int mpz_ui_kronecker __GMP_PROTO ((unsigned long, mpz_srcptr)) __GMP_ATTRIBUTE_PURE; + +#define mpz_lcm __gmpz_lcm +__GMP_DECLSPEC void mpz_lcm __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_lcm_ui __gmpz_lcm_ui +__GMP_DECLSPEC void mpz_lcm_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long)); + +#define mpz_legendre mpz_jacobi /* alias */ + +#define mpz_lucnum_ui __gmpz_lucnum_ui +__GMP_DECLSPEC void mpz_lucnum_ui __GMP_PROTO ((mpz_ptr, unsigned long int)); + +#define mpz_lucnum2_ui __gmpz_lucnum2_ui +__GMP_DECLSPEC void mpz_lucnum2_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, unsigned long int)); + +#define mpz_millerrabin __gmpz_millerrabin +__GMP_DECLSPEC int mpz_millerrabin __GMP_PROTO ((mpz_srcptr, int)) __GMP_ATTRIBUTE_PURE; + +#define mpz_mod __gmpz_mod +__GMP_DECLSPEC void mpz_mod __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_mod_ui mpz_fdiv_r_ui /* same as fdiv_r because divisor unsigned */ + +#define __GMP_MPZ_MUL_MIN_ALLOC(x,y,z) (__GMP_ABS(y->_mp_size)+__GMP_ABS(z->_mp_size)+1) +#define mpz_mul __gmpz_mul +__GMP_DECLSPEC void mpz_mul __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_mul_2exp __gmpz_mul_2exp +__GMP_DECLSPEC void mpz_mul_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); + +#define __GMP_MPZ_MUL_SI_MIN_ALLOC(x,y,z) (__GMP_ABS(y->_mp_size)+(__GMP_BITS_PER_ULONG-1)/GMP_NUMB_BITS+1) +#define mpz_mul_si __gmpz_mul_si +__GMP_DECLSPEC void mpz_mul_si __GMP_PROTO ((mpz_ptr, mpz_srcptr, long int)); + +#define __GMP_MPZ_MUL_UI_MIN_ALLOC(x,y,z) (__GMP_ABS(y->_mp_size)+(__GMP_BITS_PER_ULONG-1)/GMP_NUMB_BITS+1) +#define mpz_mul_ui __gmpz_mul_ui +__GMP_DECLSPEC void mpz_mul_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_neg __gmpz_neg +#define __GMP_MPZ_NEG_MIN_ALLOC(x,y) (__GMP_ABS(y->_mp_size)) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_neg) +__GMP_DECLSPEC void mpz_neg __GMP_PROTO ((mpz_ptr, mpz_srcptr)); +#endif + +#define mpz_nextprime __gmpz_nextprime +__GMP_DECLSPEC void mpz_nextprime __GMP_PROTO ((mpz_ptr, mpz_srcptr)); + +#define mpz_next_likely_prime __gmpz_next_likely_prime +__GMP_DECLSPEC void mpz_next_likely_prime __GMP_PROTO ((mpz_ptr, mpz_srcptr,gmp_randstate_t)); + +#define mpz_out_raw __gmpz_out_raw +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpz_out_raw __GMP_PROTO ((FILE *, mpz_srcptr)); +#endif + +#define mpz_out_str __gmpz_out_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpz_out_str __GMP_PROTO ((FILE *, int, mpz_srcptr)); +#endif + +#define mpz_perfect_power_p __gmpz_perfect_power_p +__GMP_DECLSPEC int mpz_perfect_power_p __GMP_PROTO ((mpz_srcptr)) __GMP_ATTRIBUTE_PURE; + +#define mpz_perfect_square_p __gmpz_perfect_square_p +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_perfect_square_p) +__GMP_DECLSPEC int mpz_perfect_square_p __GMP_PROTO ((mpz_srcptr)) __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_popcount __gmpz_popcount +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_popcount) +__GMP_DECLSPEC mp_bitcnt_t mpz_popcount __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_pow_ui __gmpz_pow_ui +__GMP_DECLSPEC void mpz_pow_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_powm __gmpz_powm +__GMP_DECLSPEC void mpz_powm __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_powm_ui __gmpz_powm_ui +__GMP_DECLSPEC void mpz_powm_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr)); + +#define mpz_probab_prime_p __gmpz_probab_prime_p +__GMP_DECLSPEC int mpz_probab_prime_p __GMP_PROTO ((mpz_srcptr, int)) __GMP_ATTRIBUTE_PURE; + +#define mpz_probable_prime_p __gmpz_probable_prime_p +__GMP_DECLSPEC int mpz_probable_prime_p __GMP_PROTO ((mpz_srcptr,gmp_randstate_t, int,unsigned long)); + +#define mpz_likely_prime_p __gmpz_likely_prime_p +__GMP_DECLSPEC int mpz_likely_prime_p __GMP_PROTO ((mpz_srcptr,gmp_randstate_t, unsigned long)); + +#define mpz_realloc2 __gmpz_realloc2 +__GMP_DECLSPEC void mpz_realloc2 __GMP_PROTO ((mpz_ptr, mp_bitcnt_t)); + +#define mpz_remove __gmpz_remove +__GMP_DECLSPEC mp_bitcnt_t mpz_remove __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_root __gmpz_root +__GMP_DECLSPEC int mpz_root __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_nthroot __gmpz_nthroot +__GMP_DECLSPEC void mpz_nthroot __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_rootrem __gmpz_rootrem +__GMP_DECLSPEC void mpz_rootrem __GMP_PROTO ((mpz_ptr,mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_rrandomb __gmpz_rrandomb +__GMP_DECLSPEC void mpz_rrandomb __GMP_PROTO ((mpz_ptr, gmp_randstate_t, mp_bitcnt_t)); + +#define mpz_scan0 __gmpz_scan0 +__GMP_DECLSPEC mp_bitcnt_t mpz_scan0 __GMP_PROTO ((mpz_srcptr, mp_bitcnt_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_scan1 __gmpz_scan1 +__GMP_DECLSPEC mp_bitcnt_t mpz_scan1 __GMP_PROTO ((mpz_srcptr, mp_bitcnt_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define __GMP_MPZ_SET_MIN_ALLOC(x,y) __GMP_ABS(y->_mp_size) +#define mpz_set __gmpz_set +__GMP_DECLSPEC void mpz_set __GMP_PROTO ((mpz_ptr, mpz_srcptr)); + +#define mpz_set_d __gmpz_set_d +__GMP_DECLSPEC void mpz_set_d __GMP_PROTO ((mpz_ptr, double)); + +#define mpz_set_f __gmpz_set_f +__GMP_DECLSPEC void mpz_set_f __GMP_PROTO ((mpz_ptr, mpf_srcptr)); + +#define mpz_set_q __gmpz_set_q +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_set_q) +__GMP_DECLSPEC void mpz_set_q __GMP_PROTO ((mpz_ptr, mpq_srcptr)); +#endif + +#define __GMP_MPZ_SET_SI_MIN_ALLOC(x,y) (1+(__GMP_BITS_PER_ULONG-1)/GMP_NUMB_BITS) +#define mpz_set_si __gmpz_set_si +__GMP_DECLSPEC void mpz_set_si __GMP_PROTO ((mpz_ptr, signed long int)); + +#define mpz_set_str __gmpz_set_str +__GMP_DECLSPEC int mpz_set_str __GMP_PROTO ((mpz_ptr, __gmp_const char *, int)); + +#define __GMP_MPZ_SET_UI_MIN_ALLOC(x,y) (1+(__GMP_BITS_PER_ULONG-1)/GMP_NUMB_BITS) +#define mpz_set_ui __gmpz_set_ui +__GMP_DECLSPEC void mpz_set_ui __GMP_PROTO ((mpz_ptr, unsigned long int)); + +#define mpz_setbit __gmpz_setbit +__GMP_DECLSPEC void mpz_setbit __GMP_PROTO ((mpz_ptr, mp_bitcnt_t)); + +#define mpz_size __gmpz_size +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_size) +__GMP_DECLSPEC size_t mpz_size __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_sizeinbase __gmpz_sizeinbase +__GMP_DECLSPEC size_t mpz_sizeinbase __GMP_PROTO ((mpz_srcptr, int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_sqrt __gmpz_sqrt +__GMP_DECLSPEC void mpz_sqrt __GMP_PROTO ((mpz_ptr, mpz_srcptr)); + +#define mpz_sqrtrem __gmpz_sqrtrem +__GMP_DECLSPEC void mpz_sqrtrem __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr)); + +#define __GMP_MPZ_SUB_MIN_ALLOC(x,y,z) (__GMP_MAX(__GMP_ABS(y->_mp_size),__GMP_ABS(z->_mp_size))+1) +#define mpz_sub __gmpz_sub +__GMP_DECLSPEC void mpz_sub __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define __GMP_MPZ_SUB_UI_MIN_ALLOC(x,y,z) (__GMP_MAX(__GMP_ABS(y->_mp_size),1+(__GMP_BITS_PER_ULONG-1)/GMP_NUMB_BITS)+1) +#define mpz_sub_ui __gmpz_sub_ui +__GMP_DECLSPEC void mpz_sub_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define __GMP_MPZ_UI_SUB_MIN_ALLOC(x,y,z) (__GMP_MAX(__GMP_ABS(z->_mp_size),1+(__GMP_BITS_PER_ULONG-1)/GMP_NUMB_BITS)+1) +#define mpz_ui_sub __gmpz_ui_sub +__GMP_DECLSPEC void mpz_ui_sub __GMP_PROTO ((mpz_ptr, unsigned long int, mpz_srcptr)); + +#define mpz_submul __gmpz_submul +__GMP_DECLSPEC void mpz_submul __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_submul_ui __gmpz_submul_ui +__GMP_DECLSPEC void mpz_submul_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_swap __gmpz_swap +__GMP_DECLSPEC void mpz_swap __GMP_PROTO ((mpz_ptr, mpz_ptr)) __GMP_NOTHROW; + +#define mpz_tdiv_ui __gmpz_tdiv_ui +__GMP_DECLSPEC unsigned long int mpz_tdiv_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE; + +#define mpz_tdiv_q __gmpz_tdiv_q +__GMP_DECLSPEC void mpz_tdiv_q __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_tdiv_q_2exp __gmpz_tdiv_q_2exp +__GMP_DECLSPEC void mpz_tdiv_q_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); + +#define mpz_tdiv_q_ui __gmpz_tdiv_q_ui +__GMP_DECLSPEC unsigned long int mpz_tdiv_q_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_tdiv_qr __gmpz_tdiv_qr +__GMP_DECLSPEC void mpz_tdiv_qr __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_tdiv_qr_ui __gmpz_tdiv_qr_ui +__GMP_DECLSPEC unsigned long int mpz_tdiv_qr_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_tdiv_r __gmpz_tdiv_r +__GMP_DECLSPEC void mpz_tdiv_r __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + +#define mpz_tdiv_r_2exp __gmpz_tdiv_r_2exp +__GMP_DECLSPEC void mpz_tdiv_r_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); + +#define mpz_tdiv_r_ui __gmpz_tdiv_r_ui +__GMP_DECLSPEC unsigned long int mpz_tdiv_r_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); + +#define mpz_tstbit __gmpz_tstbit +__GMP_DECLSPEC int mpz_tstbit __GMP_PROTO ((mpz_srcptr, mp_bitcnt_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_ui_pow_ui __gmpz_ui_pow_ui +__GMP_DECLSPEC void mpz_ui_pow_ui __GMP_PROTO ((mpz_ptr, unsigned long int, unsigned long int)); + +#define mpz_urandomb __gmpz_urandomb +__GMP_DECLSPEC void mpz_urandomb __GMP_PROTO ((mpz_ptr, gmp_randstate_t, mp_bitcnt_t)); + +#define mpz_urandomm __gmpz_urandomm +__GMP_DECLSPEC void mpz_urandomm __GMP_PROTO ((mpz_ptr, gmp_randstate_t, mpz_srcptr)); + +#define mpz_xor __gmpz_xor +#define mpz_eor __gmpz_xor +__GMP_DECLSPEC void mpz_xor __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); + + +/****** Integer (i.e. Z) routines for intmaax_t/uintmax_t types ******/ + +#if defined( _STDINT_H ) || defined ( _STDINT_H_ ) || defined ( _STDINT ) + +#define __GMP_BITS_PER_UINTMAX (8*sizeof(uintmax_t)) + +#define mpz_get_ux __gmpz_get_ux +__GMP_DECLSPEC uintmax_t mpz_get_ux __GMP_PROTO ((mpz_srcptr)); + +#define mpz_get_sx __gmpz_get_sx +__GMP_DECLSPEC intmax_t mpz_get_sx __GMP_PROTO ((mpz_srcptr)); + +#define mpz_set_ux __gmpz_set_ux +__GMP_DECLSPEC void mpz_set_ux __GMP_PROTO ((mpz_ptr, uintmax_t)); + +#define mpz_set_sx __gmpz_set_sx +__GMP_DECLSPEC void mpz_set_sx __GMP_PROTO ((mpz_ptr, intmax_t)); + +#define mpz_init_set_ux __gmpz_init_set_ux +__GMP_DECLSPEC void mpz_init_set_ux __GMP_PROTO ((mpz_ptr, uintmax_t)); + +#define mpz_init_set_sx __gmpz_init_set_sx +__GMP_DECLSPEC void mpz_init_set_sx __GMP_PROTO ((mpz_ptr, intmax_t)); + +#endif + + +/**************** Rational (i.e. Q) routines. ****************/ + +#define mpq_abs __gmpq_abs +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpq_abs) +__GMP_DECLSPEC void mpq_abs __GMP_PROTO ((mpq_ptr, mpq_srcptr)); +#endif + +#define mpq_add __gmpq_add +__GMP_DECLSPEC void mpq_add __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr)); + +#define mpq_canonicalize __gmpq_canonicalize +__GMP_DECLSPEC void mpq_canonicalize __GMP_PROTO ((mpq_ptr)); + +#define mpq_clear __gmpq_clear +__GMP_DECLSPEC void mpq_clear __GMP_PROTO ((mpq_ptr)); + +#define mpq_clears __gmpq_clears +__GMP_DECLSPEC void mpq_clears __GMP_PROTO ((mpq_ptr, ...)); + +#define mpq_cmp __gmpq_cmp +__GMP_DECLSPEC int mpq_cmp __GMP_PROTO ((mpq_srcptr, mpq_srcptr)) __GMP_ATTRIBUTE_PURE; + +#define _mpq_cmp_si __gmpq_cmp_si +__GMP_DECLSPEC int _mpq_cmp_si __GMP_PROTO ((mpq_srcptr, long, unsigned long)) __GMP_ATTRIBUTE_PURE; + +#define _mpq_cmp_ui __gmpq_cmp_ui +__GMP_DECLSPEC int _mpq_cmp_ui __GMP_PROTO ((mpq_srcptr, unsigned long int, unsigned long int)) __GMP_ATTRIBUTE_PURE; + +#define mpq_div __gmpq_div +__GMP_DECLSPEC void mpq_div __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr)); + +#define mpq_div_2exp __gmpq_div_2exp +__GMP_DECLSPEC void mpq_div_2exp __GMP_PROTO ((mpq_ptr, mpq_srcptr, mp_bitcnt_t)); + +#define mpq_equal __gmpq_equal +__GMP_DECLSPEC int mpq_equal __GMP_PROTO ((mpq_srcptr, mpq_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpq_get_num __gmpq_get_num +__GMP_DECLSPEC void mpq_get_num __GMP_PROTO ((mpz_ptr, mpq_srcptr)); + +#define mpq_get_den __gmpq_get_den +__GMP_DECLSPEC void mpq_get_den __GMP_PROTO ((mpz_ptr, mpq_srcptr)); + +#define mpq_get_d __gmpq_get_d +__GMP_DECLSPEC double mpq_get_d __GMP_PROTO ((mpq_srcptr)) __GMP_ATTRIBUTE_PURE; + +#define mpq_get_str __gmpq_get_str +__GMP_DECLSPEC char *mpq_get_str __GMP_PROTO ((char *, int, mpq_srcptr)); + +#define mpq_init __gmpq_init +__GMP_DECLSPEC void mpq_init __GMP_PROTO ((mpq_ptr)); + +#define mpq_inits __gmpq_inits +__GMP_DECLSPEC void mpq_inits __GMP_PROTO ((mpq_ptr, ...)); + +#define mpq_inp_str __gmpq_inp_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpq_inp_str __GMP_PROTO ((mpq_ptr, FILE *, int)); +#endif + +#define mpq_inv __gmpq_inv +__GMP_DECLSPEC void mpq_inv __GMP_PROTO ((mpq_ptr, mpq_srcptr)); + +#define mpq_mul __gmpq_mul +__GMP_DECLSPEC void mpq_mul __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr)); + +#define mpq_mul_2exp __gmpq_mul_2exp +__GMP_DECLSPEC void mpq_mul_2exp __GMP_PROTO ((mpq_ptr, mpq_srcptr, mp_bitcnt_t)); + +#define mpq_neg __gmpq_neg +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpq_neg) +__GMP_DECLSPEC void mpq_neg __GMP_PROTO ((mpq_ptr, mpq_srcptr)); +#endif + +#define mpq_out_str __gmpq_out_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpq_out_str __GMP_PROTO ((FILE *, int, mpq_srcptr)); +#endif + +#define mpq_set __gmpq_set +__GMP_DECLSPEC void mpq_set __GMP_PROTO ((mpq_ptr, mpq_srcptr)); + +#define mpq_set_d __gmpq_set_d +__GMP_DECLSPEC void mpq_set_d __GMP_PROTO ((mpq_ptr, double)); + +#define mpq_set_den __gmpq_set_den +__GMP_DECLSPEC void mpq_set_den __GMP_PROTO ((mpq_ptr, mpz_srcptr)); + +#define mpq_set_f __gmpq_set_f +__GMP_DECLSPEC void mpq_set_f __GMP_PROTO ((mpq_ptr, mpf_srcptr)); + +#define mpq_set_num __gmpq_set_num +__GMP_DECLSPEC void mpq_set_num __GMP_PROTO ((mpq_ptr, mpz_srcptr)); + +#define mpq_set_si __gmpq_set_si +__GMP_DECLSPEC void mpq_set_si __GMP_PROTO ((mpq_ptr, signed long int, unsigned long int)); + +#define mpq_set_str __gmpq_set_str +__GMP_DECLSPEC int mpq_set_str __GMP_PROTO ((mpq_ptr, __gmp_const char *, int)); + +#define mpq_set_ui __gmpq_set_ui +__GMP_DECLSPEC void mpq_set_ui __GMP_PROTO ((mpq_ptr, unsigned long int, unsigned long int)); + +#define mpq_set_z __gmpq_set_z +__GMP_DECLSPEC void mpq_set_z __GMP_PROTO ((mpq_ptr, mpz_srcptr)); + +#define mpq_sub __gmpq_sub +__GMP_DECLSPEC void mpq_sub __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr)); + +#define mpq_swap __gmpq_swap +__GMP_DECLSPEC void mpq_swap __GMP_PROTO ((mpq_ptr, mpq_ptr)) __GMP_NOTHROW; + + +/**************** Float (i.e. F) routines. ****************/ + +#define mpf_abs __gmpf_abs +__GMP_DECLSPEC void mpf_abs __GMP_PROTO ((mpf_ptr, mpf_srcptr)); + +#define mpf_add __gmpf_add +__GMP_DECLSPEC void mpf_add __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); + +#define mpf_add_ui __gmpf_add_ui +__GMP_DECLSPEC void mpf_add_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); +#define mpf_ceil __gmpf_ceil +__GMP_DECLSPEC void mpf_ceil __GMP_PROTO ((mpf_ptr, mpf_srcptr)); + +#define mpf_clear __gmpf_clear +__GMP_DECLSPEC void mpf_clear __GMP_PROTO ((mpf_ptr)); + +#define mpf_clears __gmpf_clears +__GMP_DECLSPEC void mpf_clears __GMP_PROTO ((mpf_ptr, ...)); + +#define mpf_cmp __gmpf_cmp +__GMP_DECLSPEC int mpf_cmp __GMP_PROTO ((mpf_srcptr, mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_cmp_d __gmpf_cmp_d +__GMP_DECLSPEC int mpf_cmp_d __GMP_PROTO ((mpf_srcptr, double)) __GMP_ATTRIBUTE_PURE; + +#define mpf_cmp_si __gmpf_cmp_si +__GMP_DECLSPEC int mpf_cmp_si __GMP_PROTO ((mpf_srcptr, signed long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_cmp_ui __gmpf_cmp_ui +__GMP_DECLSPEC int mpf_cmp_ui __GMP_PROTO ((mpf_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_div __gmpf_div +__GMP_DECLSPEC void mpf_div __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); + +#define mpf_div_2exp __gmpf_div_2exp +__GMP_DECLSPEC void mpf_div_2exp __GMP_PROTO ((mpf_ptr, mpf_srcptr, mp_bitcnt_t)); + +#define mpf_div_ui __gmpf_div_ui +__GMP_DECLSPEC void mpf_div_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); + +#define mpf_dump __gmpf_dump +__GMP_DECLSPEC void mpf_dump __GMP_PROTO ((mpf_srcptr)); + +#define mpf_eq __gmpf_eq +__GMP_DECLSPEC int mpf_eq __GMP_PROTO ((mpf_srcptr, mpf_srcptr, mp_bitcnt_t)) __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_sint_p __gmpf_fits_sint_p +__GMP_DECLSPEC int mpf_fits_sint_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_slong_p __gmpf_fits_slong_p +__GMP_DECLSPEC int mpf_fits_slong_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_sshort_p __gmpf_fits_sshort_p +__GMP_DECLSPEC int mpf_fits_sshort_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_uint_p __gmpf_fits_uint_p +__GMP_DECLSPEC int mpf_fits_uint_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_ulong_p __gmpf_fits_ulong_p +__GMP_DECLSPEC int mpf_fits_ulong_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_ushort_p __gmpf_fits_ushort_p +__GMP_DECLSPEC int mpf_fits_ushort_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_floor __gmpf_floor +__GMP_DECLSPEC void mpf_floor __GMP_PROTO ((mpf_ptr, mpf_srcptr)); + +#define mpf_get_d __gmpf_get_d +__GMP_DECLSPEC double mpf_get_d __GMP_PROTO ((mpf_srcptr)) __GMP_ATTRIBUTE_PURE; + +#define mpf_get_d_2exp __gmpf_get_d_2exp +__GMP_DECLSPEC double mpf_get_d_2exp __GMP_PROTO ((signed long int *, mpf_srcptr)); + +#define mpf_get_default_prec __gmpf_get_default_prec +__GMP_DECLSPEC mp_bitcnt_t mpf_get_default_prec __GMP_PROTO ((void)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_get_prec __gmpf_get_prec +__GMP_DECLSPEC mp_bitcnt_t mpf_get_prec __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_get_si __gmpf_get_si +__GMP_DECLSPEC long mpf_get_si __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_get_str __gmpf_get_str +__GMP_DECLSPEC char *mpf_get_str __GMP_PROTO ((char *, mp_exp_t *, int, size_t, mpf_srcptr)); + +#define mpf_get_ui __gmpf_get_ui +__GMP_DECLSPEC unsigned long mpf_get_ui __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_init __gmpf_init +__GMP_DECLSPEC void mpf_init __GMP_PROTO ((mpf_ptr)); + +#define mpf_init2 __gmpf_init2 +__GMP_DECLSPEC void mpf_init2 __GMP_PROTO ((mpf_ptr, mp_bitcnt_t)); + +#define mpf_inits __gmpf_inits +__GMP_DECLSPEC void mpf_inits __GMP_PROTO ((mpf_ptr, ...)); + +#define mpf_init_set __gmpf_init_set +__GMP_DECLSPEC void mpf_init_set __GMP_PROTO ((mpf_ptr, mpf_srcptr)); + +#define mpf_init_set_d __gmpf_init_set_d +__GMP_DECLSPEC void mpf_init_set_d __GMP_PROTO ((mpf_ptr, double)); + +#define mpf_init_set_si __gmpf_init_set_si +__GMP_DECLSPEC void mpf_init_set_si __GMP_PROTO ((mpf_ptr, signed long int)); + +#define mpf_init_set_str __gmpf_init_set_str +__GMP_DECLSPEC int mpf_init_set_str __GMP_PROTO ((mpf_ptr, __gmp_const char *, int)); + +#define mpf_init_set_ui __gmpf_init_set_ui +__GMP_DECLSPEC void mpf_init_set_ui __GMP_PROTO ((mpf_ptr, unsigned long int)); + +#define mpf_inp_str __gmpf_inp_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpf_inp_str __GMP_PROTO ((mpf_ptr, FILE *, int)); +#endif + +#define mpf_integer_p __gmpf_integer_p +__GMP_DECLSPEC int mpf_integer_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_mul __gmpf_mul +__GMP_DECLSPEC void mpf_mul __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); + +#define mpf_mul_2exp __gmpf_mul_2exp +__GMP_DECLSPEC void mpf_mul_2exp __GMP_PROTO ((mpf_ptr, mpf_srcptr, mp_bitcnt_t)); + +#define mpf_mul_ui __gmpf_mul_ui +__GMP_DECLSPEC void mpf_mul_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); + +#define mpf_neg __gmpf_neg +__GMP_DECLSPEC void mpf_neg __GMP_PROTO ((mpf_ptr, mpf_srcptr)); + +#define mpf_out_str __gmpf_out_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpf_out_str __GMP_PROTO ((FILE *, int, size_t, mpf_srcptr)); +#endif + +#define mpf_pow_ui __gmpf_pow_ui +__GMP_DECLSPEC void mpf_pow_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); + +#define mpf_random2 __gmpf_random2 +__GMP_DECLSPEC void mpf_random2 __GMP_PROTO ((mpf_ptr, mp_size_t, mp_exp_t)); + +#define mpf_rrandomb __gmpf_rrandomb +__GMP_DECLSPEC void mpf_rrandomb __GMP_PROTO ((mpf_ptr, gmp_randstate_t, mp_size_t, mp_exp_t)); + +#define mpf_reldiff __gmpf_reldiff +__GMP_DECLSPEC void mpf_reldiff __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); + +#define mpf_set __gmpf_set +__GMP_DECLSPEC void mpf_set __GMP_PROTO ((mpf_ptr, mpf_srcptr)); + +#define mpf_set_d __gmpf_set_d +__GMP_DECLSPEC void mpf_set_d __GMP_PROTO ((mpf_ptr, double)); + +#define mpf_set_default_prec __gmpf_set_default_prec +__GMP_DECLSPEC void mpf_set_default_prec __GMP_PROTO ((mp_bitcnt_t)) __GMP_NOTHROW; + +#define mpf_set_prec __gmpf_set_prec +__GMP_DECLSPEC void mpf_set_prec __GMP_PROTO ((mpf_ptr, mp_bitcnt_t)); + +#define mpf_set_prec_raw __gmpf_set_prec_raw +__GMP_DECLSPEC void mpf_set_prec_raw __GMP_PROTO ((mpf_ptr, mp_bitcnt_t)) __GMP_NOTHROW; + +#define mpf_set_q __gmpf_set_q +__GMP_DECLSPEC void mpf_set_q __GMP_PROTO ((mpf_ptr, mpq_srcptr)); + +#define mpf_set_si __gmpf_set_si +__GMP_DECLSPEC void mpf_set_si __GMP_PROTO ((mpf_ptr, signed long int)); + +#define mpf_set_str __gmpf_set_str +__GMP_DECLSPEC int mpf_set_str __GMP_PROTO ((mpf_ptr, __gmp_const char *, int)); + +#define mpf_set_ui __gmpf_set_ui +__GMP_DECLSPEC void mpf_set_ui __GMP_PROTO ((mpf_ptr, unsigned long int)); + +#define mpf_set_z __gmpf_set_z +__GMP_DECLSPEC void mpf_set_z __GMP_PROTO ((mpf_ptr, mpz_srcptr)); + +#define mpf_size __gmpf_size +__GMP_DECLSPEC size_t mpf_size __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_sqrt __gmpf_sqrt +__GMP_DECLSPEC void mpf_sqrt __GMP_PROTO ((mpf_ptr, mpf_srcptr)); + +#define mpf_sqrt_ui __gmpf_sqrt_ui +__GMP_DECLSPEC void mpf_sqrt_ui __GMP_PROTO ((mpf_ptr, unsigned long int)); + +#define mpf_sub __gmpf_sub +__GMP_DECLSPEC void mpf_sub __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); + +#define mpf_sub_ui __gmpf_sub_ui +__GMP_DECLSPEC void mpf_sub_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); + +#define mpf_swap __gmpf_swap +__GMP_DECLSPEC void mpf_swap __GMP_PROTO ((mpf_ptr, mpf_ptr)) __GMP_NOTHROW; + +#define mpf_trunc __gmpf_trunc +__GMP_DECLSPEC void mpf_trunc __GMP_PROTO ((mpf_ptr, mpf_srcptr)); + +#define mpf_ui_div __gmpf_ui_div +__GMP_DECLSPEC void mpf_ui_div __GMP_PROTO ((mpf_ptr, unsigned long int, mpf_srcptr)); + +#define mpf_ui_sub __gmpf_ui_sub +__GMP_DECLSPEC void mpf_ui_sub __GMP_PROTO ((mpf_ptr, unsigned long int, mpf_srcptr)); + +#define mpf_urandomb __gmpf_urandomb +__GMP_DECLSPEC void mpf_urandomb __GMP_PROTO ((mpf_t, gmp_randstate_t, mp_bitcnt_t)); + + +/************ Low level positive-integer (i.e. N) routines. ************/ + +/* This is ugly, but we need to make user calls reach the prefixed function. */ + +#define mpn_add __MPN(add) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_add) +__GMP_DECLSPEC mp_limb_t mpn_add __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t)); +#endif + +#define mpn_add_1 __MPN(add_1) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_add_1) +__GMP_DECLSPEC mp_limb_t mpn_add_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)) __GMP_NOTHROW; +#endif + +#define mpn_add_n __MPN(add_n) +__GMP_DECLSPEC mp_limb_t mpn_add_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); + +#define mpn_addmul_1 __MPN(addmul_1) +__GMP_DECLSPEC mp_limb_t mpn_addmul_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)); + +#define mpn_bdivmod __MPN(bdivmod) +__GMP_DECLSPEC mp_limb_t mpn_bdivmod __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, unsigned long int)); + +#define mpn_divrem __MPN(divrem) +__GMP_DECLSPEC mp_limb_t mpn_divrem __GMP_PROTO ((mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr, mp_size_t)); + +#define mpn_mulmod_2expp1 __MPN(mulmod_2expp1) +__GMP_DECLSPEC int mpn_mulmod_2expp1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr,int,unsigned long, mp_ptr)); + +#define mpn_mulmod_2expm1 __MPN(mulmod_2expm1) +__GMP_DECLSPEC void mpn_mulmod_2expm1 __GMP_PROTO ((mp_ptr, mp_ptr, mp_ptr,unsigned long, mp_ptr)); + +#define mpn_cmp __MPN(cmp) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_cmp) +__GMP_DECLSPEC int mpn_cmp __GMP_PROTO ((mp_srcptr, mp_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpn_redc_1 __MPN(redc_1) +__GMP_DECLSPEC void mpn_redc_1 __GMP_PROTO ((mp_ptr, mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);) + +#define mpn_divexact_by3(dst,src,size) \ + mpn_divexact_by3c (dst, src, size, __GMP_CAST (mp_limb_t, 0)) + +#define mpn_divexact_by3c __MPN(divexact_by3c) +__GMP_DECLSPEC mp_limb_t mpn_divexact_by3c __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)); + +#define mpn_divmod_1(qp,np,nsize,dlimb) \ + mpn_divrem_1 (qp, __GMP_CAST (mp_size_t, 0), np, nsize, dlimb) + +#define mpn_divrem_1 __MPN(divrem_1) +__GMP_DECLSPEC mp_limb_t mpn_divrem_1 __GMP_PROTO ((mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_limb_t)); + +#define mpn_divrem_2 __MPN(divrem_2) +__GMP_DECLSPEC mp_limb_t mpn_divrem_2 __GMP_PROTO ((mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr)); + +#define mpn_invert __MPN(invert) +__GMP_DECLSPEC void mpn_invert __GMP_PROTO ((mp_ptr xp, mp_srcptr ap, mp_size_t n)); + +#define mpn_sb_divappr_q __MPN(sb_divappr_q) +__GMP_DECLSPEC mp_limb_t mpn_sb_divappr_q __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_limb_t dip)); + +#define mpn_dc_divappr_q_n __MPN(dc_divappr_q_n) +__GMP_DECLSPEC mp_limb_t mpn_dc_divappr_q_n __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_srcptr dp, mp_size_t n, + mp_limb_t dip, mp_ptr tp)); + +#define mpn_dc_bdiv_q_n __MPN(dc_bdiv_q_n) +__GMP_DECLSPEC void mpn_dc_bdiv_q_n __GMP_PROTO ((mp_ptr qp, mp_ptr wp, mp_ptr np, mp_srcptr dp, mp_size_t n, + mp_limb_t dinv, mp_ptr scratch)); + +#define mpn_inv_divappr_q_n __MPN(inv_divappr_q_n) +__GMP_DECLSPEC mp_limb_t mpn_inv_divappr_q_n __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_srcptr dp, mp_size_t n, + mp_srcptr dip)); + +#define mpn_dc_divappr_q __MPN(dc_divappr_q) +__GMP_DECLSPEC mp_limb_t mpn_dc_divappr_q __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, mp_srcptr dp, mp_size_t n, + mp_limb_t dinv)); + +#define mpn_dc_div_q __MPN(dc_div_q) +__GMP_DECLSPEC mp_limb_t mpn_dc_div_q __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_limb_t dinv)); + +#define mpn_inv_divappr_q __MPN(inv_divappr_q) +__GMP_DECLSPEC mp_limb_t mpn_inv_divappr_q __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, mp_srcptr dp, mp_size_t n, + mp_srcptr dinv)); + +#define mpn_inv_div_q __MPN(inv_div_q) +__GMP_DECLSPEC mp_limb_t mpn_inv_div_q __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_srcptr dinv)); + +#define mpn_inv_div_qr __MPN(inv_div_qr) +__GMP_DECLSPEC mp_limb_t mpn_inv_div_qr __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_srcptr dinv)); + +#define mpn_inv_div_qr_n __MPN(inv_div_qr_n) +__GMP_DECLSPEC mp_limb_t mpn_inv_div_qr_n __GMP_PROTO ((mp_ptr qp, mp_ptr np, + mp_srcptr dp, mp_size_t dn, mp_srcptr dinv)); + +#define mpn_dc_div_qr __MPN(dc_div_qr) +__GMP_DECLSPEC mp_limb_t mpn_dc_div_qr __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_limb_t dinv)); + +#define mpn_dc_div_qr_n __MPN(dc_div_qr_n) +__GMP_DECLSPEC mp_limb_t mpn_dc_div_qr_n __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_srcptr dp, mp_size_t n, + mp_limb_t dinv, mp_ptr tp)); + +#define mpn_sb_div_q __MPN(sb_div_q) +__GMP_DECLSPEC mp_limb_t mpn_sb_div_q __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_limb_t dinv)); + +#define mpn_sb_bdiv_q __MPN(sb_bdiv_q) +__GMP_DECLSPEC void mpn_sb_bdiv_q __GMP_PROTO ((mp_ptr qp, mp_ptr wp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_limb_t dinv)); + +#define mpn_dc_bdiv_q __MPN(dc_bdiv_q) +__GMP_DECLSPEC void mpn_dc_bdiv_q __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_limb_t dinv)); + +#define mpn_dc_bdiv_qr __MPN(dc_bdiv_qr) +__GMP_DECLSPEC mp_limb_t mpn_dc_bdiv_qr __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_limb_t dinv)); + +#define mpn_dc_bdiv_qr_n __MPN(dc_bdiv_qr_n) +__GMP_DECLSPEC mp_limb_t mpn_dc_bdiv_qr_n __GMP_PROTO ((mp_ptr qp, mp_ptr np, + mp_srcptr dp, mp_size_t n, mp_limb_t dinv, mp_ptr tp)); + +#define mpn_sb_div_qr __MPN(sb_div_qr) +__GMP_DECLSPEC mp_limb_t mpn_sb_div_qr __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_limb_t dinv)); + +#define mpn_sb_bdiv_qr __MPN(sb_bdiv_qr) +__GMP_DECLSPEC mp_limb_t mpn_sb_bdiv_qr __GMP_PROTO ((mp_ptr qp, mp_ptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn, mp_limb_t dinv)); + +#define mpn_tdiv_q __MPN(tdiv_q) +__GMP_DECLSPEC void mpn_tdiv_q __GMP_PROTO ((mp_ptr qp, mp_srcptr np, mp_size_t nn, + mp_srcptr dp, mp_size_t dn)); + +#define mpn_divexact __MPN(divexact) +__GMP_DECLSPEC void mpn_divexact __GMP_PROTO ((mp_ptr qp, + mp_srcptr np, mp_size_t nn, mp_srcptr dp, mp_size_t dn)); + +#define mpn_gcd __MPN(gcd) +__GMP_DECLSPEC mp_size_t mpn_gcd __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t)); + +#define mpn_gcd_1 __MPN(gcd_1) +__GMP_DECLSPEC mp_limb_t mpn_gcd_1 __GMP_PROTO ((mp_srcptr, mp_size_t, mp_limb_t)) __GMP_ATTRIBUTE_PURE; + +#define mpn_gcdext __MPN(gcdext) +__GMP_DECLSPEC mp_size_t mpn_gcdext __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t)); + +#define mpn_get_str __MPN(get_str) +__GMP_DECLSPEC size_t mpn_get_str __GMP_PROTO ((unsigned char *, int, mp_ptr, mp_size_t)); + +#define mpn_hamdist __MPN(hamdist) +__GMP_DECLSPEC mp_bitcnt_t mpn_hamdist __GMP_PROTO ((mp_srcptr, mp_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpn_lshift __MPN(lshift) +__GMP_DECLSPEC mp_limb_t mpn_lshift __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, unsigned int)); + +#define mpn_mod_1 __MPN(mod_1) +__GMP_DECLSPEC mp_limb_t mpn_mod_1 __GMP_PROTO ((mp_srcptr, mp_size_t, mp_limb_t)) __GMP_ATTRIBUTE_PURE; + +#define mpn_mul __MPN(mul) +__GMP_DECLSPEC mp_limb_t mpn_mul __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t)); + +#define mpn_mul_1 __MPN(mul_1) +__GMP_DECLSPEC mp_limb_t mpn_mul_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)); + +#define mpn_mul_n __MPN(mul_n) +__GMP_DECLSPEC void mpn_mul_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); + +#define mpn_sqr __MPN(sqr) +__GMP_DECLSPEC void mpn_sqr __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t)); + +#define mpn_neg_n __MPN(neg_n) +#define mpn_neg __MPN(neg_n) +__GMP_DECLSPEC mp_limb_t mpn_neg_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t)); + +#define mpn_com_n __MPN(com_n) +#define mpn_com __MPN(com_n) +__GMP_DECLSPEC void mpn_com_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t)); + +#define mpn_perfect_square_p __MPN(perfect_square_p) +__GMP_DECLSPEC int mpn_perfect_square_p __GMP_PROTO ((mp_srcptr, mp_size_t)) __GMP_ATTRIBUTE_PURE; + +#define mpn_popcount __MPN(popcount) +__GMP_DECLSPEC mp_bitcnt_t mpn_popcount __GMP_PROTO ((mp_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpn_pow_1 __MPN(pow_1) +__GMP_DECLSPEC mp_size_t mpn_pow_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr)); + +/* undocumented now, but retained here for upward compatibility */ +#define mpn_preinv_mod_1 __MPN(preinv_mod_1) +__GMP_DECLSPEC mp_limb_t mpn_preinv_mod_1 __GMP_PROTO ((mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t)) __GMP_ATTRIBUTE_PURE; + +#define mpn_random __MPN(random) +__GMP_DECLSPEC void mpn_random __GMP_PROTO ((mp_ptr, mp_size_t)); + +#define mpn_random2 __MPN(random2) +__GMP_DECLSPEC void mpn_random2 __GMP_PROTO ((mp_ptr, mp_size_t)); + +#define mpn_urandomb __MPN(urandomb) +__GMP_DECLSPEC void mpn_urandomb __GMP_PROTO ((mp_ptr, gmp_randstate_t, unsigned long)); + +#define mpn_urandomm __MPN(urandomm) +__GMP_DECLSPEC void mpn_urandomm __GMP_PROTO ((mp_ptr, gmp_randstate_t, mp_srcptr, mp_size_t)); + +#define mpn_randomb __MPN(randomb) +__GMP_DECLSPEC void mpn_randomb __GMP_PROTO ((mp_ptr, gmp_randstate_t, mp_size_t)); + +#define mpn_rrandom __MPN(rrandom) +__GMP_DECLSPEC void mpn_rrandom __GMP_PROTO ((mp_ptr, gmp_randstate_t, mp_size_t)); + +#define mpn_rshift __MPN(rshift) +__GMP_DECLSPEC mp_limb_t mpn_rshift __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, unsigned int)); + +#define mpn_scan0 __MPN(scan0) +__GMP_DECLSPEC mp_bitcnt_t mpn_scan0 __GMP_PROTO ((mp_srcptr, mp_bitcnt_t)) __GMP_ATTRIBUTE_PURE; + +#define mpn_scan1 __MPN(scan1) +__GMP_DECLSPEC mp_bitcnt_t mpn_scan1 __GMP_PROTO ((mp_srcptr, mp_bitcnt_t)) __GMP_ATTRIBUTE_PURE; + +#define mpn_set_str __MPN(set_str) +__GMP_DECLSPEC mp_size_t mpn_set_str __GMP_PROTO ((mp_ptr, __gmp_const unsigned char *, size_t, int)); + +#define mpn_sqrtrem __MPN(sqrtrem) +__GMP_DECLSPEC mp_size_t mpn_sqrtrem __GMP_PROTO ((mp_ptr, mp_ptr, mp_srcptr, mp_size_t)); + +#define mpn_sub __MPN(sub) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_sub) +__GMP_DECLSPEC mp_limb_t mpn_sub __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t)); +#endif + +#define mpn_sub_1 __MPN(sub_1) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_sub_1) +__GMP_DECLSPEC mp_limb_t mpn_sub_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)) __GMP_NOTHROW; +#endif + +#define mpn_sub_n __MPN(sub_n) +__GMP_DECLSPEC mp_limb_t mpn_sub_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); + +#define mpn_submul_1 __MPN(submul_1) +__GMP_DECLSPEC mp_limb_t mpn_submul_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)); + +#define mpn_tdiv_qr __MPN(tdiv_qr) +__GMP_DECLSPEC void mpn_tdiv_qr __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t)); + +#define mpn_and_n __MPN(and_n) +__GMP_DECLSPEC void mpn_and_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); +#define mpn_andn_n __MPN(andn_n) +__GMP_DECLSPEC void mpn_andn_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); +#define mpn_nand_n __MPN(nand_n) +__GMP_DECLSPEC void mpn_nand_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); +#define mpn_ior_n __MPN(ior_n) +__GMP_DECLSPEC void mpn_ior_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); +#define mpn_iorn_n __MPN(iorn_n) +__GMP_DECLSPEC void mpn_iorn_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); +#define mpn_nior_n __MPN(nior_n) +__GMP_DECLSPEC void mpn_nior_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); +#define mpn_xor_n __MPN(xor_n) +__GMP_DECLSPEC void mpn_xor_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); +#define mpn_xnor_n __MPN(xnor_n) +__GMP_DECLSPEC void mpn_xnor_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); + +#define mpn_copyi __MPN(copyi) +__GMP_DECLSPEC void mpn_copyi __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t)); +#define mpn_copyd __MPN(copyd) +__GMP_DECLSPEC void mpn_copyd __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t)); +#define mpn_zero __MPN(zero) +__GMP_DECLSPEC void mpn_zero __GMP_PROTO ((mp_ptr, mp_size_t)); + +/**************** mpz inlines ****************/ + +/* The following are provided as inlines where possible, but always exist as + library functions too, for binary compatibility. + + Within gmp itself this inlining generally isn't relied on, since it + doesn't get done for all compilers, whereas if something is worth + inlining then it's worth arranging always. + + There are two styles of inlining here. When the same bit of code is + wanted for the inline as for the library version, then __GMP_FORCE_foo + arranges for that code to be emitted and the __GMP_EXTERN_INLINE + directive suppressed, eg. mpz_fits_uint_p. When a different bit of code + is wanted for the inline than for the library version, then + __GMP_FORCE_foo arranges the inline to be suppressed, eg. mpz_abs. */ + +#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpz_abs) +__GMP_EXTERN_INLINE void +mpz_abs (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) +{ + if (__gmp_w != __gmp_u) + mpz_set (__gmp_w, __gmp_u); + __gmp_w->_mp_size = __GMP_ABS (__gmp_w->_mp_size); +} +#endif + +#if GMP_NAIL_BITS == 0 +#define __GMPZ_FITS_UTYPE_P(z,maxval) \ + mp_size_t __gmp_n = z->_mp_size; \ + mp_ptr __gmp_p = z->_mp_d; \ + return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= maxval)); +#else +#define __GMPZ_FITS_UTYPE_P(z,maxval) \ + mp_size_t __gmp_n = z->_mp_size; \ + mp_ptr __gmp_p = z->_mp_d; \ + return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= maxval) \ + || (__gmp_n == 2 && __gmp_p[1] <= ((mp_limb_t) maxval >> GMP_NUMB_BITS))); +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_uint_p) +#if ! defined (__GMP_FORCE_mpz_fits_uint_p) +__GMP_EXTERN_INLINE +#endif +int +mpz_fits_uint_p (mpz_srcptr __gmp_z) __GMP_NOTHROW +{ + __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_UINT_MAX); +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_ulong_p) +#if ! defined (__GMP_FORCE_mpz_fits_ulong_p) +__GMP_EXTERN_INLINE +#endif +int +mpz_fits_ulong_p (mpz_srcptr __gmp_z) __GMP_NOTHROW +{ + __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_ULONG_MAX); +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_ushort_p) +#if ! defined (__GMP_FORCE_mpz_fits_ushort_p) +__GMP_EXTERN_INLINE +#endif +int +mpz_fits_ushort_p (mpz_srcptr __gmp_z) __GMP_NOTHROW +{ + __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_USHRT_MAX); +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_get_ui) +#if ! defined (__GMP_FORCE_mpz_get_ui) +__GMP_EXTERN_INLINE +#endif +unsigned long +mpz_get_ui (mpz_srcptr __gmp_z) __GMP_NOTHROW +{ + mp_ptr __gmp_p = __gmp_z->_mp_d; + mp_size_t __gmp_n = __gmp_z->_mp_size; + mp_limb_t __gmp_l = __gmp_p[0]; + /* This is a "#if" rather than a plain "if" so as to avoid gcc warnings + about "<< GMP_NUMB_BITS" exceeding the type size, and to avoid Borland + C++ 6.0 warnings about condition always true for something like + "__GMP_ULONG_MAX < GMP_NUMB_MASK". */ +#if GMP_NAIL_BITS == 0 || defined (_LONG_LONG_LIMB) + /* limb==long and no nails, or limb==longlong, one limb is enough */ + return (unsigned long)(__gmp_n != 0 ? __gmp_l : 0); +#else + /* limb==long and nails, need two limbs when available */ + __gmp_n = __GMP_ABS (__gmp_n); + if (__gmp_n <= 1) + return (__gmp_n != 0 ? __gmp_l : 0); + else + return __gmp_l + (__gmp_p[1] << GMP_NUMB_BITS); +#endif +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_getlimbn) +#if ! defined (__GMP_FORCE_mpz_getlimbn) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpz_getlimbn (mpz_srcptr __gmp_z, mp_size_t __gmp_n) __GMP_NOTHROW +{ + mp_limb_t __gmp_result = 0; + if (__GMP_LIKELY (__gmp_n >= 0 && __gmp_n < __GMP_ABS (__gmp_z->_mp_size))) + __gmp_result = __gmp_z->_mp_d[__gmp_n]; + return __gmp_result; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpz_neg) +__GMP_EXTERN_INLINE void +mpz_neg (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) +{ + if (__gmp_w != __gmp_u) + mpz_set (__gmp_w, __gmp_u); + __gmp_w->_mp_size = - __gmp_w->_mp_size; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_perfect_square_p) +#if ! defined (__GMP_FORCE_mpz_perfect_square_p) +__GMP_EXTERN_INLINE +#endif +int +mpz_perfect_square_p (mpz_srcptr __gmp_a) +{ + mp_size_t __gmp_asize; + int __gmp_result; + + __gmp_asize = __gmp_a->_mp_size; + __gmp_result = (__gmp_asize >= 0); /* zero is a square, negatives are not */ + if (__GMP_LIKELY (__gmp_asize > 0)) + __gmp_result = mpn_perfect_square_p (__gmp_a->_mp_d, __gmp_asize); + return __gmp_result; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_popcount) +#if ! defined (__GMP_FORCE_mpz_popcount) +__GMP_EXTERN_INLINE +#endif +mp_bitcnt_t +mpz_popcount (mpz_srcptr __gmp_u) __GMP_NOTHROW +{ + mp_size_t __gmp_usize; + mp_bitcnt_t __gmp_result; + + __gmp_usize = __gmp_u->_mp_size; + __gmp_result = (__gmp_usize < 0 ? __GMP_BITCNT_MAX : 0); + if (__GMP_LIKELY (__gmp_usize > 0)) + __gmp_result = mpn_popcount (__gmp_u->_mp_d, __gmp_usize); + return __gmp_result; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_set_q) +#if ! defined (__GMP_FORCE_mpz_set_q) +__GMP_EXTERN_INLINE +#endif +void +mpz_set_q (mpz_ptr __gmp_w, mpq_srcptr __gmp_u) +{ + mpz_tdiv_q (__gmp_w, mpq_numref (__gmp_u), mpq_denref (__gmp_u)); +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_size) +#if ! defined (__GMP_FORCE_mpz_size) +__GMP_EXTERN_INLINE +#endif +size_t +mpz_size (mpz_srcptr __gmp_z) __GMP_NOTHROW +{ + return __GMP_ABS (__gmp_z->_mp_size); +} +#endif + + +/**************** mpq inlines ****************/ + +#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpq_abs) +__GMP_EXTERN_INLINE void +mpq_abs (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) +{ + if (__gmp_w != __gmp_u) + mpq_set (__gmp_w, __gmp_u); + __gmp_w->_mp_num._mp_size = __GMP_ABS (__gmp_w->_mp_num._mp_size); +} +#endif + +#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpq_neg) +__GMP_EXTERN_INLINE void +mpq_neg (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) +{ + if (__gmp_w != __gmp_u) + mpq_set (__gmp_w, __gmp_u); + __gmp_w->_mp_num._mp_size = - __gmp_w->_mp_num._mp_size; +} +#endif + + +/**************** mpn inlines ****************/ + +/* The comments with __GMPN_ADD_1 below apply here too. + + The test for FUNCTION returning 0 should predict well. If it's assumed + {yp,ysize} will usually have a random number of bits then the high limb + won't be full and a carry out will occur a good deal less than 50% of the + time. + + ysize==0 isn't a documented feature, but is used internally in a few + places. + + Producing cout last stops it using up a register during the main part of + the calculation, though gcc (as of 3.0) on an "if (mpn_add (...))" + doesn't seem able to move the true and false legs of the conditional up + to the two places cout is generated. */ + +#define __GMPN_AORS(cout, wp, xp, xsize, yp, ysize, FUNCTION, TEST) \ + do { \ + mp_size_t __gmp_i; \ + mp_limb_t __gmp_x; \ + \ + /* ASSERT ((ysize) >= 0); */ \ + /* ASSERT ((xsize) >= (ysize)); */ \ + /* ASSERT (MPN_SAME_OR_SEPARATE2_P (wp, xsize, xp, xsize)); */ \ + /* ASSERT (MPN_SAME_OR_SEPARATE2_P (wp, xsize, yp, ysize)); */ \ + \ + __gmp_i = (ysize); \ + if (__gmp_i != 0) \ + { \ + if (FUNCTION (wp, xp, yp, __gmp_i)) \ + { \ + do \ + { \ + if (__gmp_i >= (xsize)) \ + { \ + (cout) = 1; \ + goto __gmp_done; \ + } \ + __gmp_x = (xp)[__gmp_i]; \ + } \ + while (TEST); \ + } \ + } \ + if ((wp) != (xp)) \ + __GMPN_COPY_REST (wp, xp, xsize, __gmp_i); \ + (cout) = 0; \ + __gmp_done: \ + ; \ + } while (0) + +#define __GMPN_ADD(cout, wp, xp, xsize, yp, ysize) \ + __GMPN_AORS (cout, wp, xp, xsize, yp, ysize, mpn_add_n, \ + (((wp)[__gmp_i++] = (__gmp_x + 1) & GMP_NUMB_MASK) == 0)) +#define __GMPN_SUB(cout, wp, xp, xsize, yp, ysize) \ + __GMPN_AORS (cout, wp, xp, xsize, yp, ysize, mpn_sub_n, \ + (((wp)[__gmp_i++] = (__gmp_x - 1) & GMP_NUMB_MASK), __gmp_x == 0)) + + +/* The use of __gmp_i indexing is designed to ensure a compile time src==dst + remains nice and clear to the compiler, so that __GMPN_COPY_REST can + disappear, and the load/add/store gets a chance to become a + read-modify-write on CISC CPUs. + + Alternatives: + + Using a pair of pointers instead of indexing would be possible, but gcc + isn't able to recognise compile-time src==dst in that case, even when the + pointers are incremented more or less together. Other compilers would + very likely have similar difficulty. + + gcc could use "if (__builtin_constant_p(src==dst) && src==dst)" or + similar to detect a compile-time src==dst. This works nicely on gcc + 2.95.x, it's not good on gcc 3.0 where __builtin_constant_p(p==p) seems + to be always false, for a pointer p. But the current code form seems + good enough for src==dst anyway. + + gcc on x86 as usual doesn't give particularly good flags handling for the + carry/borrow detection. It's tempting to want some multi instruction asm + blocks to help it, and this was tried, but in truth there's only a few + instructions to save and any gain is all too easily lost by register + juggling setting up for the asm. */ + +#if GMP_NAIL_BITS == 0 +#define __GMPN_AORS_1(cout, dst, src, n, v, OP, CB) \ + do { \ + mp_size_t __gmp_i; \ + mp_limb_t __gmp_x, __gmp_r; \ + \ + /* ASSERT ((n) >= 1); */ \ + /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, n)); */ \ + \ + __gmp_x = (src)[0]; \ + __gmp_r = __gmp_x OP (v); \ + (dst)[0] = __gmp_r; \ + if (CB (__gmp_r, __gmp_x, (v))) \ + { \ + (cout) = 1; \ + for (__gmp_i = 1; __gmp_i < (n);) \ + { \ + __gmp_x = (src)[__gmp_i]; \ + __gmp_r = __gmp_x OP 1; \ + (dst)[__gmp_i] = __gmp_r; \ + ++__gmp_i; \ + if (!CB (__gmp_r, __gmp_x, 1)) \ + { \ + if ((src) != (dst)) \ + __GMPN_COPY_REST (dst, src, n, __gmp_i); \ + (cout) = 0; \ + break; \ + } \ + } \ + } \ + else \ + { \ + if ((src) != (dst)) \ + __GMPN_COPY_REST (dst, src, n, 1); \ + (cout) = 0; \ + } \ + } while (0) +#endif + +#if GMP_NAIL_BITS >= 1 +#define __GMPN_AORS_1(cout, dst, src, n, v, OP, CB) \ + do { \ + mp_size_t __gmp_i; \ + mp_limb_t __gmp_x, __gmp_r; \ + \ + /* ASSERT ((n) >= 1); */ \ + /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, n)); */ \ + \ + __gmp_x = (src)[0]; \ + __gmp_r = __gmp_x OP (v); \ + (dst)[0] = __gmp_r & GMP_NUMB_MASK; \ + if (__gmp_r >> GMP_NUMB_BITS != 0) \ + { \ + (cout) = 1; \ + for (__gmp_i = 1; __gmp_i < (n);) \ + { \ + __gmp_x = (src)[__gmp_i]; \ + __gmp_r = __gmp_x OP 1; \ + (dst)[__gmp_i] = __gmp_r & GMP_NUMB_MASK; \ + ++__gmp_i; \ + if (__gmp_r >> GMP_NUMB_BITS == 0) \ + { \ + if ((src) != (dst)) \ + __GMPN_COPY_REST (dst, src, n, __gmp_i); \ + (cout) = 0; \ + break; \ + } \ + } \ + } \ + else \ + { \ + if ((src) != (dst)) \ + __GMPN_COPY_REST (dst, src, n, 1); \ + (cout) = 0; \ + } \ + } while (0) +#endif + +#define __GMPN_ADDCB(r,x,y) ((r) < (y)) +#define __GMPN_SUBCB(r,x,y) ((x) < (y)) + +#define __GMPN_ADD_1(cout, dst, src, n, v) \ + __GMPN_AORS_1(cout, dst, src, n, v, +, __GMPN_ADDCB) +#define __GMPN_SUB_1(cout, dst, src, n, v) \ + __GMPN_AORS_1(cout, dst, src, n, v, -, __GMPN_SUBCB) + + +/* Compare {xp,size} and {yp,size}, setting "result" to positive, zero or + negative. size==0 is allowed. On random data usually only one limb will + need to be examined to get a result, so it's worth having it inline. */ +#define __GMPN_CMP(result, xp, yp, size) \ + do { \ + mp_size_t __gmp_i; \ + mp_limb_t __gmp_x, __gmp_y; \ + \ + /* ASSERT ((size) >= 0); */ \ + \ + (result) = 0; \ + __gmp_i = (size); \ + while (--__gmp_i >= 0) \ + { \ + __gmp_x = (xp)[__gmp_i]; \ + __gmp_y = (yp)[__gmp_i]; \ + if (__gmp_x != __gmp_y) \ + { \ + /* Cannot use __gmp_x - __gmp_y, may overflow an "int" */ \ + (result) = (__gmp_x > __gmp_y ? 1 : -1); \ + break; \ + } \ + } \ + } while (0) + + +#if defined (__GMPN_COPY) && ! defined (__GMPN_COPY_REST) +#define __GMPN_COPY_REST(dst, src, size, start) \ + do { \ + /* ASSERT ((start) >= 0); */ \ + /* ASSERT ((start) <= (size)); */ \ + __GMPN_COPY ((dst)+(start), (src)+(start), (size)-(start)); \ + } while (0) +#endif + +/* Copy {src,size} to {dst,size}, starting at "start". This is designed to + keep the indexing dst[j] and src[j] nice and simple for __GMPN_ADD_1, + __GMPN_ADD, etc. */ +#if ! defined (__GMPN_COPY_REST) +#define __GMPN_COPY_REST(dst, src, size, start) \ + do { \ + mp_size_t __gmp_j; \ + /* ASSERT ((size) >= 0); */ \ + /* ASSERT ((start) >= 0); */ \ + /* ASSERT ((start) <= (size)); */ \ + /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, size)); */ \ + for (__gmp_j = (start); __gmp_j < (size); __gmp_j++) \ + (dst)[__gmp_j] = (src)[__gmp_j]; \ + } while (0) +#endif + +/* Enhancement: Use some of the smarter code from gmp-impl.h. Maybe use + mpn_copyi if there's a native version, and if we don't mind demanding + binary compatibility for it (on targets which use it). */ + +#if ! defined (__GMPN_COPY) +#define __GMPN_COPY(dst, src, size) __GMPN_COPY_REST (dst, src, size, 0) +#endif + + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_add) +#if ! defined (__GMP_FORCE_mpn_add) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpn_add (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) +{ + mp_limb_t __gmp_c; + __GMPN_ADD (__gmp_c, __gmp_wp, __gmp_xp, __gmp_xsize, __gmp_yp, __gmp_ysize); + return __gmp_c; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_add_1) +#if ! defined (__GMP_FORCE_mpn_add_1) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpn_add_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) __GMP_NOTHROW +{ + mp_limb_t __gmp_c; + __GMPN_ADD_1 (__gmp_c, __gmp_dst, __gmp_src, __gmp_size, __gmp_n); + return __gmp_c; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_cmp) +#if ! defined (__GMP_FORCE_mpn_cmp) +__GMP_EXTERN_INLINE +#endif +int +mpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size) __GMP_NOTHROW +{ + int __gmp_result; + __GMPN_CMP (__gmp_result, __gmp_xp, __gmp_yp, __gmp_size); + return __gmp_result; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub) +#if ! defined (__GMP_FORCE_mpn_sub) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpn_sub (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) +{ + mp_limb_t __gmp_c; + __GMPN_SUB (__gmp_c, __gmp_wp, __gmp_xp, __gmp_xsize, __gmp_yp, __gmp_ysize); + return __gmp_c; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub_1) +#if ! defined (__GMP_FORCE_mpn_sub_1) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpn_sub_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) __GMP_NOTHROW +{ + mp_limb_t __gmp_c; + __GMPN_SUB_1 (__gmp_c, __gmp_dst, __gmp_src, __gmp_size, __gmp_n); + return __gmp_c; +} +#endif + +#if defined (__cplusplus) +} +#endif + + +/* Allow faster testing for negative, zero, and positive. */ +#define mpz_sgn(Z) ((Z)->_mp_size < 0 ? -1 : (Z)->_mp_size > 0) +#define mpf_sgn(F) ((F)->_mp_size < 0 ? -1 : (F)->_mp_size > 0) +#define mpq_sgn(Q) ((Q)->_mp_num._mp_size < 0 ? -1 : (Q)->_mp_num._mp_size > 0) + +/* When using GCC, optimize certain common comparisons. */ +#if defined (__GNUC__) +#define mpz_cmp_ui(Z,UI) \ + (__builtin_constant_p (UI) && (UI) == 0 \ + ? mpz_sgn (Z) : _mpz_cmp_ui (Z,UI)) +#define mpz_cmp_si(Z,SI) \ + (__builtin_constant_p (SI) && (SI) == 0 ? mpz_sgn (Z) \ + : __builtin_constant_p (SI) && (SI) > 0 \ + ? _mpz_cmp_ui (Z, __GMP_CAST (unsigned long int, SI)) \ + : _mpz_cmp_si (Z,SI)) +#define mpq_cmp_ui(Q,NUI,DUI) \ + (__builtin_constant_p (NUI) && (NUI) == 0 \ + ? mpq_sgn (Q) : _mpq_cmp_ui (Q,NUI,DUI)) +#define mpq_cmp_si(q,n,d) \ + (__builtin_constant_p ((n) >= 0) && (n) >= 0 \ + ? mpq_cmp_ui (q, __GMP_CAST (unsigned long, n), d) \ + : _mpq_cmp_si (q, n, d)) +#else +#define mpz_cmp_ui(Z,UI) _mpz_cmp_ui (Z,UI) +#define mpz_cmp_si(Z,UI) _mpz_cmp_si (Z,UI) +#define mpq_cmp_ui(Q,NUI,DUI) _mpq_cmp_ui (Q,NUI,DUI) +#define mpq_cmp_si(q,n,d) _mpq_cmp_si(q,n,d) +#endif + + +/* Using "&" rather than "&&" means these can come out branch-free. Every + mpz_t has at least one limb allocated, so fetching the low limb is always + allowed. */ +#define mpz_odd_p(z) (((z)->_mp_size != 0) & __GMP_CAST (int, (z)->_mp_d[0])) +#define mpz_even_p(z) (! mpz_odd_p (z)) + + +/**************** C++ routines ****************/ + +#ifdef __cplusplus +__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpz_srcptr); +__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpq_srcptr); +__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpf_srcptr); +__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpz_ptr); +__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpq_ptr); +__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpf_ptr); +#endif + +/* Source-level compatibility with GMP 1. */ +#define mpz_mdiv mpz_fdiv_q +#define mpz_mdivmod mpz_fdiv_qr +#define mpz_mmod mpz_fdiv_r +#define mpz_mdiv_ui mpz_fdiv_q_ui +#define mpz_mdivmod_ui(q,r,n,d) \ + (((r) == 0) ? mpz_fdiv_q_ui (q,n,d) : mpz_fdiv_qr_ui (q,r,n,d)) +#define mpz_mmod_ui(r,n,d) \ + (((r) == 0) ? mpz_fdiv_ui (n,d) : mpz_fdiv_r_ui (r,n,d)) + +#define gmp_randinit(x,y,z) gmp_randinit_lc_2exp_size(x,z) + +typedef __mpz_struct MP_INT; /* gmp 1 source compatibility */ +typedef __mpq_struct MP_RAT; /* gmp 1 source compatibility */ + +#define mpz_div mpz_fdiv_q +#define mpz_divmod mpz_fdiv_qr +#define mpz_div_ui mpz_fdiv_q_ui +#define mpz_divmod_ui mpz_fdiv_qr_ui +#define mpz_div_2exp mpz_fdiv_q_2exp +#define mpz_mod_2exp mpz_fdiv_r_2exp + +enum +{ + GMP_ERROR_NONE = 0, + GMP_ERROR_UNSUPPORTED_ARGUMENT = 1, + GMP_ERROR_DIVISION_BY_ZERO = 2, + GMP_ERROR_SQRT_OF_NEGATIVE = 4, + GMP_ERROR_INVALID_ARGUMENT = 8 +}; + +/* Major version number is the value of __GNU_MP__ too, above and in mp.h. */ +#define __GNU_MP_VERSION 5 +#define __GNU_MP_VERSION_MINOR 0 +#define __GNU_MP_VERSION_PATCHLEVEL 2 +#define GMP_VERSION "5.0.2" + +#define __MPIR_VERSION 2 +#define __MPIR_VERSION_MINOR 4 +#define __MPIR_VERSION_PATCHLEVEL 0 +#if defined( _MSC_VER ) +#define _MSC_MPIR_VERSION "2.4.0" +#endif + +/* These are for programs like MPFR to use the same CC and CFLAGS as MPIR */ + +#if ! defined (__GMP_WITHIN_CONFIGURE) +/* No __GMP_CC here as --enable-gmpcompat option not selected */ + +#define __MPIR_CC "gcc" +#define __MPIR_CFLAGS "-O2 -m64 -march=corei7 -mtune=corei7" +#endif + +#define __GMP_H__ +#endif /* __GMP_H__ */ diff --git a/src/external/inc/linux-g++/mpir-2.4.0/mpirxx.h b/src/external/inc/linux-g++/mpir-2.4.0/mpirxx.h new file mode 100644 index 000000000..3ad1dcf6f --- /dev/null +++ b/src/external/inc/linux-g++/mpir-2.4.0/mpirxx.h @@ -0,0 +1,3403 @@ +/* mpirxx.h -- C++ class wrapper for GMP types. -*- C++ -*- + +Copyright 2001, 2002, 2003, 2006, 2008 Free Software Foundation, Inc. + +Copyright 2009 William Hart + +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/. */ + +/* the C++ compiler must implement the following features: + - member templates + - partial specialization of templates + - namespace support + for g++, this means version 2.91 or higher + for other compilers, I don't know */ +#ifdef __GNUC__ +#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 91) +#error mpirxx.h requires g++ version 2.91 (egcs 1.1.2) or higher +#endif +#endif + +#ifndef __GMP_PLUSPLUS__ +#define __GMP_PLUSPLUS__ + +#include + +#include /* for strlen */ +#include +#include +#include +#include + + +/**************** Function objects ****************/ +/* Any evaluation of a __gmp_expr ends up calling one of these functions + all intermediate functions being inline, the evaluation should optimize + to a direct call to the relevant function, thus yielding no overhead + over the C interface. */ + +struct __gmp_unary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_set(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_set(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_set(f, g); } +}; + +struct __gmp_unary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_neg(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_neg(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_neg(f, g); } +}; + +struct __gmp_unary_com +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_com(z, w); } +}; + +struct __gmp_binary_plus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_add(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_add_ui(z, w, l); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { mpz_add_ui(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + mpz_add_ui(z, w, l); + else + mpz_sub_ui(z, w, -l); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (l >= 0) + mpz_add_ui(z, w, l); + else + mpz_sub_ui(z, w, -l); + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { + mpz_t temp; + mpz_init_set_d(temp, d); + mpz_add(z, w, temp); + mpz_clear(temp); + } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { + mpz_t temp; + mpz_init_set_d(temp, d); + mpz_add(z, temp, w); + mpz_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_add(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { mpq_set(q, r); mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { mpq_set(q, r); mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + mpq_set(q, r); + if (l >= 0) + mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); + else + mpz_submul_ui(mpq_numref(q), mpq_denref(q), -l); + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { + mpq_set(q, r); + if (l >= 0) + mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); + else + mpz_submul_ui(mpq_numref(q), mpq_denref(q), -l); + } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_add(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_add(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { mpq_set(q, r); mpz_addmul(mpq_numref(q), mpq_denref(q), z); } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { mpq_set(q, r); mpz_addmul(mpq_numref(q), mpq_denref(q), z); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_add(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_add_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_add_ui(f, g, l); + else + mpf_sub_ui(f, g, -l); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_add_ui(f, g, l); + else + mpf_sub_ui(f, g, -l); + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_add(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_add(f, temp, g); + mpf_clear(temp); + } +}; + +struct __gmp_binary_minus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_sub(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_sub_ui(z, w, l); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { mpz_ui_sub(z, l, w); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + mpz_sub_ui(z, w, l); + else + mpz_add_ui(z, w, -l); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (l >= 0) + mpz_ui_sub(z, l, w); + else + { + mpz_add_ui(z, w, -l); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { + mpz_t temp; + mpz_init_set_d(temp, d); + mpz_sub(z, w, temp); + mpz_clear(temp); + } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { + mpz_t temp; + mpz_init_set_d(temp, d); + mpz_sub(z, temp, w); + mpz_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_sub(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { mpq_set(q, r); mpz_submul_ui(mpq_numref(q), mpq_denref(q), l); } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { mpq_neg(q, r); mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + mpq_set(q, r); + if (l >= 0) + mpz_submul_ui(mpq_numref(q), mpq_denref(q), l); + else + mpz_addmul_ui(mpq_numref(q), mpq_denref(q), -l); + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { + mpq_neg(q, r); + if (l >= 0) + mpz_addmul_ui(mpq_numref(q), mpq_denref(q), l); + else + mpz_submul_ui(mpq_numref(q), mpq_denref(q), -l); + } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_sub(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z) + { mpq_set(q, r); mpz_submul(mpq_numref(q), mpq_denref(q), z); } + static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r) + { mpq_neg(q, r); mpz_addmul(mpq_numref(q), mpq_denref(q), z); } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_sub(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_sub_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_sub(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -l); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_sub_ui(f, g, l); + else + mpf_add_ui(f, g, -l); + mpf_neg(f, f); + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_sub(f, temp, g); + mpf_clear(temp); + } +}; + +struct __gmp_binary_multiplies +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_mul(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_mul_ui(z, w, l); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { mpz_mul_ui(z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { mpz_mul_si (z, w, l); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { mpz_mul_si (z, w, l); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { + mpz_t temp; + mpz_init_set_d(temp, d); + mpz_mul(z, w, temp); + mpz_clear(temp); + } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { + mpz_t temp; + mpz_init_set_d(temp, d); + mpz_mul(z, temp, w); + mpz_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_mul(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + mpq_t temp; + mpq_init(temp); + mpq_set_ui(temp, l, 1); + mpq_mul(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_ui(temp, l, 1); + mpq_mul(q, temp, r); + mpq_clear(temp); + } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + mpq_t temp; + mpq_init(temp); + mpq_set_si(temp, l, 1); + mpq_mul(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_si(temp, l, 1); + mpq_mul(q, temp, r); + mpq_clear(temp); + } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_mul(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_mul(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_mul(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_mul_ui(f, g, l); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_mul_ui(f, g, l); + else + { + mpf_mul_ui(f, g, -l); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_mul_ui(f, g, l); + else + { + mpf_mul_ui(f, g, -l); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_mul(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_mul(f, temp, g); + mpf_clear(temp); + } +}; + +struct __gmp_binary_divides +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_q(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_tdiv_q_ui(z, w, l); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l / mpz_get_ui(w)); + else + mpz_set_ui(z, 0); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + { + mpz_set_ui(z, l / mpz_get_ui(z)); + mpz_neg(z, z); + } + else + mpz_set_ui(z, 0); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + if (l >= 0) + mpz_tdiv_q_ui(z, w, l); + else + { + mpz_tdiv_q_ui(z, w, -l); + mpz_neg(z, z); + } + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l / mpz_get_si(w)); + else + { + /* if w is bigger than a long then the quotient must be zero, unless + l==LONG_MIN and w==-LONG_MIN in which case the quotient is -1 */ + mpz_set_si (z, (mpz_cmpabs_ui (w, (l >= 0 ? l : -l)) == 0 ? -1 : 0)); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { + mpz_t temp; + mpz_init_set_d(temp, d); + mpz_tdiv_q(z, w, temp); + mpz_clear(temp); + } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { + mpz_t temp; + mpz_init_set_d(temp, d); + mpz_tdiv_q(z, temp, w); + mpz_clear(temp); + } + + static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s) + { mpq_div(q, r, s); } + + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { + mpq_t temp; + mpq_init(temp); + mpq_set_ui(temp, l, 1); + mpq_div(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, unsigned long int l, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_ui(temp, l, 1); + mpq_div(q, temp, r); + mpq_clear(temp); + } + static void eval(mpq_ptr q, mpq_srcptr r, signed long int l) + { + mpq_t temp; + mpq_init(temp); + mpq_set_si(temp, l, 1); + mpq_div(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, signed long int l, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_si(temp, l, 1); + mpq_div(q, temp, r); + mpq_clear(temp); + } + static void eval(mpq_ptr q, mpq_srcptr r, double d) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, r, temp); + mpq_clear(temp); + } + static void eval(mpq_ptr q, double d, mpq_srcptr r) + { + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + mpq_div(q, temp, r); + mpq_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { mpf_div(f, g, h); } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_div_ui(f, g, l); } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { mpf_ui_div(f, l, g); } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + if (l >= 0) + mpf_div_ui(f, g, l); + else + { + mpf_div_ui(f, g, -l); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + if (l >= 0) + mpf_ui_div(f, l, g); + else + { + mpf_ui_div(f, -l, g); + mpf_neg(f, f); + } + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, g, temp); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, 8*sizeof(double)); + mpf_set_d(temp, d); + mpf_div(f, temp, g); + mpf_clear(temp); + } +}; + +struct __gmp_binary_modulus +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_tdiv_r(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_tdiv_r_ui(z, w, l); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { + if (mpz_sgn(w) >= 0) + { + if (mpz_fits_ulong_p(w)) + mpz_set_ui(z, l % mpz_get_ui(w)); + else + mpz_set_ui(z, l); + } + else + { + mpz_neg(z, w); + if (mpz_fits_ulong_p(z)) + mpz_set_ui(z, l % mpz_get_ui(z)); + else + mpz_set_ui(z, l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { + mpz_tdiv_r_ui (z, w, (l >= 0 ? l : -l)); + } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { + if (mpz_fits_slong_p(w)) + mpz_set_si(z, l % mpz_get_si(w)); + else + { + /* if w is bigger than a long then the remainder is l unchanged, + unless l==LONG_MIN and w==-LONG_MIN in which case it's 0 */ + mpz_set_si (z, mpz_cmpabs_ui (w, (l >= 0 ? l : -l)) == 0 ? 0 : l); + } + } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { + mpz_t temp; + mpz_init_set_d(temp, d); + mpz_tdiv_r(z, w, temp); + mpz_clear(temp); + } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { + mpz_t temp; + mpz_init_set_d(temp, d); + mpz_tdiv_r(z, temp, w); + mpz_clear(temp); + } +}; + +// Max allocations for plain types when converted to mpz_t +#define __GMP_DBL_LIMBS (2 + DBL_MAX_EXP / GMP_NUMB_BITS) +#define __GMP_ULI_LIMBS (1 + (8 * sizeof (long) - 1) / GMP_NUMB_BITS) + +#define __GMPXX_TMP_UI \ + mpz_t temp; \ + mp_limb_t limbs[__GMP_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + temp->_mp_alloc = __GMP_ULI_LIMBS; \ + mpz_set_ui (temp, l) +#define __GMPXX_TMP_SI \ + mpz_t temp; \ + mp_limb_t limbs[__GMP_ULI_LIMBS]; \ + temp->_mp_d = limbs; \ + temp->_mp_alloc = __GMP_ULI_LIMBS; \ + mpz_set_si (temp, l) +#define __GMPXX_TMP_D \ + mpz_t temp; \ + mp_limb_t limbs[__GMP_DBL_LIMBS]; \ + temp->_mp_d = limbs; \ + temp->_mp_alloc = __GMP_DBL_LIMBS; \ + mpz_set_d (temp, d) + +struct __gmp_binary_and +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_and(z, w, v); } + + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMP_UI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { __GMPXX_TMP_UI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMP_SI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { __GMPXX_TMP_SI; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMP_D; mpz_and (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMP_D; mpz_and (z, w, temp); } +}; + +struct __gmp_binary_ior +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_ior(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMP_UI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { __GMPXX_TMP_UI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMP_SI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { __GMPXX_TMP_SI; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMP_D; mpz_ior (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMP_D; mpz_ior (z, w, temp); } +}; + +struct __gmp_binary_xor +{ + static void eval(mpz_ptr z, mpz_srcptr w, mpz_srcptr v) + { mpz_xor(z, w, v); } + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { __GMPXX_TMP_UI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, unsigned long int l, mpz_srcptr w) + { __GMPXX_TMP_UI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, mpz_srcptr w, signed long int l) + { __GMPXX_TMP_SI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, signed long int l, mpz_srcptr w) + { __GMPXX_TMP_SI; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, mpz_srcptr w, double d) + { __GMPXX_TMP_D; mpz_xor (z, w, temp); } + static void eval(mpz_ptr z, double d, mpz_srcptr w) + { __GMPXX_TMP_D; mpz_xor (z, w, temp); } +}; + +struct __gmp_binary_lshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_mul_2exp(z, w, l); } + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { mpq_mul_2exp(q, r, l); } + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_mul_2exp(f, g, l); } +}; + +struct __gmp_binary_rshift +{ + static void eval(mpz_ptr z, mpz_srcptr w, unsigned long int l) + { mpz_fdiv_q_2exp(z, w, l); } + static void eval(mpq_ptr q, mpq_srcptr r, unsigned long int l) + { mpq_div_2exp(q, r, l); } + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { mpf_div_2exp(f, g, l); } +}; + +struct __gmp_binary_equal +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) == 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) == 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) == 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) == 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) == 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) + { return mpq_equal(q, r) != 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) == 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_equal(q, temp) != 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_equal(temp, q) != 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) == 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) == 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) == 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) == 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) == 0; } +}; + +struct __gmp_binary_not_equal +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) != 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) != 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) != 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) != 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) != 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) != 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) != 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) + { return mpq_equal(q, r) == 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) != 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) != 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) != 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) != 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_equal(q, temp) == 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_equal(temp, q) == 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) != 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) != 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) != 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) != 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) != 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) != 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) != 0; } +}; + +struct __gmp_binary_less +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) < 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) < 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) > 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) < 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) < 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) < 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) < 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) < 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) > 0; } +}; + +struct __gmp_binary_less_equal +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) <= 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) <= 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) >= 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) <= 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) >= 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) <= 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) >= 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) <= 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) <= 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) >= 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) <= 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) >= 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) <= 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) <= 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) <= 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) <= 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) >= 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) <= 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) >= 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) <= 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) >= 0; } +}; + +struct __gmp_binary_greater +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) > 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) > 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) < 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) > 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) < 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) > 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) < 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) > 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) > 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) > 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) < 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) > 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) > 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) > 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) > 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) < 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) > 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) < 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) > 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) < 0; } +}; + +struct __gmp_binary_greater_equal +{ + static bool eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w) >= 0; } + + static bool eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l) >= 0; } + static bool eval(unsigned long int l, mpz_srcptr z) + { return mpz_cmp_ui(z, l) <= 0; } + static bool eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l) >= 0; } + static bool eval(signed long int l, mpz_srcptr z) + { return mpz_cmp_si(z, l) <= 0; } + static bool eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d) >= 0; } + static bool eval(double d, mpz_srcptr z) + { return mpz_cmp_d(z, d) <= 0; } + + static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) >= 0; } + + static bool eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1) >= 0; } + static bool eval(unsigned long int l, mpq_srcptr q) + { return mpq_cmp_ui(q, l, 1) <= 0; } + static bool eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1) >= 0; } + static bool eval(signed long int l, mpq_srcptr q) + { return mpq_cmp_si(q, l, 1) <= 0; } + static bool eval(mpq_srcptr q, double d) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(q, temp) >= 0); + mpq_clear(temp); + return b; + } + static bool eval(double d, mpq_srcptr q) + { + bool b; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + b = (mpq_cmp(temp, q) >= 0); + mpq_clear(temp); + return b; + } + + static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) >= 0; } + + static bool eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l) >= 0; } + static bool eval(unsigned long int l, mpf_srcptr f) + { return mpf_cmp_ui(f, l) <= 0; } + static bool eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l) >= 0; } + static bool eval(signed long int l, mpf_srcptr f) + { return mpf_cmp_si(f, l) <= 0; } + static bool eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d) >= 0; } + static bool eval(double d, mpf_srcptr f) + { return mpf_cmp_d(f, d) <= 0; } +}; + +struct __gmp_unary_increment +{ + static void eval(mpz_ptr z) { mpz_add_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_add(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_add_ui(f, f, 1); } +}; + +struct __gmp_unary_decrement +{ + static void eval(mpz_ptr z) { mpz_sub_ui(z, z, 1); } + static void eval(mpq_ptr q) + { mpz_sub(mpq_numref(q), mpq_numref(q), mpq_denref(q)); } + static void eval(mpf_ptr f) { mpf_sub_ui(f, f, 1); } +}; + +struct __gmp_abs_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_abs(z, w); } + static void eval(mpq_ptr q, mpq_srcptr r) { mpq_abs(q, r); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_abs(f, g); } +}; + +struct __gmp_trunc_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_trunc(f, g); } +}; + +struct __gmp_floor_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_floor(f, g); } +}; + +struct __gmp_ceil_function +{ + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_ceil(f, g); } +}; + +struct __gmp_sqrt_function +{ + static void eval(mpz_ptr z, mpz_srcptr w) { mpz_sqrt(z, w); } + static void eval(mpf_ptr f, mpf_srcptr g) { mpf_sqrt(f, g); } +}; + +struct __gmp_hypot_function +{ + static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_mul(f, h, h); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + + static void eval(mpf_ptr f, mpf_srcptr g, unsigned long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_ui(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, unsigned long int l, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_ui(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, mpf_srcptr g, signed long int l) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_si(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, signed long int l, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_si(f, l); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, mpf_srcptr g, double d) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_d(f, d); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } + static void eval(mpf_ptr f, double d, mpf_srcptr g) + { + mpf_t temp; + mpf_init2(temp, mpf_get_prec(f)); + mpf_mul(temp, g, g); + mpf_set_d(f, d); + mpf_mul(f, f, f); + mpf_add(f, f, temp); + mpf_sqrt(f, f); + mpf_clear(temp); + } +}; + +struct __gmp_sgn_function +{ + static int eval(mpz_srcptr z) { return mpz_sgn(z); } + static int eval(mpq_srcptr q) { return mpq_sgn(q); } + static int eval(mpf_srcptr f) { return mpf_sgn(f); } +}; + +struct __gmp_cmp_function +{ + static int eval(mpz_srcptr z, mpz_srcptr w) { return mpz_cmp(z, w); } + + static int eval(mpz_srcptr z, unsigned long int l) + { return mpz_cmp_ui(z, l); } + static int eval(unsigned long int l, mpz_srcptr z) + { return -mpz_cmp_ui(z, l); } + static int eval(mpz_srcptr z, signed long int l) + { return mpz_cmp_si(z, l); } + static int eval(signed long int l, mpz_srcptr z) + { return -mpz_cmp_si(z, l); } + static int eval(mpz_srcptr z, double d) + { return mpz_cmp_d(z, d); } + static int eval(double d, mpz_srcptr z) + { return -mpz_cmp_d(z, d); } + + static int eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r); } + + static int eval(mpq_srcptr q, unsigned long int l) + { return mpq_cmp_ui(q, l, 1); } + static int eval(unsigned long int l, mpq_srcptr q) + { return -mpq_cmp_ui(q, l, 1); } + static int eval(mpq_srcptr q, signed long int l) + { return mpq_cmp_si(q, l, 1); } + static int eval(signed long int l, mpq_srcptr q) + { return -mpq_cmp_si(q, l, 1); } + static int eval(mpq_srcptr q, double d) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(q, temp); + mpq_clear(temp); + return i; + } + static int eval(double d, mpq_srcptr q) + { + int i; + mpq_t temp; + mpq_init(temp); + mpq_set_d(temp, d); + i = mpq_cmp(temp, q); + mpq_clear(temp); + return i; + } + + static int eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g); } + + static int eval(mpf_srcptr f, unsigned long int l) + { return mpf_cmp_ui(f, l); } + static int eval(unsigned long int l, mpf_srcptr f) + { return -mpf_cmp_ui(f, l); } + static int eval(mpf_srcptr f, signed long int l) + { return mpf_cmp_si(f, l); } + static int eval(signed long int l, mpf_srcptr f) + { return -mpf_cmp_si(f, l); } + static int eval(mpf_srcptr f, double d) + { return mpf_cmp_d(f, d); } + static int eval(double d, mpf_srcptr f) + { return -mpf_cmp_d(f, d); } +}; + +struct __gmp_rand_function +{ + static void eval(mpz_ptr z, gmp_randstate_t s, unsigned long int l) + { mpz_urandomb(z, s, l); } + static void eval(mpz_ptr z, gmp_randstate_t s, mpz_srcptr w) + { mpz_urandomm(z, s, w); } + static void eval(mpf_ptr f, gmp_randstate_t s, mp_bitcnt_t prec) + { mpf_urandomb(f, s, prec); } +}; + + +/**************** Auxiliary classes ****************/ + +/* this is much the same as gmp_allocated_string in gmp-impl.h + since gmp-impl.h is not publicly available, I redefine it here + I use a different name to avoid possible clashes */ +extern "C" { +struct __gmp_alloc_cstring_c +{ + void (*free_func) (void *, size_t); +}; +} + +struct __gmp_alloc_cstring : __gmp_alloc_cstring_c +{ + char *str; + __gmp_alloc_cstring(char *s) { str = s; } + ~__gmp_alloc_cstring() + { + mp_get_memory_functions (NULL, NULL, &free_func); + (*free_func) (str, std::strlen(str)+1); + } +}; + +// general expression template class +template +class __gmp_expr; + + +// templates for resolving expression types +template +struct __gmp_resolve_ref +{ + typedef T ref_type; +}; + +template +struct __gmp_resolve_ref<__gmp_expr > +{ + typedef const __gmp_expr & ref_type; +}; + + +template +struct __gmp_resolve_expr; + +template <> +struct __gmp_resolve_expr +{ + typedef mpz_t value_type; + typedef mpz_ptr ptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; + typedef mpq_ptr ptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; + typedef mpf_ptr ptr_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpq_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + +template <> +struct __gmp_resolve_expr +{ + typedef mpf_t value_type; +}; + + + +template +struct __gmp_resolve_temp +{ + typedef __gmp_expr temp_type; +}; + +template +struct __gmp_resolve_temp +{ + typedef const __gmp_expr & temp_type; +}; + + +// classes for evaluating unary and binary expressions +template +struct __gmp_unary_expr +{ + const T &val; + + __gmp_unary_expr(const T &v) : val(v) { } +private: + __gmp_unary_expr(); +}; + +template +struct __gmp_binary_expr +{ + typename __gmp_resolve_ref::ref_type val1; + typename __gmp_resolve_ref::ref_type val2; + + __gmp_binary_expr(const T &v1, const U &v2) : val1(v1), val2(v2) { } +private: + __gmp_binary_expr(); +}; + + +// functions for evaluating expressions +template +void __gmp_set_expr(mpz_ptr, const __gmp_expr &); +template +void __gmp_set_expr(mpq_ptr, const __gmp_expr &); +template +void __gmp_set_expr(mpf_ptr, const __gmp_expr &); + + +/**************** Macros for in-class declarations ****************/ +/* This is just repetitive code that is easier to maintain if it's written + only once */ + +#define __GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ + template \ + __gmp_expr & fun(const __gmp_expr &); + +#define __GMPN_DECLARE_COMPOUND_OPERATOR(fun) \ + __gmp_expr & fun(signed char); \ + __gmp_expr & fun(unsigned char); \ + __gmp_expr & fun(signed int); \ + __gmp_expr & fun(unsigned int); \ + __gmp_expr & fun(signed short int); \ + __gmp_expr & fun(unsigned short int); \ + __gmp_expr & fun(signed long int); \ + __gmp_expr & fun(unsigned long int); \ + __gmp_expr & fun(float); \ + __gmp_expr & fun(double); \ + __gmp_expr & fun(long double); + +#define __GMP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPP_DECLARE_COMPOUND_OPERATOR(fun) \ +__GMPN_DECLARE_COMPOUND_OPERATOR(fun) + +#define __GMP_DECLARE_COMPOUND_OPERATOR_UI(fun) \ + __gmp_expr & fun(unsigned long int); + +#define __GMP_DECLARE_INCREMENT_OPERATOR(fun) \ + inline __gmp_expr & fun(); \ + inline __gmp_expr fun(int); + + +/**************** mpz_class -- wrapper for mpz_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpz_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + + // constructors and destructor + __gmp_expr() { mpz_init(mp); } + + __gmp_expr(const __gmp_expr &z) { mpz_init_set(mp, z.mp); } + template + __gmp_expr(const __gmp_expr &expr) + { mpz_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpz_init_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpz_init_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpz_init_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpz_init_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpz_init_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpz_init_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpz_init_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpz_init_set_ui(mp, l); } + + __gmp_expr(float f) { mpz_init_set_d(mp, f); } + __gmp_expr(double d) { mpz_init_set_d(mp, d); } + // __gmp_expr(long double ld) { mpz_init_set_d(mp, ld); } + + explicit __gmp_expr(const char *s) + { + if (mpz_init_set_str (mp, s, 0) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + __gmp_expr(const char *s, int base) + { + if (mpz_init_set_str (mp, s, base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + explicit __gmp_expr(const std::string &s) + { + if (mpz_init_set_str (mp, s.c_str(), 0) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + __gmp_expr(const std::string &s, int base) + { + if (mpz_init_set_str(mp, s.c_str(), base) != 0) + { + mpz_clear (mp); + throw std::invalid_argument ("mpz_set_str"); + } + } + + explicit __gmp_expr(mpz_srcptr z) { mpz_init_set(mp, z); } + + ~__gmp_expr() { mpz_clear(mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &z) + { mpz_set(mp, z.mp); return *this; } + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpz_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpz_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpz_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpz_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpz_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpz_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpz_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpz_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpz_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpz_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpz_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpz_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpz_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpz_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpz_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpz_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpz_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + mpz_srcptr __get_mp() const { return mp; } + mpz_ptr __get_mp() { return mp; } + mpz_srcptr get_mpz_t() const { return mp; } + mpz_ptr get_mpz_t() { return mp; } + + signed long int get_si() const { return mpz_get_si(mp); } + unsigned long int get_ui() const { return mpz_get_ui(mp); } + double get_d() const { return mpz_get_d(mp); } + + // bool fits_schar_p() const { return mpz_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpz_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpz_fits_sint_p(mp); } + bool fits_uint_p() const { return mpz_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpz_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpz_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpz_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpz_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpz_fits_float_p(mp); } + // bool fits_double_p() const { return mpz_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpz_fits_ldouble_p(mp); } + + // member operators + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator%=) + + __GMPP_DECLARE_COMPOUND_OPERATOR(operator&=) + __GMPP_DECLARE_COMPOUND_OPERATOR(operator|=) + __GMPP_DECLARE_COMPOUND_OPERATOR(operator^=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpz_class; + + +/**************** mpq_class -- wrapper for mpq_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpq_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_default_prec(); } + void canonicalize() { mpq_canonicalize(mp); } + + // constructors and destructor + __gmp_expr() { mpq_init(mp); } + + __gmp_expr(const __gmp_expr &q) { mpq_init(mp); mpq_set(mp, q.mp); } + template + __gmp_expr(const __gmp_expr &expr) + { mpq_init(mp); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpq_init(mp); mpq_set_si(mp, c, 1); } + __gmp_expr(unsigned char c) { mpq_init(mp); mpq_set_ui(mp, c, 1); } + + __gmp_expr(signed int i) { mpq_init(mp); mpq_set_si(mp, i, 1); } + __gmp_expr(unsigned int i) { mpq_init(mp); mpq_set_ui(mp, i, 1); } + + __gmp_expr(signed short int s) { mpq_init(mp); mpq_set_si(mp, s, 1); } + __gmp_expr(unsigned short int s) { mpq_init(mp); mpq_set_ui(mp, s, 1); } + + __gmp_expr(signed long int l) { mpq_init(mp); mpq_set_si(mp, l, 1); } + __gmp_expr(unsigned long int l) { mpq_init(mp); mpq_set_ui(mp, l, 1); } + + __gmp_expr(float f) { mpq_init(mp); mpq_set_d(mp, f); } + __gmp_expr(double d) { mpq_init(mp); mpq_set_d(mp, d); } + // __gmp_expr(long double ld) { mpq_init(mp); mpq_set_ld(mp, ld); } + + explicit __gmp_expr(const char *s) + { + mpq_init (mp); + if (mpq_set_str (mp, s, 0) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + __gmp_expr(const char *s, int base) + { + mpq_init (mp); + if (mpq_set_str(mp, s, base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(const std::string &s) + { + mpq_init (mp); + if (mpq_set_str (mp, s.c_str(), 0) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + __gmp_expr(const std::string &s, int base) + { + mpq_init(mp); + if (mpq_set_str (mp, s.c_str(), base) != 0) + { + mpq_clear (mp); + throw std::invalid_argument ("mpq_set_str"); + } + } + explicit __gmp_expr(mpq_srcptr q) { mpq_init(mp); mpq_set(mp, q); } + + __gmp_expr(const mpz_class &num, const mpz_class &den) + { + mpq_init(mp); + mpz_set(mpq_numref(mp), num.get_mpz_t()); + mpz_set(mpq_denref(mp), den.get_mpz_t()); + } + + ~__gmp_expr() { mpq_clear(mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &q) + { mpq_set(mp, q.mp); return *this; } + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) + { mpq_set_si(mp, c, 1); return *this; } + __gmp_expr & operator=(unsigned char c) + { mpq_set_ui(mp, c, 1); return *this; } + + __gmp_expr & operator=(signed int i) { mpq_set_si(mp, i, 1); return *this; } + __gmp_expr & operator=(unsigned int i) + { mpq_set_ui(mp, i, 1); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpq_set_si(mp, s, 1); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpq_set_ui(mp, s, 1); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpq_set_si(mp, l, 1); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpq_set_ui(mp, l, 1); return *this; } + + __gmp_expr & operator=(float f) { mpq_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpq_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpq_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpq_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpq_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpq_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpq_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpq_set_str(mp, s.c_str(), base); } + std::string get_str(int base = 10) const + { + __gmp_alloc_cstring temp(mpq_get_str(0, base, mp)); + return std::string(temp.str); + } + + // conversion functions + + // casting a reference to an mpz_t to mpz_class & is a dirty hack, + // but works because the internal representation of mpz_class is + // exactly an mpz_t + const mpz_class & get_num() const + { return reinterpret_cast(*mpq_numref(mp)); } + mpz_class & get_num() + { return reinterpret_cast(*mpq_numref(mp)); } + const mpz_class & get_den() const + { return reinterpret_cast(*mpq_denref(mp)); } + mpz_class & get_den() + { return reinterpret_cast(*mpq_denref(mp)); } + + mpq_srcptr __get_mp() const { return mp; } + mpq_ptr __get_mp() { return mp; } + mpq_srcptr get_mpq_t() const { return mp; } + mpq_ptr get_mpq_t() { return mp; } + + mpz_srcptr get_num_mpz_t() const { return mpq_numref(mp); } + mpz_ptr get_num_mpz_t() { return mpq_numref(mp); } + mpz_srcptr get_den_mpz_t() const { return mpq_denref(mp); } + mpz_ptr get_den_mpz_t() { return mpq_denref(mp); } + + double get_d() const { return mpq_get_d(mp); } + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpq_class; + + +/**************** mpf_class -- wrapper for mpf_t ****************/ + +template <> +class __gmp_expr +{ +private: + typedef mpf_t value_type; + value_type mp; +public: + mp_bitcnt_t get_prec() const { return mpf_get_prec(mp); } + + void set_prec(mp_bitcnt_t prec) { mpf_set_prec(mp, prec); } + void set_prec_raw(mp_bitcnt_t prec) { mpf_set_prec_raw(mp, prec); } + + // constructors and destructor + __gmp_expr() { mpf_init(mp); } + + __gmp_expr(const __gmp_expr &f) + { mpf_init2(mp, f.get_prec()); mpf_set(mp, f.mp); } + __gmp_expr(const __gmp_expr &f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f.mp); } + template + __gmp_expr(const __gmp_expr &expr) + { mpf_init2(mp, expr.get_prec()); __gmp_set_expr(mp, expr); } + template + __gmp_expr(const __gmp_expr &expr, mp_bitcnt_t prec) + { mpf_init2(mp, prec); __gmp_set_expr(mp, expr); } + + __gmp_expr(signed char c) { mpf_init_set_si(mp, c); } + __gmp_expr(signed char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, c); } + __gmp_expr(unsigned char c) { mpf_init_set_ui(mp, c); } + __gmp_expr(unsigned char c, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, c); } + + __gmp_expr(signed int i) { mpf_init_set_si(mp, i); } + __gmp_expr(signed int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, i); } + __gmp_expr(unsigned int i) { mpf_init_set_ui(mp, i); } + __gmp_expr(unsigned int i, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, i); } + + __gmp_expr(signed short int s) { mpf_init_set_si(mp, s); } + __gmp_expr(signed short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, s); } + __gmp_expr(unsigned short int s) { mpf_init_set_ui(mp, s); } + __gmp_expr(unsigned short int s, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, s); } + + __gmp_expr(signed long int l) { mpf_init_set_si(mp, l); } + __gmp_expr(signed long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_si(mp, l); } + __gmp_expr(unsigned long int l) { mpf_init_set_ui(mp, l); } + __gmp_expr(unsigned long int l, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_ui(mp, l); } + + __gmp_expr(float f) { mpf_init_set_d(mp, f); } + __gmp_expr(float f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, f); } + __gmp_expr(double d) { mpf_init_set_d(mp, d); } + __gmp_expr(double d, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set_d(mp, d); } + // __gmp_expr(long double ld) { mpf_init_set_d(mp, ld); } + // __gmp_expr(long double ld, mp_bitcnt_t prec) + // { mpf_init2(mp, prec); mpf_set_d(mp, ld); } + + explicit __gmp_expr(const char *s) + { + if (mpf_init_set_str (mp, s, 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const char *s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s, base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + explicit __gmp_expr(const std::string &s) + { + if (mpf_init_set_str(mp, s.c_str(), 0) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + __gmp_expr(const std::string &s, mp_bitcnt_t prec, int base = 0) + { + mpf_init2(mp, prec); + if (mpf_set_str(mp, s.c_str(), base) != 0) + { + mpf_clear (mp); + throw std::invalid_argument ("mpf_set_str"); + } + } + + explicit __gmp_expr(mpf_srcptr f) + { mpf_init2(mp, mpf_get_prec(f)); mpf_set(mp, f); } + __gmp_expr(mpf_srcptr f, mp_bitcnt_t prec) + { mpf_init2(mp, prec); mpf_set(mp, f); } + + ~__gmp_expr() { mpf_clear(mp); } + + // assignment operators + __gmp_expr & operator=(const __gmp_expr &f) + { mpf_set(mp, f.mp); return *this; } + template + __gmp_expr & operator=(const __gmp_expr &expr) + { __gmp_set_expr(mp, expr); return *this; } + + __gmp_expr & operator=(signed char c) { mpf_set_si(mp, c); return *this; } + __gmp_expr & operator=(unsigned char c) { mpf_set_ui(mp, c); return *this; } + + __gmp_expr & operator=(signed int i) { mpf_set_si(mp, i); return *this; } + __gmp_expr & operator=(unsigned int i) { mpf_set_ui(mp, i); return *this; } + + __gmp_expr & operator=(signed short int s) + { mpf_set_si(mp, s); return *this; } + __gmp_expr & operator=(unsigned short int s) + { mpf_set_ui(mp, s); return *this; } + + __gmp_expr & operator=(signed long int l) + { mpf_set_si(mp, l); return *this; } + __gmp_expr & operator=(unsigned long int l) + { mpf_set_ui(mp, l); return *this; } + + __gmp_expr & operator=(float f) { mpf_set_d(mp, f); return *this; } + __gmp_expr & operator=(double d) { mpf_set_d(mp, d); return *this; } + // __gmp_expr & operator=(long double ld) + // { mpf_set_ld(mp, ld); return *this; } + + __gmp_expr & operator=(const char *s) + { + if (mpf_set_str (mp, s, 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + __gmp_expr & operator=(const std::string &s) + { + if (mpf_set_str(mp, s.c_str(), 0) != 0) + throw std::invalid_argument ("mpf_set_str"); + return *this; + } + + // string input/output functions + int set_str(const char *s, int base) + { return mpf_set_str(mp, s, base); } + int set_str(const std::string &s, int base) + { return mpf_set_str(mp, s.c_str(), base); } + std::string get_str(mp_exp_t &expo, int base = 10, size_t size = 0) const + { + __gmp_alloc_cstring temp(mpf_get_str(0, &expo, base, size, mp)); + return std::string(temp.str); + } + + // conversion functions + mpf_srcptr __get_mp() const { return mp; } + mpf_ptr __get_mp() { return mp; } + mpf_srcptr get_mpf_t() const { return mp; } + mpf_ptr get_mpf_t() { return mp; } + + signed long int get_si() const { return mpf_get_si(mp); } + unsigned long int get_ui() const { return mpf_get_ui(mp); } + double get_d() const { return mpf_get_d(mp); } + + // bool fits_schar_p() const { return mpf_fits_schar_p(mp); } + // bool fits_uchar_p() const { return mpf_fits_uchar_p(mp); } + bool fits_sint_p() const { return mpf_fits_sint_p(mp); } + bool fits_uint_p() const { return mpf_fits_uint_p(mp); } + bool fits_sshort_p() const { return mpf_fits_sshort_p(mp); } + bool fits_ushort_p() const { return mpf_fits_ushort_p(mp); } + bool fits_slong_p() const { return mpf_fits_slong_p(mp); } + bool fits_ulong_p() const { return mpf_fits_ulong_p(mp); } + // bool fits_float_p() const { return mpf_fits_float_p(mp); } + // bool fits_double_p() const { return mpf_fits_double_p(mp); } + // bool fits_ldouble_p() const { return mpf_fits_ldouble_p(mp); } + + // compound assignments + __GMP_DECLARE_COMPOUND_OPERATOR(operator+=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator-=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator*=) + __GMP_DECLARE_COMPOUND_OPERATOR(operator/=) + + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator<<=) + __GMP_DECLARE_COMPOUND_OPERATOR_UI(operator>>=) + + __GMP_DECLARE_INCREMENT_OPERATOR(operator++) + __GMP_DECLARE_INCREMENT_OPERATOR(operator--) +}; + +typedef __gmp_expr mpf_class; + + + +/**************** I/O operators ****************/ + +// these should (and will) be provided separately + +template +inline std::ostream & operator<< +(std::ostream &o, const __gmp_expr &expr) +{ + return o << expr.__get_mp(); +} + +template +inline std::ostream & operator<< +(std::ostream &o, const __gmp_expr &expr) +{ + __gmp_expr temp(expr); + return o << temp.__get_mp(); +} + + +template +inline std::istream & operator>>(std::istream &i, __gmp_expr &expr) +{ + return i >> expr.__get_mp(); +} + +inline std::istream & operator>>(std::istream &i, mpq_class &q) +{ + i >> q.get_mpq_t(); + // q.canonicalize(); // you might want to uncomment this + return i; +} + + +/**************** Functions for type conversion ****************/ + +template <> +inline void __gmp_set_expr(mpz_ptr z, const mpz_class &w) +{ + mpz_set(z, w.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + expr.eval(z); +} + +template <> +inline void __gmp_set_expr(mpz_ptr z, const mpq_class &q) +{ + mpz_set_q(z, q.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpq_class temp(expr); + mpz_set_q(z, temp.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const mpf_class &f) +{ + mpz_set_f(z, f.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr &expr) +{ + mpf_class temp(expr); + mpz_set_f(z, temp.get_mpf_t()); +} + +template <> +inline void __gmp_set_expr(mpq_ptr q, const mpz_class &z) +{ + mpq_set_z(q, z.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + mpz_class temp(expr); + mpq_set_z(q, temp.get_mpz_t()); +} + +template <> +inline void __gmp_set_expr(mpq_ptr q, const mpq_class &r) +{ + mpq_set(q, r.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + expr.eval(q); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const mpf_class &f) +{ + mpq_set_f(q, f.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpq_ptr q, const __gmp_expr &expr) +{ + mpf_class temp(expr); + mpq_set_f(q, temp.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const mpz_class &z) +{ + mpf_set_z(f, z.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpz_class temp(expr); + mpf_set_z(f, temp.get_mpz_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const mpq_class &q) +{ + mpf_set_q(f, q.get_mpq_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + mpq_class temp(expr); + mpf_set_q(f, temp.get_mpq_t()); +} + +template <> +inline void __gmp_set_expr(mpf_ptr f, const mpf_class &g) +{ + mpf_set(f, g.get_mpf_t()); +} + +template +inline void __gmp_set_expr(mpf_ptr f, const __gmp_expr &expr) +{ + expr.eval(f, mpf_get_prec(f)); +} + + +/**************** Specializations of __gmp_expr ****************/ +/* The eval() method of __gmp_expr evaluates the corresponding + expression and assigns the result to its argument, which is either an + mpz_t, mpq_t, or mpf_t as specified by the T argument. + Compound expressions are evaluated recursively (temporaries are created + to hold intermediate values), while for simple expressions the eval() + method of the appropriate function object (available as the Op argument + of either __gmp_unary_expr or __gmp_binary_expr) is + called. */ + + +/**************** Unary expressions ****************/ +/* cases: + - simple: argument is mp*_class, that is, __gmp_expr + - compound: argument is __gmp_expr (with U not equal to T) */ + + +// simple expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p, + unsigned long int = 0) const + { Op::eval(p, expr.val.__get_mp()); } + const val_type & get_val() const { return expr.val; } + unsigned long int get_prec() const { return expr.val.get_prec(); } +}; + + +// compound expressions + +template +class __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val_type; + + __gmp_unary_expr expr; +public: + __gmp_expr(const val_type &val) : expr(val) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { __gmp_expr temp(expr.val); Op::eval(p, temp.__get_mp()); } + void eval(typename __gmp_resolve_expr::ptr_type p, + mp_bitcnt_t prec) const + { __gmp_expr temp(expr.val, prec); Op::eval(p, temp.__get_mp()); } + const val_type & get_val() const { return expr.val; } + unsigned long int get_prec() const { return expr.val.get_prec(); } +}; + + +/**************** Binary expressions ****************/ +/* simple: + - arguments are both mp*_class + - one argument is mp*_class, one is a built-in type + compound: + - one is mp*_class, one is __gmp_expr + - one is __gmp_expr, one is built-in + - both arguments are __gmp_expr<...> */ + + +// simple expressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p, + unsigned long int = 0) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// simple expressions, T is a built-in numerical type + +template +class __gmp_expr, U, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef U val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p, + unsigned long int = 0) const + { Op::eval(p, expr.val1.__get_mp(), expr.val2); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p, + unsigned long int = 0) const + { Op::eval(p, expr.val1, expr.val2.__get_mp()); } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const { return expr.val2.get_prec(); } +}; + + +// compound expressions, one argument is a subexpression + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_expr temp(expr.val2); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + void eval(typename __gmp_resolve_expr::ptr_type p, + mp_bitcnt_t prec) const + { + __gmp_expr temp(expr.val2, prec); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_expr temp(expr.val1); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + void eval(typename __gmp_resolve_expr::ptr_type p, + mp_bitcnt_t prec) const + { + __gmp_expr temp(expr.val1, prec); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_expr temp(expr.val2); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + void eval(typename __gmp_resolve_expr::ptr_type p, + mp_bitcnt_t prec) const + { + __gmp_expr temp(expr.val2, prec); + Op::eval(p, expr.val1.__get_mp(), temp.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_expr temp(expr.val1); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + void eval(typename __gmp_resolve_expr::ptr_type p, + mp_bitcnt_t prec) const + { + __gmp_expr temp(expr.val1, prec); + Op::eval(p, temp.__get_mp(), expr.val2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +// one argument is a subexpression, one is a built-in + +template +class __gmp_expr, V, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef V val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_expr temp(expr.val1); + Op::eval(p, temp.__get_mp(), expr.val2); + } + void eval(typename __gmp_resolve_expr::ptr_type p, + mp_bitcnt_t prec) const + { + __gmp_expr temp(expr.val1, prec); + Op::eval(p, temp.__get_mp(), expr.val2); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const { return expr.val1.get_prec(); } +}; + +template +class __gmp_expr, Op> > +{ +private: + typedef U val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_expr temp(expr.val2); + Op::eval(p, expr.val1, temp.__get_mp()); + } + void eval(typename __gmp_resolve_expr::ptr_type p, + mp_bitcnt_t prec) const + { + __gmp_expr temp(expr.val2, prec); + Op::eval(p, expr.val1, temp.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const { return expr.val2.get_prec(); } +}; + + +// both arguments are subexpressions + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_expr temp1(expr.val1), temp2(expr.val2); + Op::eval(p, temp1.__get_mp(), temp2.__get_mp()); + } + void eval(typename __gmp_resolve_expr::ptr_type p, + mp_bitcnt_t prec) const + { + __gmp_expr temp1(expr.val1, prec), temp2(expr.val2, prec); + Op::eval(p, temp1.__get_mp(), temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_expr temp1(expr.val1), temp2(expr.val2); + Op::eval(p, temp1.__get_mp(), temp2.__get_mp()); + } + void eval(typename __gmp_resolve_expr::ptr_type p, + mp_bitcnt_t prec) const + { + __gmp_expr temp1(expr.val1, prec), temp2(expr.val2, prec); + Op::eval(p, temp1.__get_mp(), temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + +template +class __gmp_expr +, __gmp_expr, Op> > +{ +private: + typedef __gmp_expr val1_type; + typedef __gmp_expr val2_type; + + __gmp_binary_expr expr; +public: + __gmp_expr(const val1_type &val1, const val2_type &val2) + : expr(val1, val2) { } + void eval(typename __gmp_resolve_expr::ptr_type p) const + { + __gmp_expr temp1(expr.val1), temp2(expr.val2); + Op::eval(p, temp1.__get_mp(), temp2.__get_mp()); + } + void eval(typename __gmp_resolve_expr::ptr_type p, + mp_bitcnt_t prec) const + { + __gmp_expr temp1(expr.val1, prec), temp2(expr.val2, prec); + Op::eval(p, temp1.__get_mp(), temp2.__get_mp()); + } + const val1_type & get_val1() const { return expr.val1; } + const val2_type & get_val2() const { return expr.val2; } + unsigned long int get_prec() const + { + mp_bitcnt_t prec1 = expr.val1.get_prec(), + prec2 = expr.val2.get_prec(); + return (prec1 > prec2) ? prec1 : prec2; + } +}; + + +/**************** Special cases ****************/ + +/* Some operations (i.e., add and subtract) with mixed mpz/mpq arguments + can be done directly without first converting the mpz to mpq. + Appropriate specializations of __gmp_expr are required. */ + + +#define __GMPZQ_DEFINE_EXPR(eval_fun) \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpz_t(), expr.val2.get_mpq_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + unsigned long int get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template <> \ +class __gmp_expr > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { eval_fun::eval(q, expr.val1.get_mpq_t(), expr.val2.get_mpz_t()); } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + unsigned long int get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpz_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpz_t(), temp.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + unsigned long int get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, eval_fun> > \ +{ \ +private: \ + typedef mpq_class val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val2); \ + eval_fun::eval(q, expr.val1.get_mpq_t(), temp.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + unsigned long int get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpq_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpq_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpz_t(), expr.val2.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + unsigned long int get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr \ +, mpz_class, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef mpz_class val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp(expr.val1); \ + eval_fun::eval(q, temp.get_mpq_t(), expr.val2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + unsigned long int get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpz_class temp1(expr.val1); \ + mpq_class temp2(expr.val2); \ + eval_fun::eval(q, temp1.get_mpz_t(), temp2.get_mpq_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + unsigned long int get_prec() const { return mpf_get_default_prec(); } \ +}; \ + \ +template \ +class __gmp_expr, __gmp_expr, eval_fun> > \ +{ \ +private: \ + typedef __gmp_expr val1_type; \ + typedef __gmp_expr val2_type; \ + \ + __gmp_binary_expr expr; \ +public: \ + __gmp_expr(const val1_type &val1, const val2_type &val2) \ + : expr(val1, val2) { } \ + void eval(mpq_ptr q) const \ + { \ + mpq_class temp1(expr.val1); \ + mpz_class temp2(expr.val2); \ + eval_fun::eval(q, temp1.get_mpq_t(), temp2.get_mpz_t()); \ + } \ + const val1_type & get_val1() const { return expr.val1; } \ + const val2_type & get_val2() const { return expr.val2; } \ + unsigned long int get_prec() const { return mpf_get_default_prec(); } \ +}; + + +__GMPZQ_DEFINE_EXPR(__gmp_binary_plus) +__GMPZQ_DEFINE_EXPR(__gmp_binary_minus) + +/**************** Macros for defining functions ****************/ +/* Results of operators and functions are instances of __gmp_expr. + T determines the numerical type of the expression: it can be either + mpz_t, mpq_t, or mpf_t. When the arguments of a binary + expression have different numerical types, __gmp_resolve_expr is used + to determine the "larger" type. + U is either __gmp_unary_expr or __gmp_binary_expr, + where V and W are the arguments' types -- they can in turn be + expressions, thus allowing to build compound expressions to any + degree of complexity. + Op is a function object that must have an eval() method accepting + appropriate arguments. + Actual evaluation of a __gmp_expr object is done when it gets + assigned to an mp*_class ("lazy" evaluation): this is done by calling + its eval() method. */ + + +// non-member unary operators and functions + +#define __GMP_DEFINE_UNARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr) \ +{ \ + return __gmp_expr, eval_fun> >(expr); \ +} + +#define __GMP_DEFINE_UNARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr) \ +{ \ + typename __gmp_resolve_temp::temp_type temp(expr); \ + return eval_fun::eval(temp.__get_mp()); \ +} + + +// non-member binary operators and functions + +#define __GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ + \ +template \ +inline __gmp_expr::value_type, \ +__gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ +fun(const __gmp_expr &expr1, const __gmp_expr &expr2) \ +{ \ + return __gmp_expr::value_type, \ + __gmp_binary_expr<__gmp_expr, __gmp_expr, eval_fun> > \ + (expr1, expr2); \ +} + +#define __GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, bigtype) \ + \ +template \ +inline __gmp_expr \ +, bigtype, eval_fun> > \ +fun(const __gmp_expr &expr, type t) \ +{ \ + return __gmp_expr \ + , bigtype, eval_fun> >(expr, t); \ +} \ + \ +template \ +inline __gmp_expr \ +, eval_fun> > \ +fun(type t, const __gmp_expr &expr) \ +{ \ + return __gmp_expr \ + , eval_fun> >(t, expr); \ +} + +#define __GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, signed long int) + +#define __GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, unsigned long int) + +#define __GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, double) + +#define __GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, type) \ +__GMPNN_DEFINE_BINARY_FUNCTION(fun, eval_fun, type, long double) + +#define __GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_FUNCTION(fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_FUNCTION(fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_FUNCTION(fun, eval_fun, double) \ +__GMPNLD_DEFINE_BINARY_FUNCTION(fun, eval_fun, long double) + +#define __GMP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPP_DEFINE_BINARY_FUNCTION(fun, eval_fun) \ +__GMPN_DEFINE_BINARY_FUNCTION(fun, eval_fun) + + +#define __GMP_DEFINE_BINARY_FUNCTION_UI(fun, eval_fun) \ + \ +template \ +inline __gmp_expr \ +, unsigned long int, eval_fun> > \ +fun(const __gmp_expr &expr, unsigned long int l) \ +{ \ + return __gmp_expr, unsigned long int, eval_fun> >(expr, l); \ +} + + +#define __GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ + \ +template \ +inline type fun(const __gmp_expr &expr1, \ + const __gmp_expr &expr2) \ +{ \ + typedef typename __gmp_resolve_expr::value_type eval_type; \ + typename __gmp_resolve_temp::temp_type temp1(expr1); \ + typename __gmp_resolve_temp::temp_type temp2(expr2); \ + return eval_fun::eval(temp1.__get_mp(), temp2.__get_mp()); \ +} + +#define __GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, bigtype) \ + \ +template \ +inline type fun(const __gmp_expr &expr, type2 t) \ +{ \ + typename __gmp_resolve_temp::temp_type temp(expr); \ + return eval_fun::eval(temp.__get_mp(), static_cast(t)); \ +} \ + \ +template \ +inline type fun(type2 t, const __gmp_expr &expr) \ +{ \ + typename __gmp_resolve_temp::temp_type temp(expr); \ + return eval_fun::eval(static_cast(t), temp.__get_mp()); \ +} + +#define __GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, float) \ +__GMPND_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, double) \ +__GMPNLD_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun, long double) + +#define __GMP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPP_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) \ +__GMPN_DEFINE_BINARY_TYPE_FUNCTION(type, fun, eval_fun) + + +// member operators + +#define __GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ + \ +template \ +inline type##_class & type##_class::fun(const __gmp_expr &expr) \ +{ \ + __gmp_set_expr(mp, __gmp_expr, eval_fun> >(*this, expr)); \ + return *this; \ +} + +#define __GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, bigtype) \ + \ +inline type##_class & type##_class::fun(type2 t) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, t)); \ + return *this; \ +} + +#define __GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, signed long int) + +#define __GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, \ + type2, unsigned long int) + +#define __GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, double) + +#define __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2) \ +__GMPNN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, type2, long double) + +#define __GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed char) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned char) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed short int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned short int) \ +__GMPNS_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, signed long int) \ +__GMPNU_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, unsigned long int) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, float) \ +__GMPND_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, double) \ +/* __GMPNLD_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun, long double) */ + +#define __GMP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPP_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) \ +__GMPN_DEFINE_COMPOUND_OPERATOR(type, fun, eval_fun) + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpz, fun, eval_fun) + +#define __GMPZZ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMPP_DEFINE_COMPOUND_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_COMPOUND_OPERATOR_UI(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun(unsigned long int l) \ +{ \ + __gmp_set_expr(mp, __gmp_expr >(*this, l)); \ + return *this; \ +} + +#define __GMPZ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_COMPOUND_OPERATOR_UI(fun, eval_fun) \ +__GMP_DEFINE_COMPOUND_OPERATOR_UI(mpf, fun, eval_fun) + + + +#define __GMP_DEFINE_INCREMENT_OPERATOR(type, fun, eval_fun) \ + \ +inline type##_class & type##_class::fun() \ +{ \ + eval_fun::eval(mp); \ + return *this; \ +} \ + \ +inline type##_class type##_class::fun(int) \ +{ \ + type##_class temp(*this); \ + eval_fun::eval(mp); \ + return temp; \ +} + +#define __GMPZ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpz, fun, eval_fun) + +#define __GMPQ_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpq, fun, eval_fun) + +#define __GMPF_DEFINE_INCREMENT_OPERATOR(fun, eval_fun) \ +__GMP_DEFINE_INCREMENT_OPERATOR(mpf, fun, eval_fun) + + + +/**************** Arithmetic operators and functions ****************/ + +// non-member operators and functions + +__GMP_DEFINE_UNARY_FUNCTION(operator+, __gmp_unary_plus) +__GMP_DEFINE_UNARY_FUNCTION(operator-, __gmp_unary_minus) +__GMP_DEFINE_UNARY_FUNCTION(operator~, __gmp_unary_com) + +__GMP_DEFINE_BINARY_FUNCTION(operator+, __gmp_binary_plus) +__GMP_DEFINE_BINARY_FUNCTION(operator-, __gmp_binary_minus) +__GMP_DEFINE_BINARY_FUNCTION(operator*, __gmp_binary_multiplies) +__GMP_DEFINE_BINARY_FUNCTION(operator/, __gmp_binary_divides) +__GMP_DEFINE_BINARY_FUNCTION(operator%, __gmp_binary_modulus) +__GMP_DEFINE_BINARY_FUNCTION(operator&, __gmp_binary_and) +__GMP_DEFINE_BINARY_FUNCTION(operator|, __gmp_binary_ior) +__GMP_DEFINE_BINARY_FUNCTION(operator^, __gmp_binary_xor) + +__GMP_DEFINE_BINARY_FUNCTION_UI(operator<<, __gmp_binary_lshift) +__GMP_DEFINE_BINARY_FUNCTION_UI(operator>>, __gmp_binary_rshift) + +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator==, __gmp_binary_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator!=, __gmp_binary_not_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<, __gmp_binary_less) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator<=, __gmp_binary_less_equal) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>, __gmp_binary_greater) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(bool, operator>=, \ + __gmp_binary_greater_equal) + +__GMP_DEFINE_UNARY_FUNCTION(abs, __gmp_abs_function) +__GMP_DEFINE_UNARY_FUNCTION(trunc, __gmp_trunc_function) +__GMP_DEFINE_UNARY_FUNCTION(floor, __gmp_floor_function) +__GMP_DEFINE_UNARY_FUNCTION(ceil, __gmp_ceil_function) +__GMP_DEFINE_UNARY_FUNCTION(sqrt, __gmp_sqrt_function) +__GMP_DEFINE_BINARY_FUNCTION(hypot, __gmp_hypot_function) + +__GMP_DEFINE_UNARY_TYPE_FUNCTION(int, sgn, __gmp_sgn_function) +__GMP_DEFINE_BINARY_TYPE_FUNCTION(int, cmp, __gmp_cmp_function) + +// member operators for mpz_class + +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) +__GMPZ_DEFINE_COMPOUND_OPERATOR(operator%=, __gmp_binary_modulus) + +__GMPZZ_DEFINE_COMPOUND_OPERATOR(operator&=, __gmp_binary_and) +__GMPZZ_DEFINE_COMPOUND_OPERATOR(operator|=, __gmp_binary_ior) +__GMPZZ_DEFINE_COMPOUND_OPERATOR(operator^=, __gmp_binary_xor) + +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPZ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPZ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpq_class + +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPQ_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPQ_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPQ_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + +// member operators for mpf_class + +__GMPF_DEFINE_COMPOUND_OPERATOR(operator+=, __gmp_binary_plus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator-=, __gmp_binary_minus) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator*=, __gmp_binary_multiplies) +__GMPF_DEFINE_COMPOUND_OPERATOR(operator/=, __gmp_binary_divides) + +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator<<=, __gmp_binary_lshift) +__GMPF_DEFINE_COMPOUND_OPERATOR_UI(operator>>=, __gmp_binary_rshift) + +__GMPF_DEFINE_INCREMENT_OPERATOR(operator++, __gmp_unary_increment) +__GMPF_DEFINE_INCREMENT_OPERATOR(operator--, __gmp_unary_decrement) + + + +/**************** Class wrapper for gmp_randstate_t ****************/ + +class __gmp_urandomb_value { }; +class __gmp_urandomm_value { }; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + unsigned long int bits; +public: + __gmp_expr(gmp_randstate_t s, unsigned long int l) : state(s), bits(l) { } + void eval(mpz_ptr z) const { __gmp_rand_function::eval(z, state, bits); } + unsigned long int get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + mpz_class range; +public: + __gmp_expr(gmp_randstate_t s, const mpz_class &z) : state(s), range(z) { } + void eval(mpz_ptr z) const + { __gmp_rand_function::eval(z, state, range.get_mpz_t()); } + unsigned long int get_prec() const { return mpf_get_default_prec(); } +}; + +template <> +class __gmp_expr +{ +private: + __gmp_randstate_struct *state; + unsigned long int bits; +public: + __gmp_expr(gmp_randstate_t s, unsigned long int l) : state(s), bits(l) { } + void eval(mpf_ptr f, mp_bitcnt_t prec) const + { __gmp_rand_function::eval(f, state, (bits>0) ? get_prec() : prec); } + unsigned long int get_prec() const + { + if (bits == 0) + return mpf_get_default_prec(); + else + return bits; + } +}; + +extern "C" { + typedef void __gmp_randinit_default_t (gmp_randstate_t); + typedef void __gmp_randinit_lc_2exp_t (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t); + typedef int __gmp_randinit_lc_2exp_size_t (gmp_randstate_t, mp_bitcnt_t); +} + +class gmp_randclass +{ +private: + gmp_randstate_t state; + + // copy construction and assignment not allowed + gmp_randclass(const gmp_randclass &); + void operator=(const gmp_randclass &); +public: + // constructors and destructor + gmp_randclass(gmp_randalg_t alg, unsigned long int size) + { + switch (alg) + { + case GMP_RAND_ALG_LC: // no other cases for now + default: + gmp_randinit_lc_2exp_size(state, size); + break; + } + } + + // gmp_randinit_default + gmp_randclass(__gmp_randinit_default_t* f) { f(state); } + + // gmp_randinit_lc_2exp + gmp_randclass(__gmp_randinit_lc_2exp_t* f, + mpz_class z, unsigned long int l1, unsigned long int l2) + { f(state, z.get_mpz_t(), l1, l2); } + + // gmp_randinit_lc_2exp_size + gmp_randclass(__gmp_randinit_lc_2exp_size_t* f, + unsigned long int size) + { + if (f (state, size) == 0) + throw std::length_error ("gmp_randinit_lc_2exp_size"); + } + + ~gmp_randclass() { gmp_randclear(state); } + + // initialize + void seed(); // choose a random seed some way (?) + void seed(unsigned long int s) { gmp_randseed_ui(state, s); } + void seed(const mpz_class &z) { gmp_randseed(state, z.get_mpz_t()); } + + // get random number + __gmp_expr get_z_bits(unsigned long int l) + { return __gmp_expr(state, l); } + __gmp_expr get_z_bits(const mpz_class &z) + { return get_z_bits(z.get_ui()); } + + __gmp_expr get_z_range(const mpz_class &z) + { return __gmp_expr(state, z); } + + __gmp_expr get_f(unsigned long int prec = 0) + { return __gmp_expr(state, prec); } +}; + + +/**************** #undef all private macros ****************/ + +#undef __GMPP_DECLARE_COMPOUND_OPERATOR +#undef __GMPN_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR_UI +#undef __GMP_DECLARE_INCREMENT_OPERATOR + +#undef __GMPZQ_DEFINE_EXPR +#undef __GMP_DEFINE_TERNARY_EXPR + +#undef __GMP_DEFINE_UNARY_FUNCTION +#undef __GMP_DEFINE_UNARY_TYPE_FUNCTION + +#undef __GMPP_DEFINE_BINARY_FUNCTION +#undef __GMPNN_DEFINE_BINARY_FUNCTION +#undef __GMPNS_DEFINE_BINARY_FUNCTION +#undef __GMPNU_DEFINE_BINARY_FUNCTION +#undef __GMPND_DEFINE_BINARY_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_FUNCTION +#undef __GMPN_DEFINE_BINARY_FUNCTION +#undef __GMP_DEFINE_BINARY_FUNCTION + +#undef __GMP_DEFINE_BINARY_FUNCTION_UI + +#undef __GMPP_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNS_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNU_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPND_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPNLD_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMPN_DEFINE_BINARY_TYPE_FUNCTION +#undef __GMP_DEFINE_BINARY_TYPE_FUNCTION + +#undef __GMPP_DECLARE_COMPOUND_OPERATOR +#undef __GMPN_DECLARE_COMPOUND_OPERATOR +#undef __GMP_DECLARE_COMPOUND_OPERATOR + +#undef __GMP_DECLARE_COMPOUND_OPERATOR_UI +#undef __GMP_DECLARE_INCREMENT_OPERATOR + +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR +#undef __GMPZZ_DEFINE_COMPOUND_OPERATOR +#undef __GMPZN_DEFINE_COMPOUND_OPERATOR +#undef __GMPZNN_DEFINE_COMPOUND_OPERATOR +#undef __GMPZNS_DEFINE_COMPOUND_OPERATOR +#undef __GMPZNU_DEFINE_COMPOUND_OPERATOR +#undef __GMPZND_DEFINE_COMPOUND_OPERATOR +#undef __GMPZNLD_DEFINE_COMPOUND_OPERATOR + +#undef __GMPP_DEFINE_COMPOUND_OPERATOR +#undef __GMPNN_DEFINE_COMPOUND_OPERATOR +#undef __GMPNS_DEFINE_COMPOUND_OPERATOR +#undef __GMPNU_DEFINE_COMPOUND_OPERATOR +#undef __GMPND_DEFINE_COMPOUND_OPERATOR +#undef __GMPNLD_DEFINE_COMPOUND_OPERATOR +#undef __GMPN_DEFINE_COMPOUND_OPERATOR +#undef __GMP_DEFINE_COMPOUND_OPERATOR + +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR +#undef __GMPZZ_DEFINE_COMPOUND_OPERATOR +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR +#undef __GMPF_DEFINE_COMPOUND_OPERATOR + +#undef __GMP_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPZ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPQ_DEFINE_COMPOUND_OPERATOR_UI +#undef __GMPF_DEFINE_COMPOUND_OPERATOR_UI + +#undef __GMP_DEFINE_INCREMENT_OPERATOR +#undef __GMPZ_DEFINE_INCREMENT_OPERATOR +#undef __GMPQ_DEFINE_INCREMENT_OPERATOR +#undef __GMPF_DEFINE_INCREMENT_OPERATOR + +#endif /* __GMP_PLUSPLUS__ */ diff --git a/src/external/lib/linux-g++/libmpir.a b/src/external/lib/linux-g++/libmpir.a new file mode 100644 index 0000000000000000000000000000000000000000..dfd308c25fdd2fa680ea592dad23f7027c9c8362 GIT binary patch literal 1299966 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
hdB`}B&Q3)({T+#Nk3!~i zLYAXRJmfjy2g=FT$5a-Pr>6=?<-p|2la*aqAF=3-SLW@{#7_fmN=F7 zr0uqZ6sU7n=G_9-nFVt~)uH3Q3aNbS)k)NYyNgr~N*Y?WTCB?#0G1HeCGv1m zynYUK`Sch1E`Y2V`S1o&7unk>M&`2y`tKK_dva^vme)oK*JEW6?w>{o$8(h#uAVZk zOc3Sil_e8I!ENpPFe)hUtL^R*0UpYuZ$VYu?~h^&&v(uM#+aHBP~^945!mRvk~~Vu zz~3UHQ!;S#eUj zGYI|}1ALYN{&@qu-2hJ;;FM*8==oOzoH8|;i(j0^dl{1Ss@BD;*W9{XNzYz<@O2R+ zH~YnG88Ekzu|2hVt(3uAOP990kS|`kti9g@7s=Yk4e+J1${CMe*1pvTCx2Hm^?g3L zUk3lS5AK)2)gBhc&-zjEoF-)m!u|2PKDd7l@!x%LfB1hjz<=h0Qw~z;zHEShPzt%E z#~=PL4Df{p_*V?@zxTnpj;82|;+Yr8lB9|E;VkUlNplo6j(C|W?xUtT$_c4N-!0o! zxpS1`vbMo;Guf{n_sraTjN~!p9P(qp-a};?G3V*b7l<{oH0hgYC(;TH%;#*oA z)!Mshj&i>YsOBQ&&QUrg{xU5+oqoO-^cxvoovE$b566shY%QX){posnJ$*Iot69p3 zdfnKJvh5-*IbUPe;{3ty`(T+)-?HI>$i|-o!b!?&33-Ud'G!_1>&g(Vc2M6sJX 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∓C-RhQLFzUQ<=P2*i-5;Zf@ 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
<##$C&FznSYOJ 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 literal 0 HcmV?d00001 diff --git a/src/external/lib/linux-g++/libmpirxx.a b/src/external/lib/linux-g++/libmpirxx.a new file mode 100644 index 0000000000000000000000000000000000000000..7472abb8f0fc3f841fc0387e0501da34b95f73db GIT binary patch literal 41644 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