Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Perl Interface to the GMP Library

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 t
Octocat-spinner-32 .gitignore
Octocat-spinner-32 CHANGES
Octocat-spinner-32 GMPz.pm
Octocat-spinner-32 GMPz.xs
Octocat-spinner-32 MANIFEST
Octocat-spinner-32 MANIFEST.SKIP
Octocat-spinner-32 Makefile.PL
Octocat-spinner-32 README
Octocat-spinner-32 typemap
README
This module wraps all of the 'mpz' (integer) functions that
the Gnu MP (GMP) library provides. Requires gmp-4.2.0 or later.

You therefore need the GMP library installed on your computer. See:
http://gmplib.org/

To build this module you need perl 5.6.0 or later. I'm not sure of all
the requirements to get it to build with earlier versions of perl, but
it's definite that the XS code relating to operator overloading will 
not compile with perl versions prior to 5.6.

No OO interface - just plain access to GMP's integer functions.

Build in the usual way:

 perl Makefile.PL
 make
 make test
 make install

When building this module, the GMP library will need to be accessible.
If it's not in a location where your compiler finds it by default, 
then instead of running 'perl Makefile.PL', you'll need to run:

perl Makefile.PL INC="-I/path/to/gmp_include" LIBS="-L/path/to/gmp_lib -lgmp"

==============
64-bit support
==============

If your perl's Config reports that 'use64bitint' is defined, or that
'use64bitall' is defined, or that 'usemorebits' is defined, or that
'ivsize' is 8, then Math::GMPz will, by default, be built to enable
you to use the 64-bit long long int values with the new() function
and the overloaded operators. Else attempts to use long long int
values with Math::GMPz will probably fail. If necessary, you can 
override the default by opening up the Makefile.PL and uncommenting
the appropriate line (just a few lines down from the top of the file
 ... the comments in that file should make it clear).

Similarly, if your perl's Config reports that 'uselongdouble' is 
defined, or that 'usemorebits' is defined, or that 'dblsize' > 8,
then Math::GMPz will, by default, be built to enable you to use the
long double values with the new() function and the overloaded
operators. Else, attempts to use long doubles will probably fail.
If you need, you can override the default by opening up the 
Makefile.PL and uncommenting the appropriate line (just a few lines
down from the top of the file ... the comments in that file should
make it clear).

I believe it to be both unnecessary and inadvisable to override the 
default - but if you do find that you need to override the default, 
please let me know. That you have found it necessary to override the
default is something I probably ought to know about.

I am contactable by email at sisyphus at(@) cpan dot (.) org.

==========
MAC OS X
==========

If you have MacPorts installed, you may need to install gmp +universal
for the bindings to work. After installing you'll need to run:

perl Makefile.PL INC="-I/opt/local/include" LIBS="-L/opt/local/lib -lgmp"

==========
MS WINDOWS
==========
If building with an MSVC++ compiler against a MinGW-built gmp lib, you'll
need to additionally link to MinGW's libgcc.a and libcoldname.a. First,
create copies of the 3 '.a' files (named libgmp.lib, libgcc.lib, and
libcoldname.lib) and then run:

perl Makefile.PL INC="-IC:/path/to/gmp_include" LIBS="-LC:/path/to/gcc_lib -lgcc -LC:/path/to/coldname_lib -lcoldname -LC:/path/to/gmp_lib -lgmp"
Something went wrong with that request. Please try again.