2.01
- Needs version 2.3.0 (or later) of the mpfr library.
- Add Rmpfr_j0, Rmpfr_j1, Rmpfr_jn, Rmpfr_y0, Rmpfr_y1,
Rmpfr_yn, Rmpfr_lgamma, Rmpfr_remainder, Rmpfr_remquo,
Rmpfr_fms, Rmpfr_signbit, Rmpfr_setsign, and
Rmpfr_copysign(all new in 2.3.0). Add also Rmpfr_get_patches
(documented for the first time in 2.3.0).
- Add Rmpfr_init_set_ld.
- Add Rmpfr_deref2 to the list of exportable functions, and
document it's usage in the POD section.
- Rmpfr_deref2 now has the mpfr library allocate (and free) memory
for the mantissa.
- Add Rmpfr_hypot (previously missed).
- Rmpfr_out_str now takes an optional fifth argument (a string that
will be appended to the mpfr_out_str output). And the output
buffer is now flushed each time Rmpfr_out_str is called.
- Rewrite new() - to make it a little tidier.
- Add Rmpfr_set_uj and Rmpfr_set_uj_2exp to @EXPORT_TAGS. (Previously
overlooked.)
- Add Rmpfr_integer_string() - mainly to provide a simple means of
getting 'sj' and 'uj' values on a 64-bit perl where the MPFR
library does not support mpfr_get_uj and mpfr_get_sj functions -
which happens with libraries built with Microsoft Compilers.
- Fix the rendering of Inf and NaN values. (Now matches the
mpfr_out_str output for Inf and NaN.)
- Change the format returned by Rmpfr_get_str. (Hence the output of
Rmpfr_get_string and Math::MPFR::overload_string have changed
from earlier versions of Math::MPFR.)
- Fix some of the overloaded subroutines as regards their handling
of NaN.
1.11
- Fix bug in Rmpfr_get_str. (Sometimes printed out one less digit
than it ought.)
- Remove mpfr.info from distribution. Refer instead to:
http://www.mpfr.org/mpfr-current/mpfr.html
- Have 'make clean' remove comp.exe, check.exe and version.exe.
- Add support for perls built with -Duselongdouble
(Rmpfr_*_ld functions, except Rmpfr_init_set_ld() which is not
available in unpatched 2.2.1).
- Add Rmpfr_cmp_d, Rmpfr_exp10 and the Rmpfr_*_uj functions (which
had somehow been earlier overlooked).
- Fix handling of unsigned long longs on perls built with -Duse64bitint.
- Allow assignment of mpz, mpq, and mpf types using new()
1.10
- No longer assign Exporter and DynaLoader to @Math::MPFR::ISA.
- Add support for perls built with -Duse64bitint. This involved the
inclusion of the Rmpfr_set_sj, Rmpfr_set_sj_2exp and Rmpfr_get_sj
functions - as well as some alterations to the overload subs.
1.09
- Changes to the format returned by Rmpfr_get_str and overload_string.
- Add a new() method/function for creation of mpfr_t objects.
- Fix Rmpfr_out_str() and Rmpfr_inp_str() - were segfaulting with
MS compilers.
1.08
- As of this version, MPFR-2.2.x is required.
- Add new functions made available with the release of MPFR-2.2.0:
Rmpfr_set_overflow Rmpfr_set_underflow Rmpfr_set_inexflag
Rmpfr_set_erangeflag Rmpfr_set_nanflag Rmpfr_erfc Rmpfr_atan2
Rmpfr_pow_z Rmpfr_subnormalize Rmpfr_const_catalan Rmpfr_sec
Rmpfr_csc Rmpfr_cot Rmpfr_root Rmpfr_eint Rmpfr_get_f Rmpfr_sech
Rmpfr_csch Rmpfr_coth Rmpfr_lngamma RMPFR_VERSION_NUM
- Add constants (actually implemented as subroutines):
MPFR_VERSION MPFR_VERSION_MAJOR MPFR_VERSION_MINOR
MPFR_VERSION_PATCHLEVEL MPFR_VERSION_STRING
- Remove Rmpfr_add_one_ulp and Rmpfr_sub_one_ulp (no longer supported
by the MPFR library).
- Redefine '__gmpfr_default_rounding_mode' in MPFR.xs as it's no
longer in mpfr.h. (Been moved to mpfr-impl.h which I don't want to
include.)
- Rewrite of overload_atan2 - now that mpfr_atan2 is available in
MPFR-2.2.0. (Also fixes a bug in overload_atan2).
1.07
- New() was allocating more memory than necessary in many instances.
Rewrote the XS code (in those instances) to fix that.
- Add Rmpfr_strtofr
1.06
- Modify the Makefile.PL checks added in version 1.05 to cater for
those building with a Microsoft compiler
- Alter Rmpfr_set_str and Rmpfr_init_set_str so that a base of 0
can be specified - in which case the base is determined from the
input string
- Added the following functions:
Rmpfr_get_ui Rmpfr_get_si Rmpfr_fits_ulong_p Rmpfr_fits_slong_p
- Fix a bug in 'Rmpfr_deref2()' - used by 'overload_print()'
- Provide more complete testing with 4 new test files - namely
test4.t, trig.t, set_str.t and exceptions.t.
1.05
- Add some checks to Makefile.PL to ensure that anyone trying to
build this module has an up-to-date MPFR library. This is mainly
an attempt to stop cpan testers who don't have an up-to-date MPFR
from testing the module and subsequently reporting "FAIL" or "NA".
1.04
- Math::MPFR-1.04 to 1.07 require MPFR-2.1.x.
- Added the following functions, not available with versions earlier
than 2.1.0 :
Rmpfr_set_ui_2exp Rmpfr_set_si_2exp Rmpfr_get_z Rmpfr_si_sub
Rmpfr_sub_si Rmpfr_mul_si Rmpfr_si_div Rmpfr_div_si Rmpfr_sqr
Rmpfr_cmp_z Rmpfr_cmp_q Rmpfr_cmp_f Rmpfr_zero_p Rmpfr_free_cache
Rmpfr_get_version Rmpfr_get_emin_min Rmpfr_get_emin_max
Rmpfr_get_emax_min Rmpfr_get_emax_max Rmpfr_clear_erangeflag
Rmpfr_erangeflag_p Rmpfr_rint_round Rmpfr_rint_trunc
Rmpfr_rint_ceil Rmpfr_rint_floor
1.03
- Replace 'SvROK()' with 'sv_isobject()' in the overload functions.
- Make 'get_refcnt()' and 'get_package_name()' non-exportable.
1.02
- Make overloading work with strings.
- Add 'Rmpfr_dump'.
- Add 'Math::MPFR::gmp_v' (not exportable).
1.01
- Eradicate segfault that was occurring when 'overload_add',
'overload_sub', 'overload_mul', 'overload_div' and 'overload_pow'
croaked due to invalid argument(s).
0.07
- Replace 'Rmpfr_round_prec' with 'Rmpfr_prec_round' in keeping
with changes to the MPFR library.
- Remove 'Rmpfr_random' (deprecated).
- Add 'Rmpfr_cbrt', 'Rmpfr_cmpabs', ', 'Rmpfr_greater_p',
'Rmpfr_greaterequal_p', 'Rmpfr_less_p', 'Rmpfr_lessequal_p',
'Rmpfr_lessgreater_p', 'Rmpfr_equal_p', 'Rmpfr_unordered_p',
'Rmpfr_inp_str', 'Rmpfr_frac', 'Rmpfr_integer_p',
'Rmpfr_nexttoward', 'Rmpfr_nextabove', 'Rmpfr_next_below',
'Rmpfr_min', 'Rmpfr_max', 'Rmpfr_get_exp', 'Rmpfr_set_exp'
'Rgmp_randinit_default', 'Rgmp_randinit_lc_2exp',
'Rgmp_randinit_lc_2exp_size', 'Rgmp_randseed', 'Rgmp_randseed_ui',
'Rgmp_randclear'.
- Change module name from 'Math::GnuMPfr' to 'Math::MPFR'.
0.06
- Add 'Rmpfr_gamma()', 'Rmpfr_zeta()', and 'Rmpfr_erf()'.
- Add overloading for 'atan2', 'cos', 'sin', 'log', 'exp', and 'int'.
0.05
- Requires mpfr-2.0.3
- Add 'Rmpfr_out_str()'
- Add 'Rmpfr_get_default_rounding_mode()'
- Rename 'Rmpfr_set_str_raw()' to 'Rmpfr_set_str_binary()'
in keeping with changes to the MPFR library.
- Alter 'Rmpfr_check_range()' in keeping with change to
'mpfr_check_range()' in the MPFR library.
- Introduce operator overloading.