QuantLib
: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
ql
math
interpolations
chebyshevinterpolation.hpp
Go to the documentation of this file.
1
/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3
/*
4
Copyright (C) 2021 Klaus Spanderen
5
6
This file is part of QuantLib, a free-software/open-source library
7
for financial quantitative analysts and developers - http://quantlib.org/
8
9
QuantLib is free software: you can redistribute it and/or modify it
10
under the terms of the QuantLib license. You should have received a
11
copy of the license along with this program; if not, please email
12
<quantlib-dev@lists.sf.net>. The license is also available online at
13
<http://quantlib.org/license.shtml>.
14
15
This program is distributed in the hope that it will be useful, but WITHOUT
16
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17
FOR A PARTICULAR PURPOSE. See the license for more details.
18
*/
19
20
/*! \file chebyshevinterpolation.hpp
21
\brief chebyshev interpolation between discrete Chebyshev nodes
22
*/
23
24
#ifndef quantlib_chebyshev_interpolation_hpp
25
#define quantlib_chebyshev_interpolation_hpp
26
27
#include <
ql/functional.hpp
>
28
#include <
ql/math/array.hpp
>
29
#include <
ql/math/interpolation.hpp
>
30
31
32
namespace
QuantLib
{
33
class
LagrangeInterpolation;
34
35
/*! References:
36
S.A. Sarra: Chebyshev Interpolation: An Interactive Tour,
37
https://www.maa.org/sites/default/files/images/upload_library/4/vol6/Sarra/Chebyshev.html
38
*/
39
40
class
ChebyshevInterpolation
:
public
Interpolation
{
41
public
:
42
enum
PointsType
{
FirstKind
,
SecondKind
};
43
44
explicit
ChebyshevInterpolation
(
45
const
Array
&
y
,
PointsType
pointsType =
SecondKind
);
46
ChebyshevInterpolation
(
47
Size
n
,
const
ext::function<
Real
(
Real
)>&
f
,
48
PointsType
pointsType =
SecondKind
);
49
50
void
updateY
(
const
Array
&
y
);
51
52
Array
nodes
()
const
;
53
static
Array
nodes
(
Size
n
,
PointsType
pointsType);
54
55
private
:
56
const
Array
x_
;
57
Array
y_
;
58
ext::shared_ptr<LagrangeInterpolation>
lagrangeInterp_
;
59
};
60
}
61
62
#endif
y
Real y
Definition:
andreasenhugevolatilityinterpl.cpp:46
n
Size n
Definition:
andreasenhugevolatilityinterpl.cpp:47
array.hpp
1-D array used in linear algebra.
QuantLib::Array
1-D array used in linear algebra.
Definition:
array.hpp:52
QuantLib::ChebyshevInterpolation
Definition:
chebyshevinterpolation.hpp:40
QuantLib::ChebyshevInterpolation::y_
Array y_
Definition:
chebyshevinterpolation.hpp:57
QuantLib::ChebyshevInterpolation::lagrangeInterp_
ext::shared_ptr< LagrangeInterpolation > lagrangeInterp_
Definition:
chebyshevinterpolation.hpp:58
QuantLib::ChebyshevInterpolation::PointsType
PointsType
Definition:
chebyshevinterpolation.hpp:42
QuantLib::ChebyshevInterpolation::SecondKind
@ SecondKind
Definition:
chebyshevinterpolation.hpp:42
QuantLib::ChebyshevInterpolation::FirstKind
@ FirstKind
Definition:
chebyshevinterpolation.hpp:42
QuantLib::ChebyshevInterpolation::x_
const Array x_
Definition:
chebyshevinterpolation.hpp:56
QuantLib::ChebyshevInterpolation::updateY
void updateY(const Array &y)
Definition:
chebyshevinterpolation.cpp:76
QuantLib::ChebyshevInterpolation::nodes
Array nodes() const
Definition:
chebyshevinterpolation.cpp:54
QuantLib::Interpolation
base class for 1-D interpolations.
Definition:
interpolation.hpp:55
f
F f
Definition:
defaultdensitystructure.cpp:32
functional.hpp
Maps function, bind and cref to either the boost or std implementation.
QuantLib::Real
QL_REAL Real
real number
Definition:
types.hpp:50
QuantLib::Size
std::size_t Size
size of a container
Definition:
types.hpp:58
interpolation.hpp
base class for 1-D interpolations
QuantLib
Definition:
any.hpp:35
Generated by
Doxygen
1.9.5