changed gmp.h to mpir.h for a few odd cases left

This commit is contained in:
jasonmoxham 2009-02-12 11:23:26 +00:00
parent c6bffec6ad
commit a6ab0a96b3
28 changed files with 72 additions and 72 deletions

View File

@ -101,25 +101,25 @@ GMPXX_HEADERS_OPTION = gmpxx.h
endif endif
EXTRA_DIST += gmpxx.h EXTRA_DIST += gmpxx.h
# gmp.h and mp.h are architecture dependent, mainly since they encode the # mpir.h and mp.h are architecture dependent, mainly since they encode the
# limb size used in libgmp. For that reason they belong under $exec_prefix # limb size used in libgmp. For that reason they belong under $exec_prefix
# not $prefix, strictly speaking. # not $prefix, strictly speaking.
# #
# $exec_prefix/include is not in the default include path for gcc built to # $exec_prefix/include is not in the default include path for gcc built to
# the same $prefix and $exec_prefix, which might mean gmp.h is not found, # the same $prefix and $exec_prefix, which might mean mpir.h is not found,
# but anyone knowledgable enough to be playing with exec_prefix will be able # but anyone knowledgable enough to be playing with exec_prefix will be able
# to address that. # to address that.
# #
includeexecdir = $(exec_prefix)/include includeexecdir = $(exec_prefix)/include
include_HEADERS = $(GMPXX_HEADERS_OPTION) include_HEADERS = $(GMPXX_HEADERS_OPTION)
nodist_includeexec_HEADERS = gmp.h $(MPBSD_HEADERS_OPTION) nodist_includeexec_HEADERS = mpir.h $(MPBSD_HEADERS_OPTION)
lib_LTLIBRARIES = libgmp.la $(GMPXX_LTLIBRARIES_OPTION) $(MPBSD_LTLIBRARIES_OPTION) lib_LTLIBRARIES = libgmp.la $(GMPXX_LTLIBRARIES_OPTION) $(MPBSD_LTLIBRARIES_OPTION)
BUILT_SOURCES = gmp.h BUILT_SOURCES = mpir.h
DISTCLEANFILES = $(BUILT_SOURCES) config.m4 @gmp_srclinks@ DISTCLEANFILES = $(BUILT_SOURCES) config.m4 @gmp_srclinks@
# Tell gmp.h it's building gmp, not an application, used by windows DLL stuff. # Tell mpir.h it's building gmp, not an application, used by windows DLL stuff.
INCLUDES=-D__GMP_WITHIN_GMP INCLUDES=-D__GMP_WITHIN_GMP

View File

@ -111,11 +111,11 @@ done
dnl GMP_INCLUDE_GMP_H dnl GMP_INCLUDE_GMP_H
dnl ----------------- dnl -----------------
dnl Expand to the right way to #include gmp-h.in. This must be used dnl Expand to the right way to #include gmp-h.in. This must be used
dnl instead of gmp.h, since that file isn't generated until the end of the dnl instead of mpir.h, since that file isn't generated until the end of the
dnl configure. dnl configure.
dnl dnl
dnl Dummy values for __GMP_BITS_PER_MP_LIMB and GMP_LIMB_BITS are enough dnl Dummy values for __GMP_BITS_PER_MP_LIMB and GMP_LIMB_BITS are enough
dnl for all current configure-time uses of gmp.h. dnl for all current configure-time uses of mpir.h.
define(GMP_INCLUDE_GMP_H, define(GMP_INCLUDE_GMP_H,
[[#define __GMP_WITHIN_CONFIGURE 1 /* ignore template stuff */ [[#define __GMP_WITHIN_CONFIGURE 1 /* ignore template stuff */
@ -3311,7 +3311,7 @@ dnl HAVE_STDARG_H which could arise from AC_CHECK_HEADERS.
dnl dnl
dnl This test might be slight overkill, after all there's really only going dnl This test might be slight overkill, after all there's really only going
dnl to be ANSI or K&R and the two can be differentiated by AC_PROG_CC_STDC dnl to be ANSI or K&R and the two can be differentiated by AC_PROG_CC_STDC
dnl or very likely by the setups for _PROTO in gmp.h. On the other hand dnl or very likely by the setups for _PROTO in mpir.h. On the other hand
dnl this test is nice and direct, being what we're going to actually use. dnl this test is nice and direct, being what we're going to actually use.
AC_DEFUN([GMP_C_STDARG], AC_DEFUN([GMP_C_STDARG],
@ -3565,7 +3565,7 @@ fi
dnl GMP_H_ANSI dnl GMP_H_ANSI
dnl ---------- dnl ----------
dnl Check whether gmp.h recognises the compiler as ANSI capable. dnl Check whether mpir.h recognises the compiler as ANSI capable.
AC_DEFUN([GMP_H_ANSI], AC_DEFUN([GMP_H_ANSI],
[AC_REQUIRE([AC_PROG_CC_STDC]) [AC_REQUIRE([AC_PROG_CC_STDC])
@ -3579,7 +3579,7 @@ GMP_INCLUDE_GMP_H
die die die die die die
#endif #endif
],,, ],,,
[AC_MSG_WARN([gmp.h doesnt recognise compiler as ANSI, prototypes and "const" will be unavailable])]) [AC_MSG_WARN([mpir.h doesnt recognise compiler as ANSI, prototypes and "const" will be unavailable])])
;; ;;
esac esac
]) ])
@ -3588,7 +3588,7 @@ esac
dnl GMP_H_EXTERN_INLINE dnl GMP_H_EXTERN_INLINE
dnl ------------------- dnl -------------------
dnl If the compiler has an "inline" of some sort, check whether the dnl If the compiler has an "inline" of some sort, check whether the
dnl #ifdef's in gmp.h recognise it. dnl #ifdef's in mpir.h recognise it.
AC_DEFUN([GMP_H_EXTERN_INLINE], AC_DEFUN([GMP_H_EXTERN_INLINE],
[AC_REQUIRE([AC_C_INLINE]) [AC_REQUIRE([AC_C_INLINE])
@ -3606,7 +3606,7 @@ die die die
yes) tmp_inline=inline ;; yes) tmp_inline=inline ;;
*) tmp_inline=$ac_cv_c_inline ;; *) tmp_inline=$ac_cv_c_inline ;;
esac esac
AC_MSG_WARN([gmp.h doesnt recognise compiler "$tmp_inline", inlines will be unavailable])]) AC_MSG_WARN([mpir.h doesnt recognise compiler "$tmp_inline", inlines will be unavailable])])
;; ;;
esac esac
]) ])
@ -3614,7 +3614,7 @@ esac
dnl GMP_H_HAVE_FILE dnl GMP_H_HAVE_FILE
dnl --------------- dnl ---------------
dnl Check whether the #ifdef's in gmp.h recognise when stdio.h has been dnl Check whether the #ifdef's in mpir.h recognise when stdio.h has been
dnl included to get FILE. dnl included to get FILE.
AC_DEFUN([GMP_H_HAVE_FILE], AC_DEFUN([GMP_H_HAVE_FILE],
@ -3625,7 +3625,7 @@ GMP_INCLUDE_GMP_H
die die die die die die
#endif #endif
],,, ],,,
[AC_MSG_WARN([gmp.h doesnt recognise <stdio.h>, FILE prototypes will be unavailable])]) [AC_MSG_WARN([mpir.h doesnt recognise <stdio.h>, FILE prototypes will be unavailable])])
]) ])

View File

@ -56,7 +56,7 @@ GMP_INIT(config.m4)
AC_CANONICAL_HOST AC_CANONICAL_HOST
dnl Automake "no-dependencies" is used because include file dependencies dnl Automake "no-dependencies" is used because include file dependencies
dnl are not useful to us. Pretty much everything depends just on gmp.h, dnl are not useful to us. Pretty much everything depends just on mpir.h,
dnl gmp-impl.h and longlong.h, and yet only rarely does everything need to dnl gmp-impl.h and longlong.h, and yet only rarely does everything need to
dnl be rebuilt for changes to those files. dnl be rebuilt for changes to those files.
dnl dnl
@ -342,7 +342,7 @@ AH_VERBATIM([HAVE_HOST_CPU_1],
# #
# limb=longlong (or limb_aa=longlong) applies to all compilers within that # limb=longlong (or limb_aa=longlong) applies to all compilers within that
# ABI. It won't work to have some needing long long and some not, since a # ABI. It won't work to have some needing long long and some not, since a
# single instantiated gmp.h will be used by both. # single instantiated mpir.h will be used by both.
# #
# SPEED_CYCLECOUNTER, cyclecounter_size and CALLING_CONVENTIONS_OBJS are # SPEED_CYCLECOUNTER, cyclecounter_size and CALLING_CONVENTIONS_OBJS are
# also set here, with an ABI suffix. # also set here, with an ABI suffix.
@ -1925,7 +1925,7 @@ else
fi fi
# Long long limb setup for gmp.h. # Long long limb setup for mpir.h.
case $limb_chosen in case $limb_chosen in
longlong) DEFN_LONG_LONG_LIMB="#define _LONG_LONG_LIMB 1" ;; longlong) DEFN_LONG_LONG_LIMB="#define _LONG_LONG_LIMB 1" ;;
*) DEFN_LONG_LONG_LIMB="/* #undef _LONG_LONG_LIMB */" ;; *) DEFN_LONG_LONG_LIMB="/* #undef _LONG_LONG_LIMB */" ;;
@ -2130,7 +2130,7 @@ case $host in
fi fi
# Don't allow both static and DLL. # Don't allow both static and DLL.
if test "$enable_shared" != no && test "$enable_static" != no; then if test "$enable_shared" != no && test "$enable_static" != no; then
AC_MSG_ERROR([cannot build both static and DLL, since gmp.h is different for each. AC_MSG_ERROR([cannot build both static and DLL, since mpir.h is different for each.
Use "--disable-static --enable-shared" to build just a DLL.]) Use "--disable-static --enable-shared" to build just a DLL.])
fi fi
@ -3281,4 +3281,4 @@ GMP_FINISH
# FIXME: Upcoming version of autoconf/automake don't like broken lines. # FIXME: Upcoming version of autoconf/automake don't like broken lines.
# Right now automake isn't accepting the new AC_CONFIG_FILES scheme. # Right now automake isn't accepting the new AC_CONFIG_FILES scheme.
AC_OUTPUT(Makefile mpbsd/Makefile mpf/Makefile mpn/Makefile mpq/Makefile mpz/Makefile printf/Makefile scanf/Makefile cxx/Makefile tests/Makefile tests/devel/Makefile tests/mpbsd/Makefile tests/mpf/Makefile tests/mpn/Makefile tests/mpq/Makefile tests/mpz/Makefile tests/rand/Makefile tests/misc/Makefile tests/cxx/Makefile doc/Makefile tune/Makefile demos/Makefile demos/calc/Makefile demos/expr/Makefile gmp.h:gmp-h.in mp.h:mp-h.in) AC_OUTPUT(Makefile mpbsd/Makefile mpf/Makefile mpn/Makefile mpq/Makefile mpz/Makefile printf/Makefile scanf/Makefile cxx/Makefile tests/Makefile tests/devel/Makefile tests/mpbsd/Makefile tests/mpf/Makefile tests/mpn/Makefile tests/mpq/Makefile tests/mpz/Makefile tests/rand/Makefile tests/misc/Makefile tests/cxx/Makefile doc/Makefile tune/Makefile demos/Makefile demos/calc/Makefile demos/expr/Makefile mpir.h:gmp-h.in mp.h:mp-h.in)

View File

@ -47,7 +47,7 @@ Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "gmp.h" #include "mpir.h"
#define NO_CALC_H /* because it conflicts with normal calc.c stuff */ #define NO_CALC_H /* because it conflicts with normal calc.c stuff */
#include "calc-common.h" #include "calc-common.h"

View File

@ -20,7 +20,7 @@ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */ MA 02110-1301, USA. */
/* Same tests as gmp.h. */ /* Same tests as mpir.h. */
#if defined (__STDC__) \ #if defined (__STDC__) \
|| defined (__cplusplus) \ || defined (__cplusplus) \
|| defined (_AIX) \ || defined (_AIX) \

View File

@ -76,7 +76,7 @@ MA 02110-1301, USA. */
#include "XSUB.h" #include "XSUB.h"
#include "patchlevel.h" #include "patchlevel.h"
#include "gmp.h" #include "mpir.h"
/* Perl 5.005 doesn't have SvIsUV, only 5.6 and up. /* Perl 5.005 doesn't have SvIsUV, only 5.6 and up.

View File

@ -42,7 +42,7 @@ gen-bases.c - auto generates some hard coded macros for base conversion
gen-facui.c - generates data tables for factorials, e.g. all factorials which fit in a limb gen-facui.c - generates data tables for factorials, e.g. all factorials which fit in a limb
gen-fib.c - generate data for Fibonnacci number tables gen-fib.c - generate data for Fibonnacci number tables
gen-psqr.c - generates data for perfect square testing gen-psqr.c - generates data for perfect square testing
gmp-h.in - gmp.h with some platform dependent stuff not yet inserted (gmp.h is included by gmp-h.in - mpir.h with some platform dependent stuff not yet inserted (mpir.h is included by
programs using MPIR and by code within MPIR) programs using MPIR and by code within MPIR)
gmp-impl.h - internal include file containing all the macros used MPIR wide gmp-impl.h - internal include file containing all the macros used MPIR wide
gmpxx.h - C++ class wrapper for MPIR types gmpxx.h - C++ class wrapper for MPIR types

View File

@ -301,7 +301,7 @@ At build time:
*/Makefile.in \ configure / */Makefile */Makefile.in \ configure / */Makefile
config.in | -------------> | config.h config.in | -------------> | config.h
gmp-h.in | | config.m4 gmp-h.in | | config.m4
mp-h.in / | gmp.h mp-h.in / | mpir.h
| mp.h | mp.h
\ fat.h (fat binary build only) \ fat.h (fat binary build only)

View File

@ -24,7 +24,7 @@ Some compilers with hacks:
- SCO OpenUNIX 8 cc - SCO OpenUNIX 8 cc
- __cplusplus - __cplusplus
Useful/undocumented macros in gmp.h: Useful/undocumented macros in mpir.h:
==================================== ====================================
__GMPN_ABS(x) - absolute value __GMPN_ABS(x) - absolute value
__GMPN_MAX(h, i) - max of h and i __GMPN_MAX(h, i) - max of h and i
@ -49,7 +49,7 @@ gmp_errno - integer corresponding to a GMP error condition:
4 sqrt of negative 4 sqrt of negative
8 invalid argument 8 invalid argument
Undocumented mpn functions prototyped in gmp.h: Undocumented mpn functions prototyped in mpir.h:
=============================================== ===============================================
mp_limb_t mpn_preinv_mod_1(mp_srcptr sp, mp_size_t sn, mp_limb_t x, mp_limb_t xinv) - mp_limb_t mpn_preinv_mod_1(mp_srcptr sp, mp_size_t sn, mp_limb_t x, mp_limb_t xinv) -
compute {sp, sn} mod x given a precomputed inverse xinv of x compute {sp, sn} mod x given a precomputed inverse xinv of x

View File

@ -44,7 +44,7 @@ MA 02110-1301, USA.
<h4>Correctness and Completeness</h4> <h4>Correctness and Completeness</h4>
<ul> <ul>
<li> <code>_LONG_LONG_LIMB</code> in gmp.h is not namespace clean. Reported <li> <code>_LONG_LONG_LIMB</code> in mpir.h is not namespace clean. Reported
by Patrick Pelissier. by Patrick Pelissier.
<br> <br>
We sort of mentioned <code>_LONG_LONG_LIMB</code> in past releases, so We sort of mentioned <code>_LONG_LONG_LIMB</code> in past releases, so
@ -161,7 +161,7 @@ MA 02110-1301, USA.
<code>mpn_mod_1</code> (not sure currently whether all the risc chips <code>mpn_mod_1</code> (not sure currently whether all the risc chips
provoke the right exception there if using mul-by-inverse). provoke the right exception there if using mul-by-inverse).
<li> Consider inlining: <code>mpz_fits_s*_p</code>. The setups for <li> Consider inlining: <code>mpz_fits_s*_p</code>. The setups for
<code>LONG_MAX</code> etc would need to go into gmp.h, and on Cray it <code>LONG_MAX</code> etc would need to go into mpir.h, and on Cray it
might, unfortunately, be necessary to forcibly include &lt;limits.h&gt; might, unfortunately, be necessary to forcibly include &lt;limits.h&gt;
since there's no apparent way to get <code>SHRT_MAX</code> with an since there's no apparent way to get <code>SHRT_MAX</code> with an
expression (since <code>short</code> and <code>unsigned short</code> can expression (since <code>short</code> and <code>unsigned short</code> can
@ -230,7 +230,7 @@ MA 02110-1301, USA.
<li> <code>mpn_add_1</code>, <code>mpn_sub_1</code>, <code>mpn_add</code>, <li> <code>mpn_add_1</code>, <code>mpn_sub_1</code>, <code>mpn_add</code>,
<code>mpn_sub</code>: Internally use <code>__GMPN_ADD_1</code> etc <code>mpn_sub</code>: Internally use <code>__GMPN_ADD_1</code> etc
instead of the functions, so they get inlined on all compilers, not just instead of the functions, so they get inlined on all compilers, not just
gcc and others with <code>inline</code> recognised in gmp.h. gcc and others with <code>inline</code> recognised in mpir.h.
<code>__GMPN_ADD_1</code> etc are meant mostly to support application <code>__GMPN_ADD_1</code> etc are meant mostly to support application
inline <code>mpn_add_1</code> etc and if they don't come out good for inline <code>mpn_add_1</code> etc and if they don't come out good for
internal uses then special forms can be introduced, for instance many internal uses then special forms can be introduced, for instance many
@ -521,9 +521,9 @@ MA 02110-1301, USA.
little-endian and big-endian machines. A format which MPFR can use too little-endian and big-endian machines. A format which MPFR can use too
would be good. would be good.
<li> <code>mpn_and_n</code> ... <code>mpn_copyd</code>: Perhaps make the mpn <li> <code>mpn_and_n</code> ... <code>mpn_copyd</code>: Perhaps make the mpn
logops and copys available in gmp.h, either as library functions or logops and copys available in mpir.h, either as library functions or
inlines, with the availability of library functions instantiated in the inlines, with the availability of library functions instantiated in the
generated gmp.h at build time. generated mpir.h at build time.
<li> <code>mpz_set_str</code> etc variants taking string lengths rather than <li> <code>mpz_set_str</code> etc variants taking string lengths rather than
null-terminators. null-terminators.
<li> <code>mpz_andn</code>, <code>mpz_iorn</code>, <code>mpz_nand</code>, <li> <code>mpz_andn</code>, <code>mpz_iorn</code>, <code>mpz_nand</code>,
@ -538,7 +538,7 @@ MA 02110-1301, USA.
Eg. 0xFFAA@0x5A. A leading "0" for octal would match the integers, but Eg. 0xFFAA@0x5A. A leading "0" for octal would match the integers, but
probably something like "0.123" ought not mean octal. probably something like "0.123" ought not mean octal.
<li> <code>GMP_LONG_LONG_LIMB</code> or some such could become a documented <li> <code>GMP_LONG_LONG_LIMB</code> or some such could become a documented
feature of gmp.h, so applications could know whether to feature of mpir.h, so applications could know whether to
<code>printf</code> a limb using <code>%lu</code> or <code>%Lu</code>. <code>printf</code> a limb using <code>%lu</code> or <code>%Lu</code>.
<li> <code>GMP_PRIdMP_LIMB</code> and similar defines following C99 <li> <code>GMP_PRIdMP_LIMB</code> and similar defines following C99
&lt;inttypes.h&gt; might be of use to applications printing limbs. But &lt;inttypes.h&gt; might be of use to applications printing limbs. But
@ -599,7 +599,7 @@ MA 02110-1301, USA.
libgmp.a would be libgmp.a would be
<ul> <ul>
<li> Library contents vary according to the build compiler. <li> Library contents vary according to the build compiler.
<li> gmp.h would need an ugly <code>#ifdef</code> block to decide if the <li> mpir.h would need an ugly <code>#ifdef</code> block to decide if the
application compiler could take the <code>long long</code> application compiler could take the <code>long long</code>
prototypes. prototypes.
<li> Some sort of <code>LIBGMP_HAS_LONGLONG</code> might be wanted to <li> Some sort of <code>LIBGMP_HAS_LONGLONG</code> might be wanted to

View File

@ -618,7 +618,7 @@ install under a particular tree. The default is @samp{/usr/local}.
@option{--exec-prefix} can be used to direct architecture-dependent files like @option{--exec-prefix} can be used to direct architecture-dependent files like
@file{libgmp.a}/@file{libmpir.a} to a different location. This can be used to share @file{libgmp.a}/@file{libmpir.a} to a different location. This can be used to share
architecture-independent parts like the documentation, but separate the architecture-independent parts like the documentation, but separate the
dependent parts. Note however that @file{gmp.h}/@file{mpir.h} and @file{mp.h} are dependent parts. Note however that @file{mpir.h} and @file{mp.h} are
architecture-dependent since they encode certain aspects of @file{libgmp}/@file{libmpir}, so architecture-dependent since they encode certain aspects of @file{libgmp}/@file{libmpir}, so
it will be necessary to ensure both @file{$prefix/include} and it will be necessary to ensure both @file{$prefix/include} and
@file{$exec_prefix/include} are available to the compiler. @file{$exec_prefix/include} are available to the compiler.
@ -1121,9 +1121,9 @@ In all cases it's vital that all object code used in a given program is
compiled for the same ABI. compiled for the same ABI.
Usually a limb is implemented as a @code{long}. When a @code{long long} limb Usually a limb is implemented as a @code{long}. When a @code{long long} limb
is used this is encoded in the generated @file{gmp.h}/@file{mpir.h}. This is convenient for is used this is encoded in the generated @file{mpir.h}. This is convenient for
applications, but it does mean that @file{gmp.h}/@file{mpir.h} will vary, and can't be just applications, but it does mean that @file{mpir.h} will vary, and can't be just
copied around. @file{gmp.h}/@file{mpir.h} remains compiler independent though, since all copied around. @file{mpir.h} remains compiler independent though, since all
compilers for a particular ABI will be expected to use the same limb type. compilers for a particular ABI will be expected to use the same limb type.
Currently no attempt is made to follow whatever conventions a system has for Currently no attempt is made to follow whatever conventions a system has for
@ -1441,12 +1441,12 @@ conventions for install locations that vary with ABI, such as
@samp{ABI=32}. A package build can override @samp{libdir} and other standard @samp{ABI=32}. A package build can override @samp{libdir} and other standard
variables as necessary. variables as necessary.
Note that @file{gmp.h}/@file{mpir.h} is a generated file, and will be architecture and ABI Note that @file{mpir.h} is a generated file, and will be architecture and ABI
dependent. When attempting to install two ABIs simultaneously it will be dependent. When attempting to install two ABIs simultaneously it will be
important that an application compile gets the correct @file{gmp.h}/@file{mpir.h} for its important that an application compile gets the correct @file{mpir.h} for its
desired ABI@. If compiler include paths don't vary with ABI options then it desired ABI@. If compiler include paths don't vary with ABI options then it
might be necessary to create a @file{/usr/include/gmp.h} or @file{/usr/include/mpir.h} which tests might be necessary to create a @file{/usr/include/mpir.h} which tests
preprocessor symbols and chooses the correct actual @file{gmp.h}/@file{mpir.h}. preprocessor symbols and chooses the correct actual @file{mpir.h}.
@need 2000 @need 2000
@ -1545,7 +1545,7 @@ default MPIR builds only a static library, but a DLL can be built instead using
@end example @end example
Static and DLL libraries can't both be built, since certain export directives Static and DLL libraries can't both be built, since certain export directives
in @file{gmp.h}/@file{mpir.h} must be different. in @file{mpir.h} must be different.
A MINGW DLL build of MPIR can be used with Microsoft C@. Libtool doesn't A MINGW DLL build of MPIR can be used with Microsoft C@. Libtool doesn't
install a @file{.lib} format import library, but it can be created with MS install a @file{.lib} format import library, but it can be created with MS
@ -1811,11 +1811,11 @@ to be incompatible with future versions of MPIR.}
@section Headers and Libraries @section Headers and Libraries
@cindex Headers @cindex Headers
@cindex @file{gmp.h}/@file{mpir.h} @cindex @file{mpir.h}
@cindex Include files @cindex Include files
@cindex @code{#include} @cindex @code{#include}
All declarations needed to use MPIR are collected in the include file All declarations needed to use MPIR are collected in the include file
@file{gmp.h}/@file{mpir.h}. It is designed to work with both C and C++ compilers. @file{mpir.h}. It is designed to work with both C and C++ compilers.
@example @example
#include <mpir.h> #include <mpir.h>
@ -2803,7 +2803,7 @@ AC_CHECK_LIB(mpir, __gmpz_mul_si, ,
[GMP/MPIR not found, or not GMP 3.1 or up or MPIR 1.0 or up, see http://www.mpir.org/])]) [GMP/MPIR not found, or not GMP 3.1 or up or MPIR 1.0 or up, see http://www.mpir.org/])])
@end example @end example
An alternative would be to test the version number in @file{gmp.h}/@file{mpir.h} using say An alternative would be to test the version number in @file{mpir.h} using say
@code{AC_EGREP_CPP}. That would make it possible to test the exact version, @code{AC_EGREP_CPP}. That would make it possible to test the exact version,
if some particular sub-minor release is known to be necessary. if some particular sub-minor release is known to be necessary.
@ -3770,7 +3770,7 @@ these functions will make them read from @code{stdin} and write to
@code{stdout}, respectively. @code{stdout}, respectively.
When using any of these functions, it is a good idea to include @file{stdio.h} When using any of these functions, it is a good idea to include @file{stdio.h}
before @file{gmp.h}/@file{mpir.h}, since that will allow @file{gmp.h}/@file{mpir.h} to define prototypes before @file{mpir.h}, since that will allow @file{mpir.h} to define prototypes
for these functions. for these functions.
@deftypefun size_t mpz_out_str (FILE *@var{stream}, int @var{base}, mpz_t @var{op}) @deftypefun size_t mpz_out_str (FILE *@var{stream}, int @var{base}, mpz_t @var{op})
@ -4374,7 +4374,7 @@ recommended instead of these functions.
@cindex I/O functions @cindex I/O functions
When using any of these functions, it's a good idea to include @file{stdio.h} When using any of these functions, it's a good idea to include @file{stdio.h}
before @file{gmp.h}/@file{mpir.h}, since that will allow @file{gmp.h}/@file{mpir.h} to define prototypes before @file{mpir.h}, since that will allow @file{mpir.h} to define prototypes
for these functions. for these functions.
Passing a @code{NULL} pointer for a @var{stream} argument to any of these Passing a @code{NULL} pointer for a @var{stream} argument to any of these
@ -4860,7 +4860,7 @@ any of these functions will make them read from @code{stdin} and write to
@code{stdout}, respectively. @code{stdout}, respectively.
When using any of these functions, it is a good idea to include @file{stdio.h} When using any of these functions, it is a good idea to include @file{stdio.h}
before @file{gmp.h}/@file{mpir.h}, since that will allow @file{gmp.h}/@file{mpir.h} to define prototypes before @file{mpir.h}, since that will allow @file{mpir.h} to define prototypes
for these functions. for these functions.
@deftypefun size_t mpf_out_str (FILE *@var{stream}, int @var{base}, size_t @var{n_digits}, mpf_t @var{op}) @deftypefun size_t mpf_out_str (FILE *@var{stream}, int @var{base}, size_t @var{n_digits}, mpf_t @var{op})
@ -5889,7 +5889,7 @@ Obstacks, libc, The GNU C Library Reference Manual}.
The following functions are provided in @file{libgmpxx}/@file{libmpirxx} (@pxref{Headers and The following functions are provided in @file{libgmpxx}/@file{libmpirxx} (@pxref{Headers and
Libraries}), which is built if C++ support is enabled (@pxref{Build Options}). Libraries}), which is built if C++ support is enabled (@pxref{Build Options}).
Prototypes are available from @code{<gmp.h>} or @code{<mpir.h>}. Prototypes are available from @code{<mpir.h>}.
@deftypefun ostream& operator<< (ostream& @var{stream}, mpz_t @var{op}) @deftypefun ostream& operator<< (ostream& @var{stream}, mpz_t @var{op})
Print @var{op} to @var{stream}, using its @code{ios} formatting settings. Print @var{op} to @var{stream}, using its @code{ios} formatting settings.
@ -6178,7 +6178,7 @@ way C99 @code{sscanf} is the same as @code{fscanf}.
The following functions are provided in @file{libgmpxx}/@file{libmpirxx} (@pxref{Headers and The following functions are provided in @file{libgmpxx}/@file{libmpirxx} (@pxref{Headers and
Libraries}), which is built only if C++ support is enabled (@pxref{Build Libraries}), which is built only if C++ support is enabled (@pxref{Build
Options}). Prototypes are available from @code{<gmp.h>} or @code{<mpir.h>}. Options}). Prototypes are available from @code{<mpir.h>}.
@deftypefun istream& operator>> (istream& @var{stream}, mpz_t @var{rop}) @deftypefun istream& operator>> (istream& @var{stream}, mpz_t @var{rop})
Read @var{rop} from @var{stream}, using its @code{ios} formatting settings. Read @var{rop} from @var{stream}, using its @code{ios} formatting settings.
@ -6230,7 +6230,7 @@ results. For classes with overloading, see @ref{C++ Class Interface}.
This chapter describes the C++ class based interface to MPIR. This chapter describes the C++ class based interface to MPIR.
All MPIR C language types and functions can be used in C++ programs, since All MPIR C language types and functions can be used in C++ programs, since
@file{gmp.h}/@file{mpir.h} has @code{extern "C"} qualifiers, but the class interface offers @file{mpir.h} has @code{extern "C"} qualifiers, but the class interface offers
overloaded functions and operators which may be more convenient. overloaded functions and operators which may be more convenient.
Due to the implementation of this interface, a reasonably recent C++ compiler Due to the implementation of this interface, a reasonably recent C++ compiler
@ -6349,7 +6349,7 @@ y = mpz_class (z);
@end example @end example
There are no namespace setups in @file{gmpxx.h}, all types and functions are There are no namespace setups in @file{gmpxx.h}, all types and functions are
simply put into the global namespace. This is what @file{gmp.h}/@file{mpir.h} has done in simply put into the global namespace. This is what @file{mpir.h} has done in
the past, and continues to do for compatibility. The extras provided by the past, and continues to do for compatibility. The extras provided by
@file{gmpxx.h} follow MPIR naming conventions and are unlikely to clash with @file{gmpxx.h} follow MPIR naming conventions and are unlikely to clash with
anything. anything.

View File

@ -25,7 +25,7 @@ MA 02110-1301, USA. */
will be slow, but highly portable. will be slow, but highly portable.
None of the normal GMP configure things are used, nor any of the normal None of the normal GMP configure things are used, nor any of the normal
gmp.h or gmp-impl.h. To use this file in a program just #include mpir.h or gmp-impl.h. To use this file in a program just #include
"dumbmp.c". "dumbmp.c".
ANSI function definitions can be used here, since ansi2knr is run if ANSI function definitions can be used here, since ansi2knr is run if

View File

@ -107,7 +107,7 @@ table (int limb_bits, int nail_bits)
printf ("/* This file generated by gen-bases.c - DO NOT EDIT. */\n"); printf ("/* This file generated by gen-bases.c - DO NOT EDIT. */\n");
printf ("\n"); printf ("\n");
printf ("#include \"gmp.h\"\n"); printf ("#include \"mpir.h\"\n");
printf ("#include \"gmp-impl.h\"\n"); printf ("#include \"gmp-impl.h\"\n");
printf ("\n"); printf ("\n");
printf ("#if GMP_NUMB_BITS != %d\n", numb_bits); printf ("#if GMP_NUMB_BITS != %d\n", numb_bits);

View File

@ -88,7 +88,7 @@ table (int numb_bits)
printf ("/* This file generated by gen-fib.c - DO NOT EDIT. */\n"); printf ("/* This file generated by gen-fib.c - DO NOT EDIT. */\n");
printf ("\n"); printf ("\n");
printf ("#include \"gmp.h\"\n"); printf ("#include \"mpir.h\"\n");
printf ("#include \"gmp-impl.h\"\n"); printf ("#include \"gmp-impl.h\"\n");
printf ("\n"); printf ("\n");
printf ("#if GMP_NUMB_BITS != %d\n", numb_bits); printf ("#if GMP_NUMB_BITS != %d\n", numb_bits);

View File

@ -70,7 +70,7 @@ MA 02110-1301, USA. */
bother figuring out if it works, but using it with f_cmp_divisor and bother figuring out if it works, but using it with f_cmp_divisor and
f_cmp_fraction avoids warnings from the qsort calls. */ f_cmp_fraction avoids warnings from the qsort calls. */
/* Same tests as gmp.h. */ /* Same tests as mpir.h. */
#if defined (__STDC__) \ #if defined (__STDC__) \
|| defined (__cplusplus) \ || defined (__cplusplus) \
|| defined (_AIX) \ || defined (_AIX) \

View File

@ -45,7 +45,7 @@ MA 02110-1301, USA. */
/* The following (everything under ifndef __GNU_MP__) must be identical in /* The following (everything under ifndef __GNU_MP__) must be identical in
gmp.h and mp.h to allow both to be included in an application or during mpir.h and mp.h to allow both to be included in an application or during
the library build. */ the library build. */
#ifndef __GNU_MP__ #ifndef __GNU_MP__
#define __GNU_MP__ 4 #define __GNU_MP__ 4

View File

@ -151,7 +151,7 @@ MA 02110-1301, USA. */
The autoconf manual says this pragma needs to be at the start of a C The autoconf manual says this pragma needs to be at the start of a C
file, apart from comments and preprocessor directives. Is that true? file, apart from comments and preprocessor directives. Is that true?
xlc on aix 4.xxx doesn't seem to mind it being after prototypes etc xlc on aix 4.xxx doesn't seem to mind it being after prototypes etc
from gmp.h. from mpir.h.
*/ */
#ifndef alloca #ifndef alloca
@ -208,7 +208,7 @@ typedef unsigned long gmp_uint_least32_t;
/* const and signed must match __gmp_const and __gmp_signed, so follow the /* const and signed must match __gmp_const and __gmp_signed, so follow the
decision made for those in gmp.h. */ decision made for those in mpir.h. */
#if ! __GMP_HAVE_CONST #if ! __GMP_HAVE_CONST
#define const /* empty */ #define const /* empty */
#define signed /* empty */ #define signed /* empty */
@ -466,7 +466,7 @@ void __gmp_tmp_debug_free _PROTO ((const char *, int, int,
} while (0) } while (0)
/* From gmp.h, nicer names for internal use. */ /* From mpir.h, nicer names for internal use. */
#define CRAY_Pragma(str) __GMP_CRAY_Pragma(str) #define CRAY_Pragma(str) __GMP_CRAY_Pragma(str)
#define MPN_CMP(result, xp, yp, size) __GMPN_CMP(result, xp, yp, size) #define MPN_CMP(result, xp, yp, size) __GMPN_CMP(result, xp, yp, size)
#define LIKELY(cond) __GMP_LIKELY(cond) #define LIKELY(cond) __GMP_LIKELY(cond)
@ -1204,7 +1204,7 @@ __GMP_DECLSPEC void mpn_copyd _PROTO ((mp_ptr, mp_srcptr, mp_size_t));
gcc 2.95.x (for powerpc64 -maix64, or powerpc32) doesn't recognise the gcc 2.95.x (for powerpc64 -maix64, or powerpc32) doesn't recognise the
"for" loop in the generic code below can become stu/bdnz. The do/while "for" loop in the generic code below can become stu/bdnz. The do/while
here helps it get to that. The same caveat about plain -mpowerpc64 mode here helps it get to that. The same caveat about plain -mpowerpc64 mode
applies here as to __GMPN_COPY_INCR in gmp.h. applies here as to __GMPN_COPY_INCR in mpir.h.
xlc 3.1 already generates stu/bdnz from the generic C, and does so from xlc 3.1 already generates stu/bdnz from the generic C, and does so from
this loop too. this loop too.

View File

@ -41,7 +41,7 @@ MA 02110-1301, USA. */
#include <cstring> /* for strlen */ #include <cstring> /* for strlen */
#include <string> #include <string>
#include <stdexcept> #include <stdexcept>
#include <gmp.h> #include <mpir.h>
/**************** Function objects ****************/ /**************** Function objects ****************/
/* Any evaluation of a __gmp_expr ends up calling one of these functions /* Any evaluation of a __gmp_expr ends up calling one of these functions

View File

@ -25,7 +25,7 @@ MA 02110-1301, USA. */
/* The following (everything under ifndef __GNU_MP__) must be identical in /* The following (everything under ifndef __GNU_MP__) must be identical in
gmp.h and mp.h to allow both to be included in an application or during mpir.h and mp.h to allow both to be included in an application or during
the library build. Use the t-gmp-mp-h.pl script to check. */ the library build. Use the t-gmp-mp-h.pl script to check. */
#ifndef __GNU_MP__ #ifndef __GNU_MP__
#define __GNU_MP__ 4 #define __GNU_MP__ 4

View File

@ -1293,7 +1293,7 @@ m4_assert_numargs(1)
dnl Usage: mpn_add_n, etc dnl Usage: mpn_add_n, etc
dnl dnl
dnl Convenience definitions using MPN(), like the #defines in gmp.h. Each dnl Convenience definitions using MPN(), like the #defines in mpir.h. Each
dnl function that might be implemented in assembler is here. dnl function that might be implemented in assembler is here.
define(define_mpn, define(define_mpn,

View File

@ -70,7 +70,7 @@ could be optimized substantially. For example,
One novel idea for 68000 would be to use a 16-bit limb instead of 32-bits. One novel idea for 68000 would be to use a 16-bit limb instead of 32-bits.
This would suit the native 16x16 multiply, but might make it difficult to This would suit the native 16x16 multiply, but might make it difficult to
get full value from the native 32x32 add/sub/etc. This would be an ABI get full value from the native 32x32 add/sub/etc. This would be an ABI
option, and would select "__GMP_SHORT_LIMB" in gmp.h. option, and would select "__GMP_SHORT_LIMB" in mpir.h.
Naturally an entirely new set of asm subroutines would be needed for a Naturally an entirely new set of asm subroutines would be needed for a
16-bit limb. Also there's various places in the C code assuming limb>=long, 16-bit limb. Also there's various places in the C code assuming limb>=long,

View File

@ -1293,7 +1293,7 @@ m4_assert_numargs(1)
dnl Usage: mpn_add_n, etc dnl Usage: mpn_add_n, etc
dnl dnl
dnl Convenience definitions using MPN(), like the #defines in gmp.h. Each dnl Convenience definitions using MPN(), like the #defines in mpir.h. Each
dnl function that might be implemented in assembler is here. dnl function that might be implemented in assembler is here.
define(define_mpn, define(define_mpn,

View File

@ -118,7 +118,7 @@ MA 02110-1301, USA. */
Right now there's no way for an application to know whether types like Right now there's no way for an application to know whether types like
intmax_t are supported here. If configure is doing its job and the same intmax_t are supported here. If configure is doing its job and the same
compiler is used for gmp as for the application then there shouldn't be compiler is used for gmp as for the application then there shouldn't be
any problem, but perhaps gmp.h should have some preprocessor symbols to any problem, but perhaps mpir.h should have some preprocessor symbols to
say what libgmp can do. */ say what libgmp can do. */

View File

@ -21,7 +21,7 @@ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. MA 02110-1301, USA.
*/ */
/* This file requires the following header files: gmp.h */ /* This file requires the following header files: mpir.h */
#ifndef __GMPSTAT_H__ #ifndef __GMPSTAT_H__
#define __GMPSTAT_H__ #define __GMPSTAT_H__

View File

@ -309,7 +309,7 @@ main (int argc, char *argv[])
int bits; int bits;
printf ("\n"); printf ("\n");
printf ("After gmp.h,\n"); printf ("After mpir.h,\n");
printf (" ULONG_MAX %s\n", ulong_max_def); printf (" ULONG_MAX %s\n", ulong_max_def);
printf (" LONG_MAX %s\n", long_max_def); printf (" LONG_MAX %s\n", long_max_def);
printf (" UINT_MAX %s\n", uint_max_def); printf (" UINT_MAX %s\n", uint_max_def);

View File

@ -25,7 +25,7 @@ MA 02110-1301, USA. */
#include "mpir.h" #include "mpir.h"
/* __GMP_UINT_MAX etc are generated with expressions in gmp.h since we don't /* __GMP_UINT_MAX etc are generated with expressions in mpir.h since we don't
want to demand <limits.h> or forcibly include it. Check the expressions want to demand <limits.h> or forcibly include it. Check the expressions
come out the same as <limits.h>. */ come out the same as <limits.h>. */

View File

@ -1090,7 +1090,7 @@ foreach my $file_full (@files) {
print TMP_C print TMP_C
"/* tmp-$objbase.c generated by many.pl - DO NOT EDIT, CHANGES WILL BE LOST */ "/* tmp-$objbase.c generated by many.pl - DO NOT EDIT, CHANGES WILL BE LOST */
#include \"gmp.h\" #include \"mpir.h\"
#include \"gmp-impl.h\" #include \"gmp-impl.h\"
#include \"longlong.h\" #include \"longlong.h\"
#include \"speed.h\" #include \"speed.h\"

View File

@ -523,7 +523,7 @@ int speed_routine_count_zeros_setup _PROTO ((struct speed_params *s,
function pointer variable works, but stands a real risk of a function pointer variable works, but stands a real risk of a
non-optimizing compiler generating unnecessary overheads in the call. non-optimizing compiler generating unnecessary overheads in the call.
Currently the best idea is not to use those attributes for a timing Currently the best idea is not to use those attributes for a timing
program build. __GMP_NO_ATTRIBUTE_CONST_PURE will tell gmp.h and program build. __GMP_NO_ATTRIBUTE_CONST_PURE will tell mpir.h and
gmp-impl.h to omit them from routines there. */ gmp-impl.h to omit them from routines there. */
#define SPEED_RESTRICT_COND(cond) if (!(cond)) return -1.0; #define SPEED_RESTRICT_COND(cond) if (!(cond)) return -1.0;