1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>TridiagonalOperator class Reference</title>
4
<link href="quantlib.css" rel="stylesheet" type="text/css">
9
"Layout table: navigation bar in the first cell, contents in the second cell"
16
<img class= "addtopspace" src="QL-small.jpg"
17
alt="QuantLib Logo"></div>
18
<h3 class="navbartitle">QuantLib 0.3.6</h3>
20
<a href="http://quantlib.org/">http://quantlib.org</a></div>
24
<h3 class="navbartitle">User manual</h3>
26
<h4 class="navbartitle">Introduction to QuantLib</h4>
27
<ul class="navlinklist">
28
<li><a class="navlink" href="index.html">Introduction</a></li>
29
<li><a class="navlink" href="overview.html">Project overview</a></li>
30
<li><a class="navlink" href="where.html">Where to get QuantLib</a></li>
31
<li><a class="navlink" href="install.html">Installation</a></li>
32
<li><a class="navlink" href="usage.html">Usage</a></li>
33
<li><a class="navlink" href="history.html">Version history</a></li>
34
<li><a class="navlink" href="resources.html">Additional resources</a></li>
35
<li><a class="navlink" href="group.html">The QuantLib group</a></li>
36
<li><a class="navlink" href="license.html">Copyright and license</a></li>
39
<h4 class="navbartitle">QuantLib components</h4>
40
<ul class="navlinklist">
41
<li><a class="navlink" href="coreclasses.html">Core classes</a></li>
42
<li><a class="navlink" href="datetime.html">Date and time calculations</a></li>
43
<li><a class="navlink" href="lattices.html">Lattice methods</a></li>
44
<li><a class="navlink" href="findiff.html">The finite differences framework</a></li>
45
<li><a class="navlink" href="mcarlo.html">The Monte Carlo framework</a></li>
46
<li><a class="navlink" href="fixedincome.html">Short-rate models</a></li>
47
<li><a class="navlink" href="currencies.html">Currencies and FX rates</a></li>
48
<li><a class="navlink" href="instruments.html">Instruments and pricers</a></li>
49
<li><a class="navlink" href="math.html">Math tools</a></li>
50
<li><a class="navlink" href="patterns.html">Design patterns</a></li>
51
<li><a class="navlink" href="termstructures.html">Term structures</a></li>
52
<li><a class="navlink" href="utilities.html">Utilities</a></li>
53
<li><a class="navlink" href="examples.html">Examples</a></li>
58
<h3 class="navbartitle">Reference manual</h3>
60
<ul class="navlinklist">
61
<li><a class="navlink" href="modules.html">Modules</a></li>
62
<li><a class="navlink" href="hierarchy.html">Class Hierarchy</a></li>
63
<li><a class="navlink" href="annotated.html">Compound List</a></li>
64
<li><a class="navlink" href="files.html">File List</a></li>
65
<li><a class="navlink" href="functions.html">Compound Members</a></li>
66
<li><a class="navlink" href="globals.html">File Members</a></li>
67
<li><a class="navlink" href="todo.html">Todo List</a></li>
68
<li><a class="navlink" href="bug.html">Known Bugs</a></li>
69
<li><a class="navlink" href="deprecated.html">Deprecated Features</a></li>
74
<!--Doxygen-generated content-->
76
<!-- Generated by Doxygen 1.3.6 -->
77
<h1>TridiagonalOperator Class Reference</h1><code>#include <ql/FiniteDifferences/tridiagonaloperator.hpp></code>
79
Inheritance diagram for TridiagonalOperator:<p><center><img src="a02274.png" border="0" usemap="#a02275" alt="Inheritance graph"></center>
81
<area href="a00915.html" shape="rect" coords="7,87,97,105" alt="">
82
<area href="a01009.html" shape="rect" coords="121,87,175,105" alt="">
83
<area href="a01011.html" shape="rect" coords="199,87,244,105" alt="">
84
<area href="a01012.html" shape="rect" coords="268,87,356,105" alt="">
85
<area href="a01014.html" shape="rect" coords="380,87,425,105" alt="">
86
<area href="a01223.html" shape="rect" coords="449,87,572,105" alt="">
88
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="a00128.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
89
Base implementation for tridiagonal operator.
91
<dl compact><dt><b>Warning:</b></dt><dd>to use real time-dependant algebra, you must overload the corresponding operators in the inheriting time-dependent class </dd></dl>
94
<table border=0 cellpadding=0 cellspacing=0>
96
<tr><td colspan=2><br><h2>Operator interface</h2></td></tr>
97
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z87_0" doxytag="QuantLib::TridiagonalOperator::applyTo" ></a>
98
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a00862.html">Array</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a01361.html#z87_0">applyTo</a> (const <a class="el" href="a00862.html">Array</a> &v) const </td></tr>
100
<tr><td class="mdescLeft"> </td><td class="mdescRight">apply operator to a given array <br><br></td></tr>
101
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z87_1" doxytag="QuantLib::TridiagonalOperator::solveFor" ></a>
102
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a00862.html">Array</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a01361.html#z87_1">solveFor</a> (const <a class="el" href="a00862.html">Array</a> &rhs) const </td></tr>
104
<tr><td class="mdescLeft"> </td><td class="mdescRight">solve linear system for a given right-hand side <br><br></td></tr>
105
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z87_2" doxytag="QuantLib::TridiagonalOperator::SOR" ></a>
106
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a00862.html">Array</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a01361.html#z87_2">SOR</a> (const <a class="el" href="a00862.html">Array</a> &rhs, double tol) const </td></tr>
108
<tr><td class="mdescLeft"> </td><td class="mdescRight">solve linear system with SOR approach <br><br></td></tr>
109
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z87_3" doxytag="QuantLib::TridiagonalOperator::identity" ></a>
110
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a01361.html">TridiagonalOperator</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a01361.html#z87_3">identity</a> (Size size)</td></tr>
112
<tr><td class="mdescLeft"> </td><td class="mdescRight">identity instance <br><br></td></tr>
113
<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
114
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="w0" doxytag="QuantLib::TridiagonalOperator::arrayType" ></a>
115
typedef <a class="el" href="a00862.html">Array</a> </td><td class="memItemRight" valign=bottom><b>arrayType</b></td></tr>
117
<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
118
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a0" doxytag="QuantLib::TridiagonalOperator::TridiagonalOperator" ></a>
119
</td><td class="memItemRight" valign=bottom><b>TridiagonalOperator</b> (Size size=0)</td></tr>
121
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a1" doxytag="QuantLib::TridiagonalOperator::TridiagonalOperator" ></a>
122
</td><td class="memItemRight" valign=bottom><b>TridiagonalOperator</b> (const <a class="el" href="a00862.html">Array</a> &low, const <a class="el" href="a00862.html">Array</a> &mid, const <a class="el" href="a00862.html">Array</a> &high)</td></tr>
124
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a2" doxytag="QuantLib::TridiagonalOperator::TridiagonalOperator" ></a>
125
</td><td class="memItemRight" valign=bottom><b>TridiagonalOperator</b> (const <a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a01361.html">TridiagonalOperator</a> > &)</td></tr>
127
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a3" doxytag="QuantLib::TridiagonalOperator::operator=" ></a>
128
<a class="el" href="a01361.html">TridiagonalOperator</a> & </td><td class="memItemRight" valign=bottom><b>operator=</b> (const <a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a01361.html">TridiagonalOperator</a> > &)</td></tr>
130
<tr><td colspan="2"><div class="groupHeader">Inspectors</div></td></tr>
131
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z89_0" doxytag="QuantLib::TridiagonalOperator::size" ></a>
132
Size </td><td class="memItemRight" valign=bottom><b>size</b> () const </td></tr>
134
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z89_1" doxytag="QuantLib::TridiagonalOperator::isTimeDependent" ></a>
135
bool </td><td class="memItemRight" valign=bottom><b>isTimeDependent</b> ()</td></tr>
137
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z89_2" doxytag="QuantLib::TridiagonalOperator::lowerDiagonal" ></a>
138
const <a class="el" href="a00862.html">Array</a> & </td><td class="memItemRight" valign=bottom><b>lowerDiagonal</b> () const </td></tr>
140
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z89_3" doxytag="QuantLib::TridiagonalOperator::diagonal" ></a>
141
const <a class="el" href="a00862.html">Array</a> & </td><td class="memItemRight" valign=bottom><b>diagonal</b> () const </td></tr>
143
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z89_4" doxytag="QuantLib::TridiagonalOperator::upperDiagonal" ></a>
144
const <a class="el" href="a00862.html">Array</a> & </td><td class="memItemRight" valign=bottom><b>upperDiagonal</b> () const </td></tr>
146
<tr><td colspan="2"><div class="groupHeader">Modifiers</div></td></tr>
147
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z91_0" doxytag="QuantLib::TridiagonalOperator::setFirstRow" ></a>
148
void </td><td class="memItemRight" valign=bottom><b>setFirstRow</b> (double, double)</td></tr>
150
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z91_1" doxytag="QuantLib::TridiagonalOperator::setMidRow" ></a>
151
void </td><td class="memItemRight" valign=bottom><b>setMidRow</b> (Size, double, double, double)</td></tr>
153
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z91_2" doxytag="QuantLib::TridiagonalOperator::setMidRows" ></a>
154
void </td><td class="memItemRight" valign=bottom><b>setMidRows</b> (double, double, double)</td></tr>
156
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z91_3" doxytag="QuantLib::TridiagonalOperator::setLastRow" ></a>
157
void </td><td class="memItemRight" valign=bottom><b>setLastRow</b> (double, double)</td></tr>
159
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z91_4" doxytag="QuantLib::TridiagonalOperator::setTime" ></a>
160
void </td><td class="memItemRight" valign=bottom><b>setTime</b> (Time t)</td></tr>
162
<tr><td colspan="2"><div class="groupHeader">Utilities</div></td></tr>
163
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="z93_0" doxytag="QuantLib::TridiagonalOperator::swap" ></a>
164
void </td><td class="memItemRight" valign=bottom><b>swap</b> (<a class="el" href="a01361.html">TridiagonalOperator</a> &)</td></tr>
166
<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
167
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="p0" doxytag="QuantLib::TridiagonalOperator::diagonal_" ></a>
168
<a class="el" href="a00862.html">Array</a> </td><td class="memItemRight" valign=bottom><b>diagonal_</b></td></tr>
170
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="p1" doxytag="QuantLib::TridiagonalOperator::lowerDiagonal_" ></a>
171
<a class="el" href="a00862.html">Array</a> </td><td class="memItemRight" valign=bottom><b>lowerDiagonal_</b></td></tr>
173
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="p2" doxytag="QuantLib::TridiagonalOperator::upperDiagonal_" ></a>
174
<a class="el" href="a00862.html">Array</a> </td><td class="memItemRight" valign=bottom><b>upperDiagonal_</b></td></tr>
176
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="p3" doxytag="QuantLib::TridiagonalOperator::timeSetter_" ></a>
177
<a class="el" href="a01085.html">Handle</a>< <a class="el" href="a01362.html">TimeSetter</a> > </td><td class="memItemRight" valign=bottom><b>timeSetter_</b></td></tr>
179
<tr><td colspan=2><br><h2>Friends</h2></td></tr>
180
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="n0" doxytag="QuantLib::TridiagonalOperator::operator+" ></a>
181
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a01361.html">TridiagonalOperator</a> > </td><td class="memItemRight" valign=bottom><b>operator+</b> (const <a class="el" href="a01361.html">TridiagonalOperator</a> &)</td></tr>
183
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="n1" doxytag="QuantLib::TridiagonalOperator::operator-" ></a>
184
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a01361.html">TridiagonalOperator</a> > </td><td class="memItemRight" valign=bottom><b>operator-</b> (const <a class="el" href="a01361.html">TridiagonalOperator</a> &)</td></tr>
186
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="n2" doxytag="QuantLib::TridiagonalOperator::operator+" ></a>
187
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a01361.html">TridiagonalOperator</a> > </td><td class="memItemRight" valign=bottom><b>operator+</b> (const <a class="el" href="a01361.html">TridiagonalOperator</a> &, const <a class="el" href="a01361.html">TridiagonalOperator</a> &)</td></tr>
189
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="n3" doxytag="QuantLib::TridiagonalOperator::operator-" ></a>
190
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a01361.html">TridiagonalOperator</a> > </td><td class="memItemRight" valign=bottom><b>operator-</b> (const <a class="el" href="a01361.html">TridiagonalOperator</a> &, const <a class="el" href="a01361.html">TridiagonalOperator</a> &)</td></tr>
192
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="n4" doxytag="QuantLib::TridiagonalOperator::operator *" ></a>
193
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a01361.html">TridiagonalOperator</a> > </td><td class="memItemRight" valign=bottom><b>operator *</b> (double, const <a class="el" href="a01361.html">TridiagonalOperator</a> &)</td></tr>
195
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="n5" doxytag="QuantLib::TridiagonalOperator::operator *" ></a>
196
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a01361.html">TridiagonalOperator</a> > </td><td class="memItemRight" valign=bottom><b>operator *</b> (const <a class="el" href="a01361.html">TridiagonalOperator</a> &, double)</td></tr>
198
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="n6" doxytag="QuantLib::TridiagonalOperator::operator/" ></a>
199
<a class="el" href="a01008.html">Disposable</a>< <a class="el" href="a01361.html">TridiagonalOperator</a> > </td><td class="memItemRight" valign=bottom><b>operator/</b> (const <a class="el" href="a01361.html">TridiagonalOperator</a> &, double)</td></tr>
210
<table align="top" width="100%">
212
<td align="middle" width="33%">
213
<strong>QuantLib.org</strong><br>
214
<a href="http://quantlib.org/">
215
<img src="QL-small.jpg" alt="QuantLib" align="middle" border=0>
218
<td align="middle" width="33%">
219
<strong>Hosted by</strong><br>
220
<a href="http://sourceforge.net"><img src=
221
"sfnetlogo.png" width="88" height="31"
222
border="0" alt="SourceForge.net Logo"></a>
224
<td align="middle" width="33%">
225
<strong>Documentation generated by</strong><br>
226
<a href="http://www.doxygen.org">
227
<img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53>