File: class_quant_lib_1_1_cubic_interpolation.html

package info (click to toggle)
quantlib-refman-html 1.20-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 103,140 kB
  • sloc: javascript: 13,408; makefile: 35
file content (366 lines) | stat: -rw-r--r-- 33,942 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>QuantLib: CubicInterpolation Class Reference</title>
<link href='https://fonts.googleapis.com/css?family=Merriweather+Sans:800' rel='stylesheet' type='text/css'>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="quantlibextra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://quantlib.org">
       <img alt="QuantLib" src="QL-title.jpg"></a>
   <div id="projectbrief">A free/open-source library for quantitative finance</div>
   <div id="projectnumber">Reference manual - version 1.20</div>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespace_quant_lib.html">QuantLib</a></li><li class="navelem"><a class="el" href="class_quant_lib_1_1_cubic_interpolation.html">CubicInterpolation</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_quant_lib_1_1_cubic_interpolation-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">CubicInterpolation Class Reference<div class="ingroups"><a class="el" href="group__math.html">Math tools</a> &raquo; <a class="el" href="group__interpolations.html">1-D Interpolations and corresponding traits</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Cubic interpolation between discrete points.  
 <a href="class_quant_lib_1_1_cubic_interpolation.html#details">More...</a></p>

<p><code>#include &lt;ql/math/interpolations/cubicinterpolation.hpp&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for CubicInterpolation:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_quant_lib_1_1_cubic_interpolation__inherit__graph.png" border="0" usemap="#a_cubic_interpolation_inherit__map" alt="Inheritance graph"/></div>
<map name="_cubic_interpolation_inherit__map" id="a_cubic_interpolation_inherit__map">
<area shape="rect" title="Cubic interpolation between discrete points." alt="" coords="5,155,132,181"/>
<area shape="rect" href="class_quant_lib_1_1_interpolation.html" title="base class for 1&#45;D interpolations." alt="" coords="22,80,115,107"/>
<area shape="rect" href="class_quant_lib_1_1_extrapolator.html" title="base class for classes possibly allowing extrapolation" alt="" coords="23,5,115,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aeccb633d9226f37b800589483ea2f0f6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6">DerivativeApprox</a> { <br />
&#160;&#160;<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6a73a1396ca8adb89d7ff481ff55974c1e">Spline</a>, 
<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6aace9569c3a723c414afe7e6332958312">SplineOM1</a>, 
<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6a5230bf2465bab97aecd7087ee1a8ce1e">SplineOM2</a>, 
<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6a8908df67d5fb494d1799a270564789f8">FourthOrder</a>, 
<br />
&#160;&#160;<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6a6c56130d695e3aea964232dacfa2c298">Parabolic</a>, 
<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6ac194b4cb0838c7c484b13eb6d6dc0010">FritschButland</a>, 
<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6ab1ddc152184a0f96b8f6e9be8168e708">Akima</a>, 
<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6a065fa14c1b83af108fdae0c713695951">Kruger</a>, 
<br />
&#160;&#160;<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6a82e4e48ee59fde0b536296be56d2365f">Harmonic</a>
<br />
 }</td></tr>
<tr class="separator:aeccb633d9226f37b800589483ea2f0f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3393571fa8a8daa4ee5c06613b26555"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555">BoundaryCondition</a> { <br />
&#160;&#160;<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555a7922e3c8bf97083083c9261300dcfedf">NotAKnot</a>, 
<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555aaf8392865aea8f24355012391183d9e9">FirstDerivative</a>, 
<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555a23de8c854eb282410ba10963837c94b5">SecondDerivative</a>, 
<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555a6db09e3bc054df6f996a45de2ccfeacd">Periodic</a>, 
<br />
&#160;&#160;<a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555a1e1c27164b52b5cdf7df7f110dbb0fd3">Lagrange</a>
<br />
 }</td></tr>
<tr class="separator:af3393571fa8a8daa4ee5c06613b26555"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_class_quant_lib_1_1_interpolation"><td colspan="2" onclick="javascript:toggleInherit('pub_types_class_quant_lib_1_1_interpolation')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="class_quant_lib_1_1_interpolation.html">Interpolation</a></td></tr>
<tr class="memitem:af498733f2fd0abef2f5f1071a1b9354a inherit pub_types_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="af498733f2fd0abef2f5f1071a1b9354a"></a>
typedef <a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a>&#160;</td><td class="memItemRight" valign="bottom"><b>argument_type</b></td></tr>
<tr class="separator:af498733f2fd0abef2f5f1071a1b9354a inherit pub_types_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd4b619e88e62e8c704bc850340fc078 inherit pub_types_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="abd4b619e88e62e8c704bc850340fc078"></a>
typedef <a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a>&#160;</td><td class="memItemRight" valign="bottom"><b>result_type</b></td></tr>
<tr class="separator:abd4b619e88e62e8c704bc850340fc078 inherit pub_types_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4660490e94d17a41507f676a5eb41a15"><td class="memTemplParams" colspan="2">template&lt;class I1 , class I2 &gt; </td></tr>
<tr class="memitem:a4660490e94d17a41507f676a5eb41a15"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#a4660490e94d17a41507f676a5eb41a15">CubicInterpolation</a> (const I1 &amp;xBegin, const I1 &amp;xEnd, const I2 &amp;yBegin, <a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6">CubicInterpolation::DerivativeApprox</a> da, bool monotonic, <a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555">CubicInterpolation::BoundaryCondition</a> leftCond, <a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> leftConditionValue, <a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555">CubicInterpolation::BoundaryCondition</a> rightCond, <a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> rightConditionValue)</td></tr>
<tr class="separator:a4660490e94d17a41507f676a5eb41a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6754007f9e60ec993ef68040a28f1e50"><td class="memItemLeft" align="right" valign="top"><a id="a6754007f9e60ec993ef68040a28f1e50"></a>
const std::vector&lt; <a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>primitiveConstants</b> () const</td></tr>
<tr class="separator:a6754007f9e60ec993ef68040a28f1e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a811857015fa15aa80f02d11e2e661731"><td class="memItemLeft" align="right" valign="top"><a id="a811857015fa15aa80f02d11e2e661731"></a>
const std::vector&lt; <a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>aCoefficients</b> () const</td></tr>
<tr class="separator:a811857015fa15aa80f02d11e2e661731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8889c85e79a995e80f24434f2e071b21"><td class="memItemLeft" align="right" valign="top"><a id="a8889c85e79a995e80f24434f2e071b21"></a>
const std::vector&lt; <a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>bCoefficients</b> () const</td></tr>
<tr class="separator:a8889c85e79a995e80f24434f2e071b21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a834b4580811d5b5fa3e6e5f253c71d"><td class="memItemLeft" align="right" valign="top"><a id="a5a834b4580811d5b5fa3e6e5f253c71d"></a>
const std::vector&lt; <a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>cCoefficients</b> () const</td></tr>
<tr class="separator:a5a834b4580811d5b5fa3e6e5f253c71d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1892b9d2462e68d3028e9204c4e6132b"><td class="memItemLeft" align="right" valign="top"><a id="a1892b9d2462e68d3028e9204c4e6132b"></a>
const std::vector&lt; bool &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>monotonicityAdjustments</b> () const</td></tr>
<tr class="separator:a1892b9d2462e68d3028e9204c4e6132b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_quant_lib_1_1_interpolation"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_quant_lib_1_1_interpolation')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_quant_lib_1_1_interpolation.html">Interpolation</a></td></tr>
<tr class="memitem:a644718bb2fb240de962dc3c9a1fdf0dc inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="a644718bb2fb240de962dc3c9a1fdf0dc"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>empty</b> () const</td></tr>
<tr class="separator:a644718bb2fb240de962dc3c9a1fdf0dc inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6f9e73b24954e89c9f4d018f13849e0 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="ae6f9e73b24954e89c9f4d018f13849e0"></a>
<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator()</b> (<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> x, bool allowExtrapolation=false) const</td></tr>
<tr class="separator:ae6f9e73b24954e89c9f4d018f13849e0 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8fd72d9758f5f356d500360ff1ddccd inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="ae8fd72d9758f5f356d500360ff1ddccd"></a>
<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a>&#160;</td><td class="memItemRight" valign="bottom"><b>primitive</b> (<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> x, bool allowExtrapolation=false) const</td></tr>
<tr class="separator:ae8fd72d9758f5f356d500360ff1ddccd inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a388d2f0db741b4201abbf1f6b93607af inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="a388d2f0db741b4201abbf1f6b93607af"></a>
<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a>&#160;</td><td class="memItemRight" valign="bottom"><b>derivative</b> (<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> x, bool allowExtrapolation=false) const</td></tr>
<tr class="separator:a388d2f0db741b4201abbf1f6b93607af inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23ad10ac497463bd5a56ffca7bb111d6 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="a23ad10ac497463bd5a56ffca7bb111d6"></a>
<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a>&#160;</td><td class="memItemRight" valign="bottom"><b>secondDerivative</b> (<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> x, bool allowExtrapolation=false) const</td></tr>
<tr class="separator:a23ad10ac497463bd5a56ffca7bb111d6 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5efece7d663758ca3990448aa8e69bc7 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="a5efece7d663758ca3990448aa8e69bc7"></a>
<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a>&#160;</td><td class="memItemRight" valign="bottom"><b>xMin</b> () const</td></tr>
<tr class="separator:a5efece7d663758ca3990448aa8e69bc7 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f70132c816636eee187ed4022f7c6c7 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="a7f70132c816636eee187ed4022f7c6c7"></a>
<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a>&#160;</td><td class="memItemRight" valign="bottom"><b>xMax</b> () const</td></tr>
<tr class="separator:a7f70132c816636eee187ed4022f7c6c7 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afeb17572ccefb58fd8c237955f4101c0 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="afeb17572ccefb58fd8c237955f4101c0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isInRange</b> (<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> x) const</td></tr>
<tr class="separator:afeb17572ccefb58fd8c237955f4101c0 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5c54df7ed3b930268c8d7752c101725 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="ac5c54df7ed3b930268c8d7752c101725"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>update</b> ()</td></tr>
<tr class="separator:ac5c54df7ed3b930268c8d7752c101725 inherit pub_methods_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_quant_lib_1_1_extrapolator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_quant_lib_1_1_extrapolator')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_quant_lib_1_1_extrapolator.html">Extrapolator</a></td></tr>
<tr class="memitem:ae60e793a77f44a9c022b103458fa993c inherit pub_methods_class_quant_lib_1_1_extrapolator"><td class="memItemLeft" align="right" valign="top"><a id="ae60e793a77f44a9c022b103458fa993c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_extrapolator.html#ae60e793a77f44a9c022b103458fa993c">enableExtrapolation</a> (bool b=true)</td></tr>
<tr class="memdesc:ae60e793a77f44a9c022b103458fa993c inherit pub_methods_class_quant_lib_1_1_extrapolator"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable extrapolation in subsequent calls <br /></td></tr>
<tr class="separator:ae60e793a77f44a9c022b103458fa993c inherit pub_methods_class_quant_lib_1_1_extrapolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abab5047522a68771f2b1d51d1ac78383 inherit pub_methods_class_quant_lib_1_1_extrapolator"><td class="memItemLeft" align="right" valign="top"><a id="abab5047522a68771f2b1d51d1ac78383"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_extrapolator.html#abab5047522a68771f2b1d51d1ac78383">disableExtrapolation</a> (bool b=true)</td></tr>
<tr class="memdesc:abab5047522a68771f2b1d51d1ac78383 inherit pub_methods_class_quant_lib_1_1_extrapolator"><td class="mdescLeft">&#160;</td><td class="mdescRight">disable extrapolation in subsequent calls <br /></td></tr>
<tr class="separator:abab5047522a68771f2b1d51d1ac78383 inherit pub_methods_class_quant_lib_1_1_extrapolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a323f875818fddd62a1c56c25ddaee418 inherit pub_methods_class_quant_lib_1_1_extrapolator"><td class="memItemLeft" align="right" valign="top"><a id="a323f875818fddd62a1c56c25ddaee418"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_extrapolator.html#a323f875818fddd62a1c56c25ddaee418">allowsExtrapolation</a> () const</td></tr>
<tr class="memdesc:a323f875818fddd62a1c56c25ddaee418 inherit pub_methods_class_quant_lib_1_1_extrapolator"><td class="mdescLeft">&#160;</td><td class="mdescRight">tells whether extrapolation is enabled <br /></td></tr>
<tr class="separator:a323f875818fddd62a1c56c25ddaee418 inherit pub_methods_class_quant_lib_1_1_extrapolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_class_quant_lib_1_1_interpolation"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_quant_lib_1_1_interpolation')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_quant_lib_1_1_interpolation.html">Interpolation</a></td></tr>
<tr class="memitem:af7f8e2474e4f230aa86ecf714b9d87d4 inherit pro_methods_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="af7f8e2474e4f230aa86ecf714b9d87d4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>checkRange</b> (<a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> x, bool extrapolate) const</td></tr>
<tr class="separator:af7f8e2474e4f230aa86ecf714b9d87d4 inherit pro_methods_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_quant_lib_1_1_interpolation"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_quant_lib_1_1_interpolation')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_quant_lib_1_1_interpolation.html">Interpolation</a></td></tr>
<tr class="memitem:ac29a938cdc70db8abcde7a84fe62f9b4 inherit pro_attribs_class_quant_lib_1_1_interpolation"><td class="memItemLeft" align="right" valign="top"><a id="ac29a938cdc70db8abcde7a84fe62f9b4"></a>
ext::shared_ptr&lt; <a class="el" href="class_quant_lib_1_1_interpolation_1_1_impl.html">Impl</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>impl_</b></td></tr>
<tr class="separator:ac29a938cdc70db8abcde7a84fe62f9b4 inherit pro_attribs_class_quant_lib_1_1_interpolation"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Cubic interpolation between discrete points. </p>
<p><a class="el" href="class_quant_lib_1_1_cubic.html" title="Cubic interpolation factory and traits">Cubic</a> interpolation is fully defined when the ${f_i}$ function values at points ${x_i}$ are supplemented with ${f^'_i}$ function derivative values.</p>
<p>Different type of first derivative approximations are implemented, both local and non-local. Local schemes (Fourth-order, Parabolic, Modified Parabolic, Fritsch-Butland, Akima, Kruger) use only $f$ values near $x_i$ to calculate each $f^'_i$. Non-local schemes (Spline with different boundary conditions) use all ${f_i}$ values and obtain ${f^'_i}$ by solving a linear system of equations. Local schemes produce $C^1$ interpolants, while the spline schemes generate $C^2$ interpolants.</p>
<p>Hyman's monotonicity constraint filter is also implemented: it can be applied to all schemes to ensure that in the regions of local monotoniticity of the input (three successive increasing or decreasing values) the interpolating cubic remains monotonic. If the interpolating cubic is already monotonic, the Hyman filter leaves it unchanged preserving all its original features.</p>
<p>In the case of $C^2$ interpolants the Hyman filter ensures local monotonicity at the expense of the second derivative of the interpolant which will no longer be continuous in the points where the filter has been applied.</p>
<p>While some non-linear schemes (Modified Parabolic, Fritsch-Butland, Kruger) are guaranteed to be locally monotonic in their original approximation, all other schemes must be filtered according to the Hyman criteria at the expense of their linearity.</p>
<p>See R. L. Dougherty, A. Edelman, and J. M. Hyman, "Nonnegativity-, Monotonicity-, or Convexity-Preserving CubicSpline and
Quintic Hermite Interpolation" Mathematics Of Computation, v. 52, n. 186, April 1989, pp. 471-494.</p>
<dl class="test"><dt><b><a class="el" href="test.html#_test000050">Tests:</a></b></dt><dd>to be adapted from old ones.</dd></dl>
<dl class="caveats"><dt><b><a class="el" href="caveats.html#_caveats000088">Warning:</a></b></dt><dd>See the <a class="el" href="class_quant_lib_1_1_interpolation.html" title="base class for 1-D interpolations.">Interpolation</a> class for information about the required lifetime of the underlying data. </dd></dl>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="aeccb633d9226f37b800589483ea2f0f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeccb633d9226f37b800589483ea2f0f6">&#9670;&nbsp;</a></span>DerivativeApprox</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6">DerivativeApprox</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aeccb633d9226f37b800589483ea2f0f6a73a1396ca8adb89d7ff481ff55974c1e"></a>Spline&#160;</td><td class="fielddoc"><p>Spline approximation (non-local, non-monotonic, linear[?]). Different boundary conditions can be used on the left and right boundaries: see <a class="el" href="class_quant_lib_1_1_boundary_condition.html" title="Abstract boundary condition class for finite difference problems.">BoundaryCondition</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="aeccb633d9226f37b800589483ea2f0f6aace9569c3a723c414afe7e6332958312"></a>SplineOM1&#160;</td><td class="fielddoc"><p>Overshooting minimization 1st derivative. </p>
</td></tr>
<tr><td class="fieldname"><a id="aeccb633d9226f37b800589483ea2f0f6a5230bf2465bab97aecd7087ee1a8ce1e"></a>SplineOM2&#160;</td><td class="fielddoc"><p>Overshooting minimization 2nd derivative. </p>
</td></tr>
<tr><td class="fieldname"><a id="aeccb633d9226f37b800589483ea2f0f6a8908df67d5fb494d1799a270564789f8"></a>FourthOrder&#160;</td><td class="fielddoc"><p>Fourth-order approximation (local, non-monotonic, linear) </p>
</td></tr>
<tr><td class="fieldname"><a id="aeccb633d9226f37b800589483ea2f0f6a6c56130d695e3aea964232dacfa2c298"></a>Parabolic&#160;</td><td class="fielddoc"><p>Parabolic approximation (local, non-monotonic, linear) </p>
</td></tr>
<tr><td class="fieldname"><a id="aeccb633d9226f37b800589483ea2f0f6ac194b4cb0838c7c484b13eb6d6dc0010"></a>FritschButland&#160;</td><td class="fielddoc"><p>Fritsch-Butland approximation (local, monotonic, non-linear) </p>
</td></tr>
<tr><td class="fieldname"><a id="aeccb633d9226f37b800589483ea2f0f6ab1ddc152184a0f96b8f6e9be8168e708"></a>Akima&#160;</td><td class="fielddoc"><p>Akima approximation (local, non-monotonic, non-linear) </p>
</td></tr>
<tr><td class="fieldname"><a id="aeccb633d9226f37b800589483ea2f0f6a065fa14c1b83af108fdae0c713695951"></a>Kruger&#160;</td><td class="fielddoc"><p>Kruger approximation (local, monotonic, non-linear) </p>
</td></tr>
<tr><td class="fieldname"><a id="aeccb633d9226f37b800589483ea2f0f6a82e4e48ee59fde0b536296be56d2365f"></a>Harmonic&#160;</td><td class="fielddoc"><p>Weighted harmonic mean approximation (local, monotonic, non-linear) </p>
</td></tr>
</table>

</div>
</div>
<a id="af3393571fa8a8daa4ee5c06613b26555"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3393571fa8a8daa4ee5c06613b26555">&#9670;&nbsp;</a></span>BoundaryCondition</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555">BoundaryCondition</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="af3393571fa8a8daa4ee5c06613b26555a7922e3c8bf97083083c9261300dcfedf"></a>NotAKnot&#160;</td><td class="fielddoc"><p>Make second(-last) point an inactive knot. </p>
</td></tr>
<tr><td class="fieldname"><a id="af3393571fa8a8daa4ee5c06613b26555aaf8392865aea8f24355012391183d9e9"></a>FirstDerivative&#160;</td><td class="fielddoc"><p>Match value of end-slope. </p>
</td></tr>
<tr><td class="fieldname"><a id="af3393571fa8a8daa4ee5c06613b26555a23de8c854eb282410ba10963837c94b5"></a>SecondDerivative&#160;</td><td class="fielddoc"><p>Match value of second derivative at end. </p>
</td></tr>
<tr><td class="fieldname"><a id="af3393571fa8a8daa4ee5c06613b26555a6db09e3bc054df6f996a45de2ccfeacd"></a>Periodic&#160;</td><td class="fielddoc"><p>Match first and second derivative at either end. </p>
</td></tr>
<tr><td class="fieldname"><a id="af3393571fa8a8daa4ee5c06613b26555a1e1c27164b52b5cdf7df7f110dbb0fd3"></a>Lagrange&#160;</td><td class="fielddoc"><p>Match end-slope to the slope of the cubic that matches the first four data at the respective end </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a4660490e94d17a41507f676a5eb41a15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4660490e94d17a41507f676a5eb41a15">&#9670;&nbsp;</a></span>CubicInterpolation()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_quant_lib_1_1_cubic_interpolation.html">CubicInterpolation</a> </td>
          <td>(</td>
          <td class="paramtype">const I1 &amp;&#160;</td>
          <td class="paramname"><em>xBegin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const I1 &amp;&#160;</td>
          <td class="paramname"><em>xEnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const I2 &amp;&#160;</td>
          <td class="paramname"><em>yBegin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#aeccb633d9226f37b800589483ea2f0f6">CubicInterpolation::DerivativeApprox</a>&#160;</td>
          <td class="paramname"><em>da</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>monotonic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555">CubicInterpolation::BoundaryCondition</a>&#160;</td>
          <td class="paramname"><em>leftCond</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a>&#160;</td>
          <td class="paramname"><em>leftConditionValue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_quant_lib_1_1_cubic_interpolation.html#af3393571fa8a8daa4ee5c06613b26555">CubicInterpolation::BoundaryCondition</a>&#160;</td>
          <td class="paramname"><em>rightCond</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a>&#160;</td>
          <td class="paramname"><em>rightConditionValue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section pre"><dt>Precondition</dt><dd>the \( x \) values must be sorted. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.9.1-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="http://www.doxygen.org/index.html">Doxygen</a>
1.8.20
</small></address>
</body>
</html>