DefaultDensityStructure Class Reference

Default-density term structure. More...

`#include <ql/termstructures/credit/defaultdensitystructure.hpp>`

Inheritance diagram for DefaultDensityStructure:
[legend]

## Public Member Functions

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

## Protected Member Functions

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

## Additional Inherited Members

Public Types inherited from Observer
typedef std::set< boost::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Protected Attributes inherited from TermStructure
bool | moving_
bool | updated_
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.

## Member Function Documentation

## survivalProbabilityImpl()

Probability survivalProbabilityImpl | ( | Time |  | ) | const

protected virtual

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 >.