» Content »pkg://Math-MPFR-3.0.tar.gz:70185
/ info downloads
This module wraps the MPFR library functions.
The MPFR library is a C library for multiple-precision floating-point
computations with exact rounding (also called correct rounding). It
is based on the GMP multiple-precision C library.
The main goal of MPFR is to provide a library for multiple-precision
floating-point computation which is both efficient and has a
well-defined semantics. It copies the good ideas from the
ANSI/IEEE-754 standard for double-precision floating-point
arithmetic (53-bit mantissa).
It also offers a wide range of trig, log, and other functions, and
MPFR, like GMP, is free. It is distributed under the
GNU Lesser General Public License (GNU Lesser GPL).
Because this module wraps the MPFR functions, it requires that both
the GMP C library and the MPFR C library have been installed.
For the GMP library see:
For the MPFR library see:
Do not use the (outdated) MPFR library source that ships with the
Math::MPFR-1.04 to 1.07 require mpfr-2.1.x (or later).
Math::MPFR-1.08 to Math::MPFR-1.11 require mpfr-2.2.x (or later).
Math::MPFR-2.01 and 2.02 require mpfr-2.3.x (or later).
Math::MPFR-2.03 and 2.04 requires mpfr-2.4.x.
You'll get errors if you try to build Math::MPFR against an
insufficiently recent version of the mpfr library.
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.
Build in the usual way:
When building this module, the GMP and MPFR libraries will need to be
accessible. If those files are in a location where your compiler does
not find them by default, then instead of running 'perl Makefile.PL',
you'll need to run:
perl Makefile.pl INC="-I/path/to/gmp_includes -I/path/to/mpfr_includes"
LIBS="-L/path/to/mpfr_lib -lmpfr -L/path/to/gmp_lib -lgmp"
If your perl's Config reports that 'ivsize' is greater than or
equal to 8, then Math::MPFR will, by default, be built with access
to the mpfr_*_uj and mpfr_*_sj functions. Else, access to those
functions is, by default, denied. 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 'nvsize' is greater than
8 then Math::MPFR will, by default, be built with access
to the mpfr_*_ld functions. Else, access to those functions is,
by default, denied. Again, you can override the default by opening up the
Makefile.PL and uncommenting the appropriate line.
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.
If building with an MSVC++ compiler against MinGW-built gmp and mpfr libs,
you'll need to additionally link to MinGW's libgcc.a and libcoldname.a.
First, create copies of the 4 '.a' files (named libgmp.lib, libmpfr.lib,
libgcc.lib, libcoldname.lib) and then run:
perl Makefile.pl INC="-IC:/path/to/gmp_includes -I/path/to/mpfr_includes" LIBS="-LC:/path/to/gcc_lib -lgcc -LC:/path/to/coldname_lib -lcoldname -LC:/path/to/mpfr_lib -lmpfr -LC:/path/to/gmp_lib -lgmp"