Revision history for Perl extension Math::Polynomial::Solve. 1.00 Wed Feb 14 17:51:04 2001 - original version 1.01 - Web site address of Karl's Calculus Tutor has changed. Document changed with it. - Code that popped off leading zero coefficients was flawed. Negative values could get popped off too since the check was $coefficients[0] <= $epsilon instead of abs($coefficients[0]) <= $epsilon. - Began writing code for symbolic solutions. - And then I got the e-mail from Nick Ing-Simmons. 1.90 March 17 2003 Nick Ing-Simmons had been working on a perl binding to the GNU Scientific Library that performed, among other things, polynomial solving. He graciously (indeed, FAR beyond the call of duty) provided a perl version the Fortran code written by Hiroshi Murakami, and gave me permission to use the perl version of the code in this module (as Hiroshi Murakami gave permission to Nick Ing-Simmons). For further information on his efforts, see Math::GSL::Polynomial. Putting in the code resulted in: - Some formatting changes. Sorry, I'm a tab user. - Removal of some redundant code. Math::Polynomial::Solve already calculated epsilon, and the wrapper function already removed leading zero coefficients. - Coefficients to be passed in from higher power to lower, rather than the reverse. This matches current usage in this module. - Roots to be returned as Complex number objects, rather than paired real and imaginary parts. - An early return for the really simple case. 1.99 April 30 2003 - More documentation changes, including updating links to Dr. Nickalls's paper. - Added many, many more tests. - Added the set_ and get_hessenberg() functions. - Put some code that was in a text file in one of the helper perl files. 2.00 Feb 18 2004 - For some idiotic reason, I thought that I had already uploaded the module to CPAN. Time to rectify that mistake. - Well, as long as I'm here, reviewed the code again, and found some inconsistant epsilon comparisons ('<' vs. '<='). Changed them all to '<'. - Double-checked the links too. Dr. Nickall's article keeps moving around Apr 3 2006 - Upgraded the test files to use Test::Simple. - Moved the internal structure of the module directory around to match the current layout made by the current h2xs. - Added a Build.PL file. - Generated a Meta.yml file and a Makefile.PL from Build.PL - Added new tests to cubic.t to cover catastrophic cancellation conditions. - Re-factored an expression in the ($dis < -$epsilon) branch of cubic_roots(), in preparation for tracking down the cancellation error. This is the branch that was failing the tests for certain values of the leading coefficient (a negative, for one thing). Wouldn't you know, the tests passed after doing this. I suspect that this will not be the final chapter in this story. - Updated the link to www.2dcurves.com in the documentation. Jun 26 2006 - Added a test to poly1.t (x**5 + x + 1). Nothing special except that it's solvable in radicals, and there was an article on Galois theory that missed that. Feb 19 2007 - Andy Stein sent me cubic.m, an update to Herman Bruyninckx's matlab script. The script is in the eg directory. - Change all debugging code to use Smart::Comments. Replaces not only debug print statements but also the show_matrix() subroutine. - Found some "$var = $var op ..." code that is now "$var op= ..." in hqr_eigen_hessenberg(). - More documentation changes. - Found a spot where $#coefficients was used where @coefficients would be less likely to cause an infinite loop.