Math-AnyNum

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

        - Extended the `complex()` function to accept an additional argument, which specifies the imaginary part.
        - Reimplemented the `rat_approx()` method for much better performance (~3x faster).
        - More efficient conversion of Math::GComplex objects with Math::AnyNum components.

0.20    2018-01-05

        - Added parsing support for complex numbers in Cartesian form, such as "(3 4)" for "3+4i".
        - Fixed the result of the `atan2(x, y)` function, when `x` and `y` are complex numbers.

0.19    2017-12-09

        - Fixed some tests under mpfr-4.0.0.
        - `mpfr_root()` is deprecated since mpfr-4.0.0 and is no longer used under mpfr >= 4.0.0.
        - Using `mpfr_z_sub()` when mpfr >= 3.1.0 is available.
        - Using `mpfr_beta()` when mpfr >= 4.0.0 is available.

0.18    2017-11-22

        - Extended the `digits()` method to support arbitrary large bases.

            + Additionally, it returns the digits in reverse order, matching the output of the `.digits()` method from Ruby.

        - Fixed a minor issue in `rat(str)` to return NaN when `str` cannot be parsed as a fraction.
        - Fixed `polygonal_root(n, NaN)` to return `NaN` instead of `n`.
        - Minor optimizations for `x <=> 0`, `x == 0` and `x != 0`, when `0` is a native integer.

0.17    2017-11-04

        - Optimized `is_div(n, k)` when `n` and `k` are integers.
        - Optimized `kronecker(n, k)` when `k` is a native integer.
        - Improvements in `__bernfrac__(n)`, using a more optimized sieve for prime numbers.
        - Minor simplifications inside `faulhaber_sum(n)`.

0.16    2017-10-17

        - Fixed the numification of signed and unsigned integers close to the native integer limits.

0.15    2017-10-08

        - Bug-fix in `gcd(x, -y)` and `lcm(x, -y)`, when `y` is a native integer.
        - Minor internal optimizations.

0.14    2017-09-26

        [BUG-FIXES]

        - Fixed the sign in the results returned by the second-polygonal functions `polygonal_root2(n,k)` and `ipolygonal_root2(n,k)`.

0.13    2017-09-26

        [ADDITIONS]

        - acmp(x, y): absolute comparison of `x` and `y`.
        - polygonal(n, k): returns the nth k-gonal number.
        - polygonal_root(n, k): returns the k-gonal root of `n`.
        - polygonal_root2(n, k): returns the second k-gonal root of `n`.
        - ipolygonal_root(n, k): returns the integer k-gonal root of `n`.
        - ipolygonal_root2(n, k): returns the second integer k-gonal root of `n`.
        - is_polygonal(n, k): returns 1 when `n` is a k-gonal number.
        - is_polygonal2(n, k): returns 1 when `n` is a second k-gonal number.
        - faulhaber_sum(n, p): computes 1^p + 2^p + 3^p + ... + n^p, using Faulhaber's formula.

0.12    2017-09-18

        [ADDITIONS]

        - Added the `rat_approx(n)` function, which returns the smallest rational approximation for a given real number `n`.

        [IMPROVEMENTS]

        - The newly added functions in Math::MPFR-3.36, Rmpfr_q_div() and Rmpfr_z_div(), are now used by Math::AnyNum.

        [PERFORMANCE OPTIMIZATIONS]

        - Re-implemented all the methods without Class::Multimethods, which makes Math::AnyNum ~35% faster.
        - Many internal simplifications and optimizations.

0.11    2017-07-11

        [IMPROVEMENTS]

        - Extended the `rising_factorial(n, k)` and `falling_factorial(n, k)` for negative values of `k`.

        [PERFORMANCE IMPROVEMENTS]

        - Optimized `eta(n)` and `zeta(n)` for values of `n` that fit inside a native unsigned integer.

        [OTHER]

        - Fixed the number of skipped tests under old versions of GMP in t/integer_functions.t.

0.10    2017-07-09

        [ADDITIONS]

        - Added the `exp2(x)` and `exp10(x)` functions.
        - Added the `ipow2(x)` and `ipow10(x)` functions.
        - Added the `falling_factorial(n, k)` and `rising_factorial(n, k)` functions.

        [PERFORMANCE IMPROVEMENTS]

        - Faster stringification of floating-point numbers (including complex numbers).
        - Optimization in `mfactorial(n, m)` for native integers.
        - Optimization in `binomial(n, k)` for values of `n` that fit inside a native unsigned integer.

        [FIXES]

        - Fixed `eta(NaN)` to return `NaN` instead of `log(2)`.
        - Fixed `atanh(NaN)` to return `NaN` instead of `NaN+NaNi`.
        - Fixed the return value of `lgrt(+i)` and `lgrt(-i)`.

0.09    2017-05-30

        [ADDITIONS]

        - Added the `is_coprime(n, k)` function.

        [IMPROVEMENTS]

        - Minor simplification for `eta(1)`.
        - Minor optimization in `rand()` without arguments (when exported).



( run in 1.520 second using v1.01-cache-2.11-cpan-e1769b4cff6 )