QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.38
Loading...
Searching...
No Matches
List of all members
DefaultDensityStructure Class Reference

Default-density term structure. More...

#include <defaultdensitystructure.hpp>

+ Inheritance diagram for DefaultDensityStructure:
+ Collaboration diagram for DefaultDensityStructure:

Public Member Functions

Constructors

See the TermStructure documentation for issues regarding constructors.

 DefaultDensityStructure (const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps={}, const std::vector< Date > &jumpDates={})
 
 DefaultDensityStructure (const Date &referenceDate, const Calendar &cal=Calendar(), const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps={}, const std::vector< Date > &jumpDates={})
 
 DefaultDensityStructure (Natural settlementDays, const Calendar &cal, const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps={}, const std::vector< Date > &jumpDates={})
 
- Public Member Functions inherited from DefaultProbabilityTermStructure
 DefaultProbabilityTermStructure (const DayCounter &dc=DayCounter(), std::vector< Handle< Quote > > jumps={}, const std::vector< Date > &jumpDates={})
 
 DefaultProbabilityTermStructure (const Date &referenceDate, const Calendar &cal=Calendar(), const DayCounter &dc=DayCounter(), std::vector< Handle< Quote > > jumps={}, const std::vector< Date > &jumpDates={})
 
 DefaultProbabilityTermStructure (Natural settlementDays, const Calendar &cal, const DayCounter &dc=DayCounter(), std::vector< Handle< Quote > > jumps={}, const std::vector< Date > &jumpDates={})
 
Probability survivalProbability (const Date &d, bool extrapolate=false) const
 
Probability survivalProbability (Time t, bool extrapolate=false) const
 
Probability defaultProbability (const Date &d, bool extrapolate=false) const
 
Probability defaultProbability (Time t, bool extrapolate=false) const
 
Probability defaultProbability (const Date &, const Date &, bool extrapolate=false) const
 probability of default between two given dates More...
 
Probability defaultProbability (Time, Time, bool extrapo=false) const
 probability of default between two given times More...
 
Real defaultDensity (const Date &d, bool extrapolate=false) const
 
Real defaultDensity (Time t, bool extrapolate=false) const
 
Rate hazardRate (const Date &d, bool extrapolate=false) const
 
Rate hazardRate (Time t, bool extrapolate=false) const
 
const std::vector< Date > & jumpDates () const
 
const std::vector< Time > & jumpTimes () const
 
void update () override
 
- Public Member Functions inherited from TermStructure
 TermStructure (DayCounter dc=DayCounter())
 default constructor More...
 
 TermStructure (const Date &referenceDate, Calendar calendar=Calendar(), DayCounter dc=DayCounter())
 initialize with a fixed reference date More...
 
 TermStructure (Natural settlementDays, Calendar, DayCounter dc=DayCounter())
 calculate the reference date based on the global evaluation date More...
 
 ~TermStructure () override=default
 
virtual DayCounter dayCounter () const
 the day counter used for date/time conversion More...
 
Time timeFromReference (const Date &date) const
 date/time conversion More...
 
virtual Date maxDate () const =0
 the latest date for which the curve can return values More...
 
virtual Time maxTime () const
 the latest time for which the curve can return values More...
 
virtual const Date & referenceDate () const
 the date at which discount = 1.0 and/or variance = 0.0 More...
 
virtual Calendar calendar () const
 the calendar used for reference and/or option date calculation More...
 
virtual Natural settlementDays () const
 the settlementDays used for reference date calculation More...
 
- Public Member Functions inherited from Observer
 Observer ()=default
 
 Observer (const Observer &)
 
Observer & operator= (const Observer &)
 
virtual ~Observer ()
 
std::pair< iterator, bool > registerWith (const ext::shared_ptr< Observable > &)
 
void registerWithObservables (const ext::shared_ptr< Observer > &)
 
Size unregisterWith (const ext::shared_ptr< Observable > &)
 
void unregisterWithAll ()
 
virtual void update ()=0
 
virtual void deepUpdate ()
 
- Public Member Functions inherited from Observable
 Observable ()=default
 
 Observable (const Observable &)
 
Observable & operator= (const Observable &)
 
 Observable (Observable &&)=delete
 
Observable & operator= (Observable &&)=delete
 
virtual ~Observable ()=default
 
void notifyObservers ()
 
- Public Member Functions inherited from Extrapolator
 Extrapolator ()=default
 
virtual ~Extrapolator ()=default
 
void enableExtrapolation (bool b=true)
 enable extrapolation in subsequent calls More...
 
void disableExtrapolation (bool b=true)
 disable extrapolation in subsequent calls More...
 
bool allowsExtrapolation () const
 tells whether extrapolation is enabled More...
 

Protected Member Functions

DefaultProbabilityTermStructure implementation
Probability survivalProbabilityImpl (Time) const override
 survival probability calculation More...
 
- Protected Member Functions inherited from DefaultProbabilityTermStructure
virtual Real defaultDensityImpl (Time) const =0
 default density calculation More...
 
virtual Real hazardRateImpl (Time) const
 hazard rate calculation More...
 
- Protected Member Functions inherited from TermStructure
void checkRange (const Date &d, bool extrapolate) const
 date-range check More...
 
void checkRange (Time t, bool extrapolate) const
 time-range check More...
 

Additional Inherited Members

- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Protected Attributes inherited from TermStructure
bool moving_ = false
 
bool updated_ = true
 
Calendar calendar_
 

Detailed Description

Default-density term structure.

This abstract class acts as an adapter to DefaultProbabilityTermStructure allowing the programmer to implement only the defaultDensityImpl(Time) method in derived classes.

Survival/default probabilities and hazard rates are calculated from default densities.

Definition at line 43 of file defaultdensitystructure.hpp.

Constructor & Destructor Documentation

◆ DefaultDensityStructure() [1/3]

DefaultDensityStructure ( const DayCounter &  dayCounter = DayCounter(),
const std::vector< Handle< Quote > > &  jumps = {},
const std::vector< Date > &  jumpDates = {} 
)

Definition at line 49 of file defaultdensitystructure.cpp.

◆ DefaultDensityStructure() [2/3]

DefaultDensityStructure ( const Date &  referenceDate,
const Calendar &  cal = Calendar(),
const DayCounter &  dayCounter = DayCounter(),
const std::vector< Handle< Quote > > &  jumps = {},
const std::vector< Date > &  jumpDates = {} 
)

Definition at line 55 of file defaultdensitystructure.cpp.

◆ DefaultDensityStructure() [3/3]

DefaultDensityStructure ( Natural  settlementDays,
const Calendar &  cal,
const DayCounter &  dayCounter = DayCounter(),
const std::vector< Handle< Quote > > &  jumps = {},
const std::vector< Date > &  jumpDates = {} 
)

Definition at line 63 of file defaultdensitystructure.cpp.

Member Function Documentation

◆ survivalProbabilityImpl()

Probability survivalProbabilityImpl ( Time  t) const
overrideprotectedvirtual

survival probability calculation

implemented in terms of the default density \( p(t) \) as

\[ S(t) = 1 - \int_0^t p(\tau) d\tau. \]

Warning:
This default implementation uses numerical integration, which might be inefficient and inaccurate. Derived classes should override it if a more efficient implementation is available.

Implements DefaultProbabilityTermStructure.

Reimplemented in InterpolatedDefaultDensityCurve< Interpolator >.

Definition at line 71 of file defaultdensitystructure.cpp.

+ Here is the call graph for this function: