Matrix
3*3 matrix manipulation
PhilipRBrenan@yahoo.com, 2004, Perl License
Synopsis
Example t/matrix.t
#_ Matrix _____________________________________________________________
# Test 3*3 matrices
# philiprbrenan@yahoo.com, 2004, Perl License
#______________________________________________________________________
use Math::Zap::Matrix identity=>i;
use Math::Zap::Vector;
use Test::Simple tests=>8;
my ($a, $b, $c, $v);
$a = matrix
(8, 0, 0,
0, 8, 0,
0, 0, 8
);
$b = matrix
(4, 2, 0,
2, 4, 2,
0, 2, 4
);
$c = matrix
(4, 2, 1,
2, 4, 2,
1, 2, 4
);
$v = vector(1,2,3);
ok($a/$a == i());
ok($b/$b == i());
ok($c/$c == i());
ok(2/$a*$a/2 == i());
ok(($a+$b)/($a+$b) == i());
ok(($a-$c)/($a-$c) == i());
ok(-$a/-$a == i());
ok(1/$a*($a*$v) == $v);
Description
3*3 matrix manipulation
Constructors
new
Create a matrix
matrix
Create a matrix = synonym for "new"
new3v
Create a matrix from three vectors
new3vnc
Create a matrix from three vectors without checking
Methods
check
Check its a matrix
is
Test its a matrix
singular
Singular matrix?
accuracy
Get/Set accuracy for comparisons
round
Round: round to nearest integer if within accuracy of that integer
clone
Create a matrix from another matrix
Print matrix
add
Add matrices
negate
Negate matrix
subtract
Subtract matrices
matrixVectorMultiply
Vector = Matrix * Vector
matrixScalarMultiply
Matrix = Matrix * scalar
matrixMatrixMultiply
Matrix = Matrix * Matrix
matrixScalarDivide
Matrix=Matrix / non zero scalar
det
Determinant of matrix.
d2
Determinant of 2*2 matrix
inverse
Inverse of matrix
identity
Identity matrix
equals
Equals to within accuracy
Operator
Operator overloads
Add operator
Add operator.
subtract operator
Negate operator.
multiply operator
Multiply operator.
divide operator
Divide operator.
equals operator
Equals operator.
det operator
Determinant of a matrix
print vector
Print a vector.
Exports
Export "matrix", "identity", "new3v", "new3vnc"
Credits
Author
philiprbrenan@yahoo.com
Copyright
philiprbrenan@yahoo.com, 2004
License
Perl License.