1.43 - Add t/overload_arith.t - where we check that overloaded arithmetic operations return the same value as their respective mpc library functions. - Corrections made in mpc-1.4.0 to mpc_ui_div & mpc_fr_div (re the sign of imaginary zero) are now implemented for Math::MPC, irrespective of the version of the underlying mpc library. - Remove unused functions overload_string_orig() and _get_str from MPC.pm. 1.42 - Restructure the interpolation overloading. The only change in behaviour is that "@NaN@" and "@Inf@" have been replaced by "NaN" and "Inf". - Workaround bug the division bug specific to mpc-1.4.0. See: https://sympa.inria.fr/sympa/arc/mpc-discuss/2026-03/msg00019.html - Rewrite more tests in an attempt to have this module pass its tests on Slaven's freebsd arm64 builds. 1.41 - Enable quadmath builds on cygwin smoker. See (eg): https://www.cpantesters.org/cpan/report/dab208d0-71b3-1014-beba-d9dcb6a500a3 . - Add more tests to t/mpc_swap.t. 1.40 - Accommodate arithmetic overloading of Math::MPFR objects. - Jump straight to version 1.40 now that mpc-1.4.0 is out. - Add new test file (t/new_in_1.3.0_alt.t). - Add new functions Rmpc_exp10, Rmpc_exp2, Rmpc_log2. - Add Rmpf_sub_fr Rmpc_fr_sub Rmpc_fr_div (all previously missed). 1.33 - Silence pointless compiling warnings generated during compilation of the XS files. - Rewrite the XS code in MPC.xs to do away with the "MY_CXT" stuff. (PERL_NO_GET_CONTEXT is still defined to 1.) - Define PERL_NO_GET_CONTEXT to 1 in Constant/Constant.xs. - The Rmpc_set_default_prec, Rmpc_set_default_prec2 and Rmpc_set_default_rounding_mode functions have been moved from MPC.xs to MPC.pm. - The Rmpc_get_default_prec, Rmpc_get_default_prec2 and Rmpg_set_default_rounding_mode functions have also been moved from MPC.xs to MPC.pm. 1.32 - Avoid monitoring PL_markstack_ptr in MPC.xs, Ball.xs and Radius.xs - In all (2) calls to mpfr_get_str() in MPC.xs, replace first argument of '0' with 'NULL'. (Might be relevant to https://rt.cpan.org/Ticket/Display.html?id=151057.) 1.31 - Add new functions Rmpcr_out_str_win, Rmpc_say_win & Rmpcr_print_win. - Add Rmpcb_out_str (mpc-1.3.2 and later only). - Accommodate MS Visual Studio builds of perl 1.30 - Jump straight to version 1.30, as this module now contains a fair amount of new functionality that requires version 1.3.0 (or later) of the mpc library. - Fix for Makefile.PL. (It was not defining NV_IS_FLOAT128 when it should.) - Handle "rounding away from zero" mode. (Becomes available in mpc-1.3.0.) - Add new functions Rmpc_agm, Rmpc_eta_fund and in_fund_dom. - Wrap Radius functions. - Wrap Ball functions. 1.16 - Work around perl bug in https://github.com/Perl/perl5/issues/19550. (Affected only perl-5.35.10.) 1.15 - Fix bug re inconsistent settings of POK and NOK flag, which manifests itself as (eg): http://www.cpantesters.org/cpan/report/dc17e330-900b-11ec-bfc9-d1f1448276d4 It's a bug that rarely bites, and applies mainly (but not only) to perl-5.18.x and earlier. 1.14 - Fix https://github.com/sisyphus/math-decimal64/pull/1 (also aplies to Math::MPC) Thanks to @hiratara 1.13 - Fix handling of perls whose ivsize == 4 && nvtype eq '__float128' in t/mpc_64.t - Refactor IV/UV/NV/PV handling inside overload subs. 1.12 - Fix failure in t/out_str2.t 1.11 - Update PREREQ_PM version of Math::MPFR to 4.14 (This is needed to accommodate changes in mpfr-4.1.0.) 1.09 - Cater for the possibility that _Float128 is an unknown type. (This is done in math_mpc_include.h.) - Prototype subroutines listed in 'use subs()'. - Add Rmpc_fma (previously missed), Rmpc_sum and Rmpc_dot (both newly available) functions. - Skip buggy BSD (long double) systems (see http://www.cpantesters.org/cpan/report/c3334524-8930-11e9-9997-9db8de51d2a1) in test 4 of t/Rmpc_set_NV.t. - In t.out_str2.t, for tests 1-6, we need to cater for a change in mpfr_out_str output with mpfr-4.2.0 - Small update to README - minimum required version of mpfr is now 3.0.0. 1.08 - Add new functions Rmpc_cmp_abs and Rmpc_rootofunity - Create MPC.pod 1.07 - Fix typo in overload_add diagnostic message that was segfaulting on amd64-freebsd. Thanks to Slaven Rezic. 1.06 - Replace SvUV/SvIV/SvNV with svUVX/SvIVX/SvNVX where appropriate. (In typemap, too.) - Replace (throughout) the "SvNOK(b)" condition with "SvNOK(b) && !SvPOK(b)". - Add support for nvtype=double -DDEBUGGING perls - Bring __float128 support into line with Math::MPFR 1.05 - Corrections to README and Makefile.PL regarding _Complex types handling - Rewrite new() - Add __float128 handling iff nvtype is __float128 && mpfr library supports __float128 - Add Rmpc_set_NV and Rmpc_set_NV_NV functions. - Rename Rmpc_get_dc and Rmpc_get_ldc to Rmpc_get_DC and Rmpc_get_LDC (resp). - Add Rmpc_get_F128C. - Specify EU-MM-6.58 as prerequisite in Makefile.PL. (Current CPAN::Reporter has problems with earlier versions of EU::MM on cygwin, perl-5.14.x. Thanks Peter Acklam.) - Replace SvUV/SvIV/SvNV with SvUVX/SvIVX/SvNVX where appropriate 1.04 - Fix for replacement of Math::Complex_C::Long by Math::Complex_C::L 1.03 - No longer define USE_64_BIT_INT if ivtype is 'long'. - Rename USE_64_BIT_INT #define to MATH_MPC_NEED_LONG_LONG_INT - Make version 3.23 of Math::MPFR a pre-requisite. 1.02 - _has_inttypes() no longer checks for whether USE_LONG_DOUBLE is defined. (Was harmless ... but didn't make much sense.) - Define PERL_NO_GET_CONTEXT. - Tweak to Math::MPC::gmp_v(). - Add metadata to Makefile.PL. 1.01 - Alter the way that strEQ gets hold of HvNAME(SvSTASH(SvRV(sv))) - so that -Wall doesn't emit "null argument" warnings. (Thanks Daniel Kahn Gillmor.) - Alter test 5 of t/complex_c.t to accommodate version 0.07 (and later) of Math::Complex_C. 1.00 - Add Rmpc_log10, Rmpc_mul2si and Rmpc-div_2si (new in 1.0.0) - Accommodate namechange of mpc_mul_2exp and mpc_div_2exp to mpc_mul_2ui and mpc_div_2ui (respectively) in mpc-1.0.0. - Rewrite the detecting of availability of double _Complex and long double _Complex types by looking for _Complex_I instead of _MPC_H_HAVE_COMPLEX (in line with the way mpc.h currently does it). 0.93 - Remove 'not' from overloads. Apparently achieved nothing anyway, and 5.16 warns that it's invalid. 0.92 - The default rounding mode and default precision globals are now thread-safe. Consequently at least 5.008008 is required. 0.91 - overload_equiv and overload_not_equiv weren't correctly handling the case where the NV is a NaN. (Add tests in mpc_overload.t.) 0.90 - Add Rmpc_sin_cos, Rmpc_set_dc, Rmpc_set_ldc, Rmpc_get_dc, Rmpc_get_ldc (new in mpc-0.9). - Add documentation of gmp_v and mpfr_v (previously missed). - In the documentation, elaborate on the way that Rmpc_get-version() and MPC_VERSION & friends determine their values. (Thanks Vincent Lefevre.) - In MPC.xs change mpfr_v() to return mpfr_get_version() instead of MPC_VERSION_STRING. - In t/aab_basic.t print out the mpfr and mpc library versions from the libraries, instead of from the headers (as had been the case) - Some of the croak() messages in MPC.xs finished with "\n" - which has now been removed from those messages. - Releases of the MPC library (after 0.8.2) will require gmp-4.3.2 and mpfr-2.4.2. README and Makefile.PL have now been changed. 0.83 - Add some warn() statements to t/bool.t, to try and see why test 2 fails - as reported by one of the cpan-testers. (That done, I received an email from Jean-Louis Morel, with a patch that fixes the issue ... I'll retain t/bool.t in its modified state.) - Patch overload_not, overload_not_equiv and overload_equiv (in MPC.xs) so that NaNs do not get passed on to the MPC comparison functions (as this is something forbidden by the documentation). Thanks to Jean-Louis Morel. 0.82 - Implement '#include '. (Should have been done for 0.81.) See https://rt.cpan.org/Ticket/Display.html?id=58564 0.81 - Change the overload_string() and _get_str() functions to match the formatting provided by mpc_out_str(). - Fix the signed zero problem with overloaded mul and div operations, and add t/signed_zero.t as a check. Thanks Paul Zimmerman and Philippe Theveny. - Add Rmpc_mul_sj, Rmpc_mul_ld, Rmpc_mul_d, Rmpc_div_sj, Rmpc_sj_div, Rmpc_div_ld, Rmpc_ld_div, Rmpc_div_d and Rmpc_d_div. These simply wrap the the XSubs created to fix the signed zero anomaly (above). 0.80 - Requires version 0.8 of the mpc library. - Add Rmpc_asin, Rmpc_acos, Rmpc_atan, Rmpc_asinh, Rmpc_acosh and Rmpc_atanh (new in mpc-0.8). - Add Rmpc_pow_d, Rmpc_pow_ld, Rmpc_pow_si, Rmpc_pow_ui, Rmpc_pow_z and Rmpc_pow_fr (new in mpc-0.8). - Add overloaded atan2 function. 0.70 - Requires version 0.7 of the mpc library. (Change to MPC_SET_X_Y.) - Remove Rmpc_random and Rmpc_random2 (as the functions that they wrap have been removed in mpc-0.7. (And remove t/mpc_random.t.) - Add Rmpc_pow, Rmpc_set_nan and Rmpc_swap (new in mpc-0.7). - Overload the ** and **= operators. - Improve the efficiency of some of the overload routines by eliminating the need to use a temporary mpfr object (using the already existing *mpc_t_obj instead). - Remove the rounding arg from RMPC_RE() and RMPC_IM() as it does nothing, anyway. 0.60 - Requires version 0.6 of the mpc library. - Now a complete range of Rmpc_set_*_* functions (where '*' can be any one of 'ui', 'si', 'd', 'uj', 'sj', 'ld', 'f', 'q', 'z' and 'fr'). - Add Rmpc_set_z, Rmpc_set_q, Rmpc_set_f and Rmpc_set_fr. - Add Rmpc_set_z_z, Rmpc_set_q_q and Rmpc_set_f_f. - In keeping with changes to the mpc library, all of the Rmpc_init* functions have been removed except for Rmpc_init2 and Rmpc_init3 (and their "_nobless" forms). - mpc-0.60 has removed mpc_get_default_prec and mpc_set_default_prec. Rmpc_get_default_prec and Rmpc_set_default_prec remain (but the former has changed to return 0 if default real and imaginary precisions are different. With earlier versions, real and imaginary default precisions were always the same, but this is no longer the case). Rmpc_get_default_prec2 and Rmpc_set_default_prec2 have now been added. The former returns an array of 2 values(real, imaginary) and the latter requires 2 arguments (real, imaginary). - The overload_copy sub now preserves the precision of the copied object (instead of assigning default precision as was previously the case). - Rmpc_get_str now wraps mpc_get_str (available in 0.6). The (pure perl) sub that was formerly "Rmpc_get_str" has been renamed "_get_str". The "overload_string" sub is unchanged. - Add Rmpc_set_uj, Rmpc_set_sj and Rmpc_set_ld (available in mpc-0.6). - Add Rmpc_strtoc and Rmpc_set_str (available in 0.6), and add set_str.t test script. 0.52 - Requires version 0.5.2 of the mpc library. - Add MPC_VERSION, MPC_VERSION_NUM and Rmpc_get_version. 0.51 - Requires version 0.5.1 of the mpc library. - Add MPC_VERSION_STRING, MPC_VERSION_MAJOR, MPC_VERSION_MINOR and MPC_VERSION_PATCHLEVEL. - Replace pre-existing Rmpc_set_fr_fr with a function that wraps the mpc_set_fr_fr function (which became available in 0.5.1) - Add Rmpc_real, Rmpc_imag, Rmpc_arg, Rmpc_proj (new in 0.5.1) 0.50 - Requires version 0.50 of the mpc library. - Add Rmpc_log, Rmpc_cos, Rmpc_tan, Rmpc_sinh, Rmpc_cosh, and Rmpc_tanh - all of which became available with mpc-0.5. - Add log and cos overloading. - Remove (the need for) INLINE.h - Add mpfr_v and gmp_v functions (not exported). - mpc_out_str changed with mpc-0.5. The tests in out_str1.t and out_str2.t were changed accordingly. - Bring Rmpc_get_str in line with the changed formatting of mpc_out_str that occurred with mpc-0.5. 0.46 - Add overloading of 'bool'. - Change Rmpc_out_str and Rmpc_inp_str to allow use of streams other than STDOUT and STDIN. - For compatibility with my other MPFR/GMP based perl modules, add TRmpc_out_str and TRmpc_inp_str (which, for Math::MPC only, are aliased to Rmpc_out_str and Rmpc_inp_str respectively). - Change 'Rmpc_get_prec' return to match 'mpc_get_prec' (which is a new inclusion in mpc-0.4.6). - Add 'Rmpc_get_prec2' and 'Rmpc_sin' (new in mpc-0.4.6). - Remove the tests in the Makefile.PL that test for the presence of a suitable compiler, GMP library, MPFR library and MPC library. 0.45 - First release