4
4
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
5
5
<meta name="robots" content="none">
6
<title>QuantLib: SurvivalProbabilityStructure Class Reference</title>
6
<title>SurvivalProbabilityStructure Class Reference</title>
7
7
<link rel="stylesheet" href="quantlib.css" type="text/css">
8
8
<link rel="stylesheet" href="print.css" type="text/css" media="print">
9
9
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
60
60
<!--Doxygen-generated content-->
62
<!-- Generated by Doxygen 1.7.3 -->
62
<!-- Generated by Doxygen 1.7.6.1 -->
63
63
<div id="nav-path" class="navpath">
65
65
<li class="navelem"><b>QuantLib</b> </li>
66
66
<li class="navelem"><a class="el" href="class_quant_lib_1_1_survival_probability_structure.html">SurvivalProbabilityStructure</a> </li>
68
70
<div class="header">
69
71
<div class="headertitle">
70
<h1>SurvivalProbabilityStructure Class Reference</h1> </div>
72
<div class="title">SurvivalProbabilityStructure Class Reference</div> </div>
72
74
<div class="contents">
73
75
<!-- doxytag: class="QuantLib::SurvivalProbabilityStructure" --><!-- doxytag: inherits="QuantLib::DefaultProbabilityTermStructure" -->
74
76
<p>Hazard-rate term structure.
75
<a href="#_details">More...</a></p>
77
<a href="class_quant_lib_1_1_survival_probability_structure.html#details">More...</a></p>
77
79
<p><code>#include <ql/termstructures/credit/survivalprobabilitystructure.hpp></code></p>
78
80
<div class="dynheader">
91
93
<tr><td colspan="2"><div class="groupText"><p>See the <a class="el" href="class_quant_lib_1_1_term_structure.html" title="Basic term-structure functionality.">TermStructure</a> documentation for issues regarding constructors. </p>
93
95
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab595f65d804bf2d47b14dbd14116b758"></a><!-- doxytag: member="QuantLib::SurvivalProbabilityStructure::SurvivalProbabilityStructure" ref="ab595f65d804bf2d47b14dbd14116b758" args="(const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >())" -->
94
 </td><td class="memItemRight" valign="bottom"><b>SurvivalProbabilityStructure</b> (const <a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a> &dayCounter=<a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a>(), const std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > > &jumps=std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > >(), const std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> > &jumpDates=std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> >())</td></tr>
96
 </td><td class="memItemRight" valign="bottom"><b>SurvivalProbabilityStructure</b> (const <a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a> &<a class="el" href="class_quant_lib_1_1_term_structure.html#ac147d63df367bbe5282b76b1f98cb9be">dayCounter</a>=<a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a>(), const std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > > &jumps=std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > >(), const std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> > &jumpDates=std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> >())</td></tr>
95
97
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc00d3c3b43cbac49da988431f883024"></a><!-- doxytag: member="QuantLib::SurvivalProbabilityStructure::SurvivalProbabilityStructure" ref="acc00d3c3b43cbac49da988431f883024" args="(const Date &referenceDate, const Calendar &cal=Calendar(), const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >())" -->
96
 </td><td class="memItemRight" valign="bottom"><b>SurvivalProbabilityStructure</b> (const <a class="el" href="class_quant_lib_1_1_date.html">Date</a> &referenceDate, const <a class="el" href="class_quant_lib_1_1_calendar.html">Calendar</a> &cal=<a class="el" href="class_quant_lib_1_1_calendar.html">Calendar</a>(), const <a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a> &dayCounter=<a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a>(), const std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > > &jumps=std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > >(), const std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> > &jumpDates=std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> >())</td></tr>
98
 </td><td class="memItemRight" valign="bottom"><b>SurvivalProbabilityStructure</b> (const <a class="el" href="class_quant_lib_1_1_date.html">Date</a> &<a class="el" href="class_quant_lib_1_1_term_structure.html#aa9ae6cc6009ac64d4f265065eab08be0">referenceDate</a>, const <a class="el" href="class_quant_lib_1_1_calendar.html">Calendar</a> &cal=<a class="el" href="class_quant_lib_1_1_calendar.html">Calendar</a>(), const <a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a> &<a class="el" href="class_quant_lib_1_1_term_structure.html#ac147d63df367bbe5282b76b1f98cb9be">dayCounter</a>=<a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a>(), const std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > > &jumps=std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > >(), const std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> > &jumpDates=std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> >())</td></tr>
97
99
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a635efc6d6d8cd153ff4d53b1f769825b"></a><!-- doxytag: member="QuantLib::SurvivalProbabilityStructure::SurvivalProbabilityStructure" ref="a635efc6d6d8cd153ff4d53b1f769825b" args="(Natural settlementDays, const Calendar &cal, const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps=std::vector< Handle< Quote > >(), const std::vector< Date > &jumpDates=std::vector< Date >())" -->
98
 </td><td class="memItemRight" valign="bottom"><b>SurvivalProbabilityStructure</b> (<a class="el" href="group__types.html#ga7e529c39c477ba1f5a22264d93e8457a">Natural</a> settlementDays, const <a class="el" href="class_quant_lib_1_1_calendar.html">Calendar</a> &cal, const <a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a> &dayCounter=<a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a>(), const std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > > &jumps=std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > >(), const std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> > &jumpDates=std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> >())</td></tr>
100
 </td><td class="memItemRight" valign="bottom"><b>SurvivalProbabilityStructure</b> (<a class="el" href="group__types.html#ga7e529c39c477ba1f5a22264d93e8457a">Natural</a> <a class="el" href="class_quant_lib_1_1_term_structure.html#ab6506da60fec85c6f146f1b43116de70">settlementDays</a>, const <a class="el" href="class_quant_lib_1_1_calendar.html">Calendar</a> &cal, const <a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a> &<a class="el" href="class_quant_lib_1_1_term_structure.html#ac147d63df367bbe5282b76b1f98cb9be">dayCounter</a>=<a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a>(), const std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > > &jumps=std::vector< <a class="el" href="class_quant_lib_1_1_handle.html">Handle</a>< <a class="el" href="class_quant_lib_1_1_quote.html">Quote</a> > >(), const std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> > &jumpDates=std::vector< <a class="el" href="class_quant_lib_1_1_date.html">Date</a> >())</td></tr>
99
101
<tr><td colspan="2"><h2><a name="pro-methods"></a>
100
102
Protected Member Functions</h2></td></tr>
101
103
<tr><td colspan="2"><div class="groupHeader">DefaultProbabilityTermStructure implementation</div></td></tr>
102
104
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga4bdf4bfe76b9ffa6fa64c47d8bfa0c78">Real</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_survival_probability_structure.html#aacf490703e42933ebc53ef281a4a38fb">defaultDensityImpl</a> (<a class="el" href="group__types.html#ga14fb8fca43a68f4168654e1f9f7e22f7">Time</a>) const </td></tr>
103
105
<tr><td class="mdescLeft"> </td><td class="mdescRight">instantaneous default density at a given time <a href="#aacf490703e42933ebc53ef281a4a38fb"></a><br/></td></tr>
105
<hr/><a name="_details"></a><h2>Detailed Description</h2>
107
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
106
108
<div class="textblock"><p>Hazard-rate term structure. </p>
107
109
<p>This abstract class acts as an adapter to <a class="el" href="class_quant_lib_1_1_default_probability_term_structure.html" title="Default probability term structure.">DefaultProbabilityTermStructure</a> allowing the programmer to implement only the <code>survivalProbabilityImpl(Time)</code> method in derived classes.</p>
108
110
<p>Hazard rates and default densities are calculated from survival probabilities. </p>
123
125
<div class="memdoc">
125
127
<p>instantaneous default density at a given time </p>
126
<p>implemented in terms of the survival probability <img class="formulaInl" alt="$ S(t) $" src="form_366.png"/> as <img class="formulaInl" alt="$ p(t) = -\frac{d}{dt} S(t). $" src="form_367.png"/></p>
127
<dl class="caveats"><dt><b><a class="el" href="caveats.html#_caveats000103">Warning:</a></b></dt><dd>This implementation uses numerical differentiation, which might be inefficient and inaccurate. Derived classes should override it if a more efficient implementation is available. </dd></dl>
128
<p>implemented in terms of the survival probability <img class="formulaInl" alt="$ S(t) $" src="form_371.png"/> as <img class="formulaInl" alt="$ p(t) = -\frac{d}{dt} S(t). $" src="form_372.png"/></p>
129
<dl class="caveats"><dt><b><a class="el" href="caveats.html#_caveats000111">Warning:</a></b></dt><dd>This implementation uses numerical differentiation, which might be inefficient and inaccurate. Derived classes should override it if a more efficient implementation is available. </dd></dl>
129
131
<p>Implements <a class="el" href="class_quant_lib_1_1_default_probability_term_structure.html#a6fa52b63cbf5503d39b7ce7cb66b741e">DefaultProbabilityTermStructure</a>.</p>