Switch branches/tags
Find file
Fetching contributors…
Cannot retrieve contributors at this time
78 lines (50 sloc) 2.2 KB


NxN Real Matrices in Perl

Build Status

Report bugs and submit patches at

Perl version 5.003 or higher capable of "overloading" (

What does it do:

Math::MatrixReal - Matrix of Reals

Implements the data type "matrix of reals" (and consequently also "vector of reals") which can be used almost like any other basic Perl type thanks to OPERATOR OVERLOADING, i.e.,

$A       = $matrix1 * $matrix2;
$B       = $A ** 2;
$C       = $A + 2*B;
$D       = $C - $B/2;
$inverse = $C ** -1;
$inverse = 1/$C;

does what you would like it to do.

Also features many important operations and methods: matrix norm, matrix transposition, matrix inverse, determinant of a matrix, order and numerical condition of a matrix, scalar product of vectors, vector product of vectors, vector length, projection of row and column vectors, a comfortable way for reading in a matrix from a file, the keyboard or your code, and many more.

Allows to solve linear equation systems using an efficient algorithm known as "L-R-decomposition" and several approximative (iterative) methods.

Features an implementation of Kleene's algorithm to compute the minimal costs for all paths in a graph with weighted edges (the "weights" being the costs associated with each edge).

Allows to solve the eigensystem of a real symmetric matrix, using Householder transformation and QL decomposition.

Installation Instructions

Since Math::MatrixReal 2.03, Module::Build is used for the build process, but a Makefile.PL is still generated for older installations. If you do not have Module::Build, please read the OLD_README file.

The build and install Math::MatrixReal run the commands

perl Build.PL
./Build test
./Build install

Version history:

See the CHANGES file.


See the CREDITS file.


1996-1997 by Steffen Beyer.

1999 by Rodolphe Ortalo.

2001-2013 by Jonathan "Duke" Leto.

All rights reserved.

This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself.