Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / Math::Matrix.3
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "Matrix 3"
132.TH Matrix 3 "2001-09-24" "perl v5.8.0" "User Contributed Perl Documentation"
133.SH "NAME"
134Math::Matrix \- Multiply and invert Matrices
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137use Math::Matrix;
138.SH "DESCRIPTION"
139.IX Header "DESCRIPTION"
140The following methods are available:
141.Sh "new"
142.IX Subsection "new"
143Constructor arguments are a list of references to arrays of the same
144length. The arrays are copied. The method returns \fBundef\fR in case of
145error.
146.PP
147.Vb 3
148\& $a = new Math::Matrix ([rand,rand,rand],
149\& [rand,rand,rand],
150\& [rand,rand,rand]);
151.Ve
152.PP
153If you call \f(CW\*(C`new\*(C'\fR as method, a zero filled matrix with identical deminsions is returned.
154.Sh "clone"
155.IX Subsection "clone"
156You can clone a matrix by calling:
157.PP
158.Vb 1
159\& $b = $a->clone;
160.Ve
161.Sh "size"
162.IX Subsection "size"
163You can determine the dimensions of a matrix by calling:
164.PP
165.Vb 1
166\& ($m, $n) = $a->size;
167.Ve
168.Sh "concat"
169.IX Subsection "concat"
170Concatenates two matrices of same row count. The result is a new
171matrix or \fBundef\fR in case of error.
172.PP
173.Vb 2
174\& $b = new Math::Matrix ([rand],[rand],[rand]);
175\& $c = $a->concat($b);
176.Ve
177.Sh "transpose"
178.IX Subsection "transpose"
179Returns the transposed matrix. This is the matrix where colums and
180rows of the argument matrix are swaped.
181.Sh "multiply"
182.IX Subsection "multiply"
183Multiplies two matrices where the length of the rows in the first
184matrix is the same as the length of the columns in the second
185matrix. Returns the product or \fBundef\fR in case of error.
186.Sh "solve"
187.IX Subsection "solve"
188Solves a equation system given by the matrix. The number of colums
189must be greater than the number of rows. If variables are dependent
190from each other, the second and all further of the dependent
191coefficients are 0. This means the method can handle such systems. The
192method returns a matrix containing the solutions in its columns or
193\&\fBundef\fR in case of error.
194.Sh "multiply_scalar"
195.IX Subsection "multiply_scalar"
196Multiplies a matrix and a scalar resulting in a matrix of the same
197dimensions with each element scaled with the scalar.
198.PP
199.Vb 1
200\& $a->multiply_scalar(2); scale matrix by factor 2
201.Ve
202.Sh "add"
203.IX Subsection "add"
204Add two matrices of the same dimensions.
205.Sh "substract"
206.IX Subsection "substract"
207Shorthand for \f(CW\*(C`add($other\->negative)\*(C'\fR
208.Sh "equal"
209.IX Subsection "equal"
210Decide if two matrices are equal. Beware of rounding errors!
211.Sh "slice"
212.IX Subsection "slice"
213Extract columns:
214.PP
215.Vb 1
216\& a->slice(1,3,5);
217.Ve
218.Sh "determinant"
219.IX Subsection "determinant"
220Compute the determinant of a matrix.
221.Sh "dot_product"
222.IX Subsection "dot_product"
223Compute the dot product of two vectors.
224.Sh "absolute"
225.IX Subsection "absolute"
226Compute the absolute value of a vector.
227.Sh "normalizing"
228.IX Subsection "normalizing"
229Normalize a vector.
230.Sh "cross_product"
231.IX Subsection "cross_product"
232Compute the cross-product of vectors.
233.Sh "print"
234.IX Subsection "print"
235Prints the matrix on \s-1STDOUT\s0. If the method has additional parameters,
236these are printed before the matrix is printed.
237.SH "EXAMPLE"
238.IX Header "EXAMPLE"
239.Vb 1
240\& use Math::Matrix;
241.Ve
242.PP
243.Vb 11
244\& srand(time);
245\& $a = new Math::Matrix ([rand,rand,rand],
246\& [rand,rand,rand],
247\& [rand,rand,rand]);
248\& $x = new Math::Matrix ([rand,rand,rand]);
249\& $a->print("A\en");
250\& $E = $a->concat($x->transpose);
251\& $E->print("Equation system\en");
252\& $s = $E->solve;
253\& $s->print("Solutions s\en");
254\& $a->multiply($s)->print("A*s\en");
255.Ve
256.SH "AUTHOR"
257.IX Header "AUTHOR"
258Ulrich Pfeifer <\fIpfeifer@ls6.informatik.uni\-dortmund.de\fR>
259.PP
260Brian J. Watson <\fIbjbrew@power.net\fR>
261.PP
262Matthew Brett <matthew.brett@mrc\-cbu.cam.ac.uk>