Changes in v2.12 - Jonathan "Duke" Leto December 2014 -------------------------- * Added as_list() function. (Ivan Baidakou (basiliscos)) Changes in v2.11 - Jonathan "Duke" Leto January 2014 -------------------------- * Add maximum/minimum functions. (Alberto Simões) * Add reshape constructor. (Alberto Simões) Changes in v2.10 - Jonathan "Duke" Leto November 2013 -------------------------- * Fix tests on Windows, thanks to Russell Jenkins Changes in v2.09 - Jonathan "Duke" Leto November 2011 -------------------------- * as_latex() now works and is tested properly Changes in v2.08 - Jonathan "Duke" Leto April 11 2011 --------------------------- * Fix t/matlab.t failing on Windows (RT #64629) * Applied patch from RT #51669 (POD rendering) * Applied patch from RT #61334 (fix croak in new_from_string) * Make reference check less strict in _new_from_row_or_cols (requested by MJD) Changes in v2.06 - leto Sun Apr 13 19:57:25 EDT 2008 ---------------------------- * added submatrix() (exactly the same behavior as sec() from PDL, for 2-D matrices ) Backstory: I was reading through "Mastering Algorithms with Perl" and it says that it is not possible to do this in Math::MatrixReal without iterating through all the elements of the matrix. Now it is wrong. * t/submatrix.t created * t/decompose_LR.t created * !!!NEED documentation for submatrix() Changes in v2.05 - leto Fri Feb 29 21:58:47 EST 2008 ---------------------------- * fix accidental use of "our" that broke old (like 5.5) Perl's Thanks to srezic@cpan.org for the first FAILed report * added $matrix->display_precision($n) to easily change the output to something a bit easier to read $a->display_precision(0) is useful for printing integer matrices nicely * NEED print_precision() docs near stringify * t/display_precision.t created * example/ directory created with some benchmark scripts Changes in v2.04 - leto Sat Feb 23 20:59:08 EST 2008 --------------------------- * fixed pod errors * $a->length does row+col vectors now * converted all tests except ext1.t to Test::More and added some overall Kwalitee * fixed error with doing $string = $matrix . "\nStuff\n"; * new funcion new_tridiag * $matrix->min and $matrix->max now return the min/max element of a matrix * new function new_random added which looks like (with default options shown ) # returns $n x $m matrix of real numbers between 0 and 10 new_random($n,$m, { symmetric => 0, tridiag => 0, bounded_by => [0,10], integer => 0 ) new_random($n, %options ) # returns a square matrix This has proven to be pretty useful in the unit tests of Math::MatrixReal so I figured others may want an easy way to generate a random matrix of your own flavor * t/rand.t created * t/tridiag.t created * t/stringify.t created * t/minimax.t created * t/positive.t created * t/gsm.t created * t/similar.t created Changes in v2.03 - leto Sun Jan 27 13:19:55 EST 2008 --------------------------- * now using Module::Build, so Math::MatrixReal should in theory be able to compile on systems without make, please test and let me know! * new concatenation operator ".", i.e $c = $a . $b concatenates two matrices side-by-side * t/concat.t created * new function assign_row * beginning of a test suite overhaul (converting to Test::More ) Changes in v2.02 - leto Sat Jun 09 12:29:08 EDT 2007 ---------------------------- * Fixed the overloading for the division operator which did not recognize $a/2, reported by Daniel Brooks * Added support for matrix division notation, so that $a/$b = $a*$b**(-1) when $a and $b are square matrices * t/div.t created Changes in v2.01 - msouth Fri Aug 19 23:40:24 EDT 2005 ---------------------------- * Changed versioning format to leading zero after the dot to make more minor versions possible this time * Integration of Math::MatrixReal::Ext1 0.07 * merged new_from_cols and new_from_rows into one private function which is called by wrappers with the old names * added tests to exercise all of the known failure modes in new_from_{rows,cols} calls * Fixes for POD * added a much needed =over 4 to the start of the POD * removed tabs * reformatted indentation of the all of the code to 4 space indent (from a mixture of tabs, 8 space, 4 space, and 2 space) Changes in v1.9 - leto Wed May 15 03:19:34 EST 2002 ---------------------------- * as_yacas() function added * t/yacas.t created * Fixed issue with infinity norm and Irix, thanks to Allen Smith and the CPAN testers Changes in v1.8 -- leto Sat Mar 23 00:13:48 EST 2002 ---------------------------- * as_matlab() function added * as_scilab() function added * t/matlab.t created * is_row_vector() function added * is_col_vector() function added * t/isrowcol.t created * norm_p() function added * norm_frobenius () function added * t/vecnorm.t created Changes in v1.7 -- leto Fri Mar 15 13:09:49 EST 2002 --------------------------- * each() and each_diag() are now one-based for consistency * removed _trace() comments * as_latex() function created * t/latex.t created * t/bool.t created * t/periodic.t created * t/rank.t created * new_from_string() shouldn't care about the case of the scientific E notation (pointed out by Jim Bowery ) * t/scinotation.t created * is_idempotent() function added * is_periodic() function added * rank_LR() function added * make is_orthogonal return 0 instead of croak when matrix is not quadratic Changes in v1.6 -- leto Sat Feb 16 09:46:51 EST 2002 ------------------------- * is_skew_symmetric() function added * fixed logic error is sym_eigenvalues ( didn't notice if not square! ) * spectral_radius() function added * is_binary() function added * is_LR() function added * t/spectral.t created * t/binary.t created * t/is_LR.t created * t/gramian.t created * is_skew_symmetric() tests added to t/symmetric.t * is_gramian() function added Changes in v1.5 -- leto Sat Jan 12 04:20:48 EST 2002 ------------------------- * t/inverse.t test 6 was numerically instable, commented out I ran it 10000 times and got values from 1e-2 to 1e-16, this caused the test to randomly fail, because it checked that the value was less than 1e-10 I did not notice this problem because my default perl install has USE_LONG_DOUBLE * changed epsilon to be 1e-8 in funcs.pl ( was 1e-10) Changes in v1.4 -- leto Jan 10 2002 -------------------------- * Steffen Beyer gave maintainer-ship to Jonathan Leto * exponent() function added * trace() function added * "**" and "**=" overloaded to exponent() * $matrix ** -1 is now a quick way to compute the inverse, if it exists * new_from_rows and new_from_cols integrated from Math::MatrixReal::Ext1 * is_diagonal() function added * is_tridiagonal() function added * each() function added * each_diag() function added * put functions used by all the test scripts into funcs.pl instead of all of them having copy+paste code * t/inverse.t created * t/diag.t created * t/exponent.t created * t/trace.t created * t/ext1.t created * some documentation spelling errors corrected * perl operators exp(),sin(),cos() overloaded only works with diagonal matrices for now * new_diag() function added * is_upper_triangular() function added * is_lower_triangular() function added * t/triang.t created * t/det.t created * inverse() function added * det() function added should be much faster for diagonal and triangular matrices * tri_diagonalize() tri_eigenvalues() and now do real tridiag check, as per TODO * t/minor.t created * t/cofactor.t created * t/adjoint.t created * t/quadratic.t created * norm_sum() function added * t/norm.t created * check if $rows and $cols are integers in new() * t/condition.t created * t/product.t created * eigenvalues() function added * t/eigen_NxN.t - added test for eigenvalues() * swap_row() function added * swap_col() function added * t/swap.t created * t/orthogonal.t created * is_orthogonal() function added Version 1.3 included the eigenvalues/eigenvectors computation methods, added by Rodolphe Ortalo. Some test/bench programs were added also, especially for these methods. The documentation of the "new_from_string()" method was also slightly changed because it had proven to be incomplete and misleading. Version 1.2 changed the "new()" and "new_from_string()" methods so that they don't fail anymore if an empty class name is given to them (instead, "Math::MatrixReal" is used as the default). Version 1.1 fixed a bug in the "kleene()" method. Version 1.0 was the initial release.