# FreeBSD Manual Pages

```Math::Cephes::Matrix(3User Contributed Perl DocumentatiMath::Cephes::Matrix(3)

NAME
Math::Cephes::Matrix - Perl interface to	the cephes matrix routines

SYNOPSIS
use Math::Cephes::Matrix qw(mat);
# 'mat' is a shortcut for Math::Cephes::Matrix->new
my \$M = mat([ [1, 2, -1], [2, -3, 1], [1, 0, 3]]);
my \$C = mat([ [1, 2, 4], [2, 9, 2], [6, 2, 7]]);
my \$D = \$M->add(\$C);	       # D = M + C
my \$Dc	= \$D->coef;
for (my \$i=0; \$i<3; \$i++) {
print "row \$i:\n";
for (my \$j=0; \$j<3; \$j++) {
print "\tcolumn \$j: \$Dc->[\$i]->[\$j]\n";
}
}

DESCRIPTION
This module is a	layer on top of	the basic routines in the cephes math
library for operations on square	matrices. In the following, a
Math::Cephes::Matrix object is created as

my \$M = Math::Cephes::Matrix->new(\$arr_ref);

where \$arr_ref is a reference to	an array of arrays, as in the
following example:

\$arr_ref = [ [1, 2, -1], [2, -3, 1], [1, 0, 3]	]

which represents

/ 1	  2  -1	 \
| 2	 -3   1	 |
\ 1	  0   3	 /

A copy of a Math::Cephes::Matrix	object may be done as

my \$M_copy = \$M->new();

Methods
coef: get coefficients of the matrix
SYNOPSIS:

my \$c = \$M->coef;

DESCRIPTION:

This	returns	an reference to	an array of arrays containing the
coefficients	of the matrix.

clr: set	all coefficients equal to a value.
SYNOPSIS:

\$M->clr(\$n);

DESCRIPTION:

This	sets all the coefficients of the matrix	identically to \$n.  If
\$n is not given, a default of 0 is used.

SYNOPSIS:

DESCRIPTION:

This	sets \$P	equal to \$M + \$N.

sub: subtract two matrices
SYNOPSIS:

\$P = \$M->sub(\$N);

DESCRIPTION:

This	sets \$P	equal to \$M - \$N.

mul: multiply two matrices or a matrix and a vector
SYNOPSIS:

\$P = \$M->mul(\$N);

DESCRIPTION:

This	sets \$P	equal to \$M * \$N. This method can handle matrix
multiplication, when	\$N is a	matrix,	as well	as matrix-vector
multiplication, where \$N is an array	reference representing a
column vector.

div: divide two matrices
SYNOPSIS:

\$P = \$M->div(\$N);

DESCRIPTION:

This	sets \$P	equal to \$M * (\$N)^(-1).

inv: invert a matrix
SYNOPSIS:

\$I = \$M->inv();

DESCRIPTION:

This	sets \$I	equal to (\$M)^(-1).

transp: transpose a matrix
SYNOPSIS:

\$T = \$M->transp();

DESCRIPTION:

This	sets \$T	equal to the transpose of \$M.

simq: solve simultaneous	equations
SYNOPSIS:

my \$M = Math::Cephes::Matrix->new([	[1, 2, -1], [2,	-3, 1],	[1, 0, 3]]);
my \$B = [2,	-1, 10];
my \$X = \$M->simq(\$B);
for	(my \$i=0; \$i<3;	\$i++) {
print "X[\$i] is \$X->[\$i]\n";
}

where \$M is a Math::Cephes::Matrix object, \$B is an input array
reference, and \$X is	an output array	reference.

DESCRIPTION:

A set of N simultaneous equations may be represented	in matrix form
as

M X = B

where M is an N x N square matrix and X and B are column vectors of
length N.

eigens: eigenvalues and eigenvectors of a real symmetric	matrix
SYNOPSIS:

my \$S = Math::Cephes::Matrix->new([	[1, 2, 3], [2, 2, 3], [3, 3, 4]]);
my (\$E, \$EV1) = \$S->eigens();
my \$EV = \$EV1->coef;
for	(my \$i=0; \$i<3;	\$i++) {
print "For i=\$i, with eigenvalue \$E->[\$i]\n";
my \$v = [];
for (my \$j=0; \$j<3; \$j++)	{
\$v->[\$j] = \$EV->[\$i]->[\$j];
}
print "The eigenvector is	@\$v\n";
}

where \$M is a Math::Cephes::Matrix object representing a real
symmetric matrix. \$E	is an array reference containing the
eigenvalues of \$M, and \$EV is a Math::Cephes::Matrix	object
representing	the eigenvalues, the ith row corresponding to the ith
eigenvalue.

DESCRIPTION:

If M	is an N	x N real symmetric matrix, and X is an N component
column vector, the eigenvalue problem

M X = lambda X

will	in general have	N solutions, with X the	eigenvectors and
lambda the eigenvalues.

BUGS
Please report any to Randy Kobes	<randy@theoryx5.uwinnipeg.ca>

The C code for the Cephes Math Library is Copyright 1984, 1987, 1989,
2002 by Stephen L. Moshier, and is available at
http://www.netlib.org/cephes/.  Direct inquiries	to 30 Frost Street,
Cambridge, MA 02140.

The perl	interface is copyright 2000, 2002 by Randy Kobes.  This
library is free software; you can redistribute it and/or	modify it
under the same terms as Perl itself.

perl v5.32.1			  2016-05-06	       Math::Cephes::Matrix(3)
```

NAME | SYNOPSIS | DESCRIPTION | BUGS | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Math::Cephes::Matrix&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>