QuantLib
: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
ql
methods
finitedifferences
utilities
riskneutraldensitycalculator.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) 2015 Johannes Göttker-Schnetmann
5
Copyright (C) 2015 Klaus Spanderen
6
7
This file is part of QuantLib, a free-software/open-source library
8
for financial quantitative analysts and developers - http://quantlib.org/
9
10
QuantLib is free software: you can redistribute it and/or modify it
11
under the terms of the QuantLib license. You should have received a
12
copy of the license along with this program; if not, please email
13
<quantlib-dev@lists.sf.net>. The license is also available online at
14
<http://quantlib.org/license.shtml>.
15
16
This program is distributed in the hope that it will be useful, but WITHOUT
17
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18
FOR A PARTICULAR PURPOSE. See the license for more details.
19
*/
20
21
/*! \file riskneutraldensitycalculator.hpp
22
\brief interface for a single asset risk neutral terminal density calculation
23
*/
24
25
#ifndef quantlib_risk_neutral_density_calculator_hpp
26
#define quantlib_risk_neutral_density_calculator_hpp
27
28
#include <
ql/types.hpp
>
29
30
namespace
QuantLib
{
31
class
RiskNeutralDensityCalculator
{
32
public
:
33
virtual
Real
pdf
(
Real
x,
Time
t
)
const
= 0;
34
virtual
Real
cdf
(
Real
x,
Time
t
)
const
= 0;
35
virtual
Real
invcdf
(
Real
p,
Time
t
)
const
= 0;
36
37
virtual
~RiskNeutralDensityCalculator
() =
default
;
38
39
protected
:
40
class
InvCDFHelper
{
41
public
:
42
InvCDFHelper
(
const
RiskNeutralDensityCalculator
* calculator,
43
Real
guess,
Real
accuracy,
Size
maxEvaluations,
44
Real
stepSize=0.01);
45
46
Real
inverseCDF
(
Real
p,
Time
t
)
const
;
47
private
:
48
const
RiskNeutralDensityCalculator
*
const
calculator_
;
49
const
Real
guess_
;
50
const
Real
accuracy_
;
51
const
Size
maxEvaluations_
;
52
const
Real
stepSize_
;
53
};
54
};
55
}
56
57
#endif
QuantLib::RiskNeutralDensityCalculator::InvCDFHelper
Definition:
riskneutraldensitycalculator.hpp:40
QuantLib::RiskNeutralDensityCalculator::InvCDFHelper::maxEvaluations_
const Size maxEvaluations_
Definition:
riskneutraldensitycalculator.hpp:51
QuantLib::RiskNeutralDensityCalculator::InvCDFHelper::stepSize_
const Real stepSize_
Definition:
riskneutraldensitycalculator.hpp:52
QuantLib::RiskNeutralDensityCalculator::InvCDFHelper::inverseCDF
Real inverseCDF(Real p, Time t) const
Definition:
riskneutraldensitycalculator.cpp:36
QuantLib::RiskNeutralDensityCalculator::InvCDFHelper::calculator_
const RiskNeutralDensityCalculator *const calculator_
Definition:
riskneutraldensitycalculator.hpp:48
QuantLib::RiskNeutralDensityCalculator::InvCDFHelper::guess_
const Real guess_
Definition:
riskneutraldensitycalculator.hpp:49
QuantLib::RiskNeutralDensityCalculator::InvCDFHelper::accuracy_
const Real accuracy_
Definition:
riskneutraldensitycalculator.hpp:50
QuantLib::RiskNeutralDensityCalculator
Definition:
riskneutraldensitycalculator.hpp:31
QuantLib::RiskNeutralDensityCalculator::~RiskNeutralDensityCalculator
virtual ~RiskNeutralDensityCalculator()=default
QuantLib::RiskNeutralDensityCalculator::pdf
virtual Real pdf(Real x, Time t) const =0
QuantLib::RiskNeutralDensityCalculator::cdf
virtual Real cdf(Real x, Time t) const =0
QuantLib::RiskNeutralDensityCalculator::invcdf
virtual Real invcdf(Real p, Time t) const =0
t
const DefaultType & t
Definition:
defaultprobabilitykey.cpp:39
QuantLib::Time
Real Time
continuous quantity with 1-year units
Definition:
types.hpp:62
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
QuantLib
Definition:
any.hpp:35
types.hpp
Custom types.
Generated by
Doxygen
1.9.5