The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Revision history for Perl extension Math::Polynomial.

1.021   2021-04-03
        - migrate from subversion to git
        - switch bugtracker to github
        - clean up Makefile.PL
        - finally remove Math::Polynomial::Generic stub
        - add CONTRIBUTING file

1.019   2021-01-07
        - Added deflate and unnest.

1.018   2019-12-30
        - Added inflate.

1.017   2019-12-17
        - Added lcm.

1.016   2019-11-20
        - Added number_of_terms.
        - Changed license to Artistic License 2.0.

1.015   2019-09-11
        - Renamed undocumented methods for protection.
        - Documented now protected _NFIELDS method.
        - Added subclassing tests.
        - Re-formatted Changes file.

1.014   2017-11-14
        - Added mirror and is_even/is_odd methods.
        - Removed deprecated Math::Polynomial::Generic extension.  Almost.
        - Math::AnyNum replaces Math::BigNum in recommendations and examples.

1.013   2017-06-14
        - Fixed old Exporter compatibility issue in test suite

1.012   2017-06-11
        - Compatibility tests with alien modules do not trigger failures
          any more.  Closes: [ #114004], [ #118895]
        - Math::BigNum replaces Math::BigRat in recommendations and examples.

1.011   2016-08-08
        - Metadata now recommends Math::BigRat 0.260804.
        - Improved test diagnostics addressing a Math::BigRat issue
          [ #114004].

1.009   2016-07-28
        - Improved metadata.
        - Added deprecation warning to Math::Polynomial::Generic.

1.008   2015-04-18
        - Added wrap parameter for string_configuration.

1.007   2015-03-13
        - Added exp_mod() method.
        - Scheduled Math::Polynomial::Generic for deprecation.

1.006   2013-05-28
        - Small documentation fixes.

1.005   2012-09-23
        - Lifted a limitation on coefficients for differentiate()
          and integrate().
        - Added an optimization for pow() and pow_mod().

1.004   2010-09-26
        - Eliminated a perl-5.10-ism that had slipped into the test suite.

1.003   2010-09-08
        - Added optimization for monic denominators to mmod.
        - Added small optimization to nest.
        - Deprecated optional parameter of div_root.
        - Added as_horner_tree and as_power_sum_tree methods, discussed in
          [ #46575].
        - Added tests covering tree conversion methods.
        - Added sign_of_coeff parameter for stringification and tree
        - Simplified Horner example script.
        - Added example script demonstrating Math::Symbolic interoperability.
        - Added test covering Math::ModInt interoperability.

1.002   2009-06-11
        - Improved interpolation polynomial calculation by one order of
          magnitude (O(n**3) => O(n**2)).
        - Added optimization for monic denominators to div / mod / divmod.
        - Added from_roots constructor and mul_root / div_root / divmod_root
          methods suggested by Kevin Ryde [ #46427].

1.001   2009-05-19
        - Repackaged after Math-Polynomial-1.000.tar.gz had file transmission
          problems on its way to CPAN.

1.000   2009-05-19
        - Author: Martin Becker
        - Rewritten from scratch, using
          h2xs 1.23 with options -X -A -b 5.6.0 Math::Polynomial
        - Usable coefficient spaces are now any object classes with
          well-defined basic arithmetic operations and equality checks.
        - Objects are now essentially immutable.  The only property that
          may be changed dynamically configures formatting defaults.
          Thus, cloning is hardly ever necessary.
        - Removed tidy() and size() methods and dropped tidiness concept,
          as it bore no mathematical significance.
        - Degrees of coefficients in new() are now in ascending order and
          therefore equivalent to array indexes.
        - Added monomial constructor.
        - Changed Lagrange interpolation to take arrays of x- and y-values.
        - Extended constructors to borrow coefficient space and
          stringification attributes when used as object methods.
        - Added usage of coeff() without parameter, yielding list of
          all coefficients.
        - Added coefficients() method, yielding non-empty list of
        - Added coeff_zero() and coeff_one() methods, yielding zero and unit
          elements of coefficient space.
        - Added proper_degree() method yielding undef for zero polynomials.
        - Added is_zero() method yielding true for zero polynomials.
        - Renamed quotrem() operator to divmod().
        - Added overloaded operators: bool ! ** << >> == !=
        - Added methods: is_nonzero(), is_equal(), is_unequal(),
          is_monic(), add_const(), sub_const(), mul_const(), div_const(),
          pow(), pow_mod(), inv_mod(), shift_up(), shift_down(), slice(),
          monize(), mmod(), gcd(), xgcd(), differentiate(), integrate(),
        - Renamed eval() method to evaluate() and sub() method to sub_().
        - Removed configure() class method, renamed to_string() method to
          as_string() and added optional configuration parameter.
        - Added lots of configuration options for string representation.
        - Added string_config() method to configure as_string default behaviour
          globally and per object.
        - Added $max_degree class variable to configure parameter
          sanity tests.
        - Changed internal object structure to improve extensibility.
        - Reworked test suite and examples.
        - Reworked pod documentation.
        - Added experimental module Math::Polynomial::Generic.

0.04    2007-07-12
        - New maintainer: Martin Becker.
        - Bugfix [ #4788] (reported 2003 by prospective
          maintainer): Method tidy() looped endlessly on zero polynomials.
        - Bugfix: Crashed on adding a constant.
        - Bugfix: Crashed on negating via overloaded unary minus.
        - Bugfix: Division of polynomials of equal degree gave wrong results.
        - Bugfix: Division crashed with non-"tidy" polynomials.
        - Bugfix: Division failed to catch zero denominator.
        - Bugfix: Verbose stringification produced lots of warnings under -W.
        - Added more test cases.
        - Renamed example directory, fixed imports and added table of
          contents there.
        - Added some metadata to Makefile.PL.
        - Added documentation of exportable subroutines, moved quotrem to
          subroutines section, clarified some definitions.
        - Moved all imports to top of the module.
        - Added more standard sections to POD, like VERSION, DIAGNOSTICS,
        - Added development status notice to README.

0.03    2001-02-23
        - Added more text about interpolation in general and
          Math::Polynomial specifically to the distribution.
        - Fixed a bug where the last constant was omitted if it was one.
          This bug was reported independently by Sergey V. Kolychev,
          John Hurst, and Jeffrey S. Haemer (Minolta-QMS).
        - By a suggestion from Jeffrey S. Haemer (Minolta-QMS) I also
          changed the verbose format slightly to print 'x + -1' as 'x - 1'
          (and similarly for all negative coefficients). For the special
          case, where the first coefficient is negative, the minus sign
          is still printed as if it was part of the coefficient; e.g.,
          '-3*x + 4' is still printed as '-3*x + 4'.
        - By suggestion from John Gamble I moved Math::Interpolate to
          inside the Math::Polynomial package---the subroutine is very
          small and tightly coupled to the Math::Polynomial package.

0.02    1998-08-13
        - Fixed a bug that caused erroneous behaviour when 0 was used
          in the interpolation routine.

0.01    1997-09-11
        - Author: Mats Kindahl
        - Initial release.