root/doc/latex/classldmat.tex @ 33

Revision 33, 11.5 kB (checked in by smidl, 16 years ago)

Oprava PF a MPF + jejich implementace pro pmsm system

  • Property svn:eol-style set to native
Line 
1\section{ldmat Class Reference}
2\label{classldmat}\index{ldmat@{ldmat}}
3Matrix stored in LD form, (typically known as UD). 
4
5
6{\tt \#include $<$libDC.h$>$}
7
8Inheritance diagram for ldmat:\nopagebreak
9\begin{figure}[H]
10\begin{center}
11\leavevmode
12\includegraphics[width=45pt]{classldmat__inherit__graph}
13\end{center}
14\end{figure}
15Collaboration diagram for ldmat:\nopagebreak
16\begin{figure}[H]
17\begin{center}
18\leavevmode
19\includegraphics[width=45pt]{classldmat__coll__graph}
20\end{center}
21\end{figure}
22\subsection*{Public Member Functions}
23\begin{CompactItemize}
24\item 
25{\bf ldmat} (const mat \&{\bf L}, const vec \&{\bf D})\label{classldmat_968113788422e858da23a477e98fd3a1}
26
27\begin{CompactList}\small\item\em Construct by copy of L and D. \item\end{CompactList}\item 
28{\bf ldmat} (const mat \&V)\label{classldmat_5f21785358072d36892d538eed1d1ea5}
29
30\begin{CompactList}\small\item\em Construct by decomposition of full matrix V. \item\end{CompactList}\item 
31{\bf ldmat} (vec D0)\label{classldmat_abe16e0f86668ef61a9a4896c8565dee}
32
33\begin{CompactList}\small\item\em Construct diagonal matrix with diagonal D0. \item\end{CompactList}\item 
34{\bf ldmat} ()\label{classldmat_a12dda6f529580b0377cc45226b43303}
35
36\begin{CompactList}\small\item\em Default constructor. \item\end{CompactList}\item 
37{\bf ldmat} (const int dim0)\label{classldmat_163ee002a7858d104da1c59dd11f016d}
38
39\begin{CompactList}\small\item\em Default initialization with proper size. \item\end{CompactList}\item 
40virtual {\bf $\sim$ldmat} ()\label{classldmat_1e2734c0164ce5233c4d709679555138}
41
42\begin{CompactList}\small\item\em Destructor for future use;. \item\end{CompactList}\item 
43void {\bf opupdt} (const vec \&v, double w)
44\item 
45mat {\bf to\_\-mat} ()\label{classldmat_5b0515da8dc2293d9e4360b74cc26c9e}
46
47\begin{CompactList}\small\item\em Conversion to full matrix. \item\end{CompactList}\item 
48void {\bf mult\_\-sym} (const mat \&C)
49\begin{CompactList}\small\item\em Inplace symmetric multiplication by a SQUARE matrix \$C\$, i.e. \$V = C$\ast$V$\ast$C'\$. \item\end{CompactList}\item 
50void {\bf mult\_\-sym\_\-t} (const mat \&C)
51\begin{CompactList}\small\item\em Inplace symmetric multiplication by a SQUARE transpose of matrix \$C\$, i.e. \$V = C'$\ast$V$\ast$C\$. \item\end{CompactList}\item 
52void {\bf add} (const {\bf ldmat} \&ld2, double w=1.0)\label{classldmat_a60f2c7e4f3c6a7738eaaaab81ffad20}
53
54\begin{CompactList}\small\item\em Add another matrix in LD form with weight w. \item\end{CompactList}\item 
55double {\bf logdet} () const \label{classldmat_2b42750ba4962d439aa52a77ae12949b}
56
57\begin{CompactList}\small\item\em Logarithm of a determinant. \item\end{CompactList}\item 
58double {\bf qform} (const vec \&v) const \label{classldmat_d64f331b781903e913cb2ee836886f3f}
59
60\begin{CompactList}\small\item\em Evaluates quadratic form \$x= v'$\ast$V$\ast$v\$;. \item\end{CompactList}\item 
61void {\bf clear} ()\label{classldmat_4d6e401de9607332305c27e67972a07a}
62
63\begin{CompactList}\small\item\em Clearing matrix so that it corresponds to zeros. \item\end{CompactList}\item 
64int {\bf cols} () const \label{classldmat_0fceb6b5b637cec89bb0a3d2e6be1306}
65
66\begin{CompactList}\small\item\em access function \item\end{CompactList}\item 
67int {\bf rows} () const \label{classldmat_96dfb21865db4f5bd36fa70f9b0b1163}
68
69\begin{CompactList}\small\item\em access function \item\end{CompactList}\item 
70vec {\bf sqrt\_\-mult} (const vec \&v) const
71\begin{CompactList}\small\item\em Multiplies square root of \$V\$ by vector \$x\$. \item\end{CompactList}\item 
72virtual void {\bf inv} ({\bf ldmat} \&Inv) const
73\begin{CompactList}\small\item\em Matrix inversion preserving the chosen form. \item\end{CompactList}\item 
74void {\bf mult\_\-sym} (const mat \&C, {\bf ldmat} \&U) const
75\begin{CompactList}\small\item\em Symmetric multiplication of \$U\$ by a general matrix \$C\$, result of which is stored in the current class. \item\end{CompactList}\item 
76void {\bf mult\_\-sym\_\-t} (const mat \&C, {\bf ldmat} \&U) const
77\begin{CompactList}\small\item\em Symmetric multiplication of \$U\$ by a transpose of a general matrix \$C\$, result of which is stored in the current class. \item\end{CompactList}\item 
78void {\bf ldform} (const mat \&A, const vec \&D0)
79\begin{CompactList}\small\item\em Transforms general \$A'D0 A\$ into pure \$L'DL\$. \item\end{CompactList}\item 
80void {\bf setD} (const vec \&nD)\label{classldmat_0884a613b94fde61bfc84288e73ce57f}
81
82\begin{CompactList}\small\item\em Access functions. \item\end{CompactList}\item 
83void {\bf setD} (const vec \&nD, int i)\label{classldmat_7619922b4de18830ce5351c6b5667e60}
84
85\begin{CompactList}\small\item\em Access functions. \item\end{CompactList}\item 
86void {\bf setL} (const vec \&nL)\label{classldmat_32ff66296627ff5341d7c0b973249614}
87
88\begin{CompactList}\small\item\em Access functions. \item\end{CompactList}\item 
89{\bf ldmat} \& {\bf operator+=} (const {\bf ldmat} \&ldA)
90\begin{CompactList}\small\item\em add another \doxyref{ldmat}{p.}{classldmat} matrix \item\end{CompactList}\item 
91{\bf ldmat} \& {\bf operator-=} (const {\bf ldmat} \&ldA)
92\begin{CompactList}\small\item\em subtract another \doxyref{ldmat}{p.}{classldmat} matrix \item\end{CompactList}\item 
93{\bf ldmat} \& {\bf operator $\ast$=} (double x)\label{classldmat_16871b2d54be6e5dc73f78b8cb90771c}
94
95\begin{CompactList}\small\item\em multiply by a scalar \item\end{CompactList}\end{CompactItemize}
96\subsection*{Protected Attributes}
97\begin{CompactItemize}
98\item 
99vec {\bf D}\label{classldmat_4cce04824539c4a8d062d9a36d6e014e}
100
101\begin{CompactList}\small\item\em Positive vector \$D\$. \item\end{CompactList}\item 
102mat {\bf L}\label{classldmat_f74a64b99fe58a75ebd37bb679e121ea}
103
104\begin{CompactList}\small\item\em Lower-triangular matrix \$L\$. \item\end{CompactList}\end{CompactItemize}
105\subsection*{Friends}
106\begin{CompactItemize}
107\item 
108std::ostream \& {\bf operator$<$$<$} (std::ostream \&os, const {\bf ldmat} \&sq)\label{classldmat_eaaa0baa6026b84cfcbced41c84599d1}
109
110\begin{CompactList}\small\item\em print both {\tt L} and {\tt D} \item\end{CompactList}\end{CompactItemize}
111
112
113\subsection{Detailed Description}
114Matrix stored in LD form, (typically known as UD).
115
116Matrix is decomposed as follows: \[M = L'DL\] where only \$L\$ and \$D\$ matrices are stored. All inplace operations modifies only these and the need to compose and decompose the matrix is avoided.
117
118\subsection{Member Function Documentation}
119\index{ldmat@{ldmat}!opupdt@{opupdt}}
120\index{opupdt@{opupdt}!ldmat@{ldmat}}
121\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void ldmat::opupdt (const vec \& {\em v}, double {\em w})\hspace{0.3cm}{\tt  [virtual]}}\label{classldmat_0f0f6e083e6d947cf58097ffce3ccd1a}
122
123
124Perfroms a rank-1 update by outer product of vectors: \$V = V + w v v'\$. \begin{Desc}
125\item[Parameters:]
126\begin{description}
127\item[{\em v}]Vector forming the outer product to be added \item[{\em w}]weight of updating; can be negative\end{description}
128\end{Desc}
129BLAS-2b operation.
130
131Implements {\bf sqmat} \doxyref{}{p.}{classsqmat_b223484796661f2dadb5607a86ce0581}.\index{ldmat@{ldmat}!mult_sym@{mult\_\-sym}}
132\index{mult_sym@{mult\_\-sym}!ldmat@{ldmat}}
133\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void ldmat::mult\_\-sym (const mat \& {\em C})\hspace{0.3cm}{\tt  [virtual]}}\label{classldmat_e967b9425007f0cb6cd59b845f9756d8}
134
135
136Inplace symmetric multiplication by a SQUARE matrix \$C\$, i.e. \$V = C$\ast$V$\ast$C'\$.
137
138\begin{Desc}
139\item[Parameters:]
140\begin{description}
141\item[{\em C}]multiplying matrix, \end{description}
142\end{Desc}
143
144
145Implements {\bf sqmat} \doxyref{}{p.}{classsqmat_60fbbfa9e483b8187c135f787ee53afa}.\index{ldmat@{ldmat}!mult_sym_t@{mult\_\-sym\_\-t}}
146\index{mult_sym_t@{mult\_\-sym\_\-t}!ldmat@{ldmat}}
147\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void ldmat::mult\_\-sym\_\-t (const mat \& {\em C})\hspace{0.3cm}{\tt  [virtual]}}\label{classldmat_4fd155f38eb6dd5af4bdf9c98a7999a9}
148
149
150Inplace symmetric multiplication by a SQUARE transpose of matrix \$C\$, i.e. \$V = C'$\ast$V$\ast$C\$.
151
152\begin{Desc}
153\item[Parameters:]
154\begin{description}
155\item[{\em C}]multiplying matrix, \end{description}
156\end{Desc}
157
158
159Implements {\bf sqmat} \doxyref{}{p.}{classsqmat_6909e906da17725b1b80f3cae7cf3325}.\index{ldmat@{ldmat}!sqrt_mult@{sqrt\_\-mult}}
160\index{sqrt_mult@{sqrt\_\-mult}!ldmat@{ldmat}}
161\subsubsection{\setlength{\rightskip}{0pt plus 5cm}vec ldmat::sqrt\_\-mult (const vec \& {\em v}) const\hspace{0.3cm}{\tt  [virtual]}}\label{classldmat_fc380626ced6f9244fb58c5f0231174d}
162
163
164Multiplies square root of \$V\$ by vector \$x\$.
165
166Used e.g. in generating normal samples.
167
168Implements {\bf sqmat} \doxyref{}{p.}{classsqmat_6b79438b5d7544a9c8e110a145355d8f}.\index{ldmat@{ldmat}!inv@{inv}}
169\index{inv@{inv}!ldmat@{ldmat}}
170\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void ldmat::inv ({\bf ldmat} \& {\em Inv}) const\hspace{0.3cm}{\tt  [virtual]}}\label{classldmat_2c160cb123c1102face7a50ec566a031}
171
172
173Matrix inversion preserving the chosen form.
174
175\begin{Desc}
176\item[Parameters:]
177\begin{description}
178\item[{\em Inv}]a space where the inverse is stored. \end{description}
179\end{Desc}
180\index{ldmat@{ldmat}!mult_sym@{mult\_\-sym}}
181\index{mult_sym@{mult\_\-sym}!ldmat@{ldmat}}
182\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void ldmat::mult\_\-sym (const mat \& {\em C}, {\bf ldmat} \& {\em U}) const}\label{classldmat_e7207748909325bb0f99b43f090a2b7e}
183
184
185Symmetric multiplication of \$U\$ by a general matrix \$C\$, result of which is stored in the current class.
186
187\begin{Desc}
188\item[Parameters:]
189\begin{description}
190\item[{\em C}]matrix to multiply with \item[{\em U}]a space where the inverse is stored. \end{description}
191\end{Desc}
192\index{ldmat@{ldmat}!mult_sym_t@{mult\_\-sym\_\-t}}
193\index{mult_sym_t@{mult\_\-sym\_\-t}!ldmat@{ldmat}}
194\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void ldmat::mult\_\-sym\_\-t (const mat \& {\em C}, {\bf ldmat} \& {\em U}) const}\label{classldmat_f94dc3a233f3d40fc853d8d4ac3b8eab}
195
196
197Symmetric multiplication of \$U\$ by a transpose of a general matrix \$C\$, result of which is stored in the current class.
198
199\begin{Desc}
200\item[Parameters:]
201\begin{description}
202\item[{\em C}]matrix to multiply with \item[{\em U}]a space where the inverse is stored. \end{description}
203\end{Desc}
204\index{ldmat@{ldmat}!ldform@{ldform}}
205\index{ldform@{ldform}!ldmat@{ldmat}}
206\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void ldmat::ldform (const mat \& {\em A}, const vec \& {\em D0})}\label{classldmat_f291faa073e7bc8dfafc7ae93daa2506}
207
208
209Transforms general \$A'D0 A\$ into pure \$L'DL\$.
210
211The new decomposition fullfills: \$A'$\ast$diag(D)$\ast$A = self.L'$\ast$diag(self.D)$\ast$self.L\$ \begin{Desc}
212\item[Parameters:]
213\begin{description}
214\item[{\em A}]general matrix \item[{\em D0}]general vector \end{description}
215\end{Desc}
216\index{ldmat@{ldmat}!operator+=@{operator+=}}
217\index{operator+=@{operator+=}!ldmat@{ldmat}}
218\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf ldmat} \& ldmat::operator+= (const {\bf ldmat} \& {\em ldA})\hspace{0.3cm}{\tt  [inline]}}\label{classldmat_ca445ee152a56043af946ea095b2d8f8}
219
220
221add another \doxyref{ldmat}{p.}{classldmat} matrix
222
223Operations: mapping of add operation to operators \index{ldmat@{ldmat}!operator-=@{operator-=}}
224\index{operator-=@{operator-=}!ldmat@{ldmat}}
225\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf ldmat} \& ldmat::operator-= (const {\bf ldmat} \& {\em ldA})\hspace{0.3cm}{\tt  [inline]}}\label{classldmat_e3f4d2d85ab1ba384c852329aa31d0fb}
226
227
228subtract another \doxyref{ldmat}{p.}{classldmat} matrix
229
230mapping of negative add operation to operators
231
232The documentation for this class was generated from the following files:\begin{CompactItemize}
233\item 
234work/mixpp/bdm/math/{\bf libDC.h}\item 
235work/mixpp/bdm/math/libDC.cpp\end{CompactItemize}
Note: See TracBrowser for help on using the browser.