24#include <ql/math/integrals/gaussianquadratures.hpp>
25#include <ql/termstructures/credit/hazardratestructure.hpp>
36 remapper(F f,
Time T) : f(
std::move(f)), T(T) {}
39 const Real arg = (x+1.0)*T/2.0;
45 remapper<F> remap(
const F& f,
Time T) {
46 return remapper<F>(f,T);
54 const std::vector<Date>& jumpDates)
62 const std::vector<Date>& jumpDates)
70 const std::vector<Date>& jumpDates)
74 QL_FAIL(
"hazardRateImpl() must be implemented by a class derived from HazardRateStructure");
81 return std::exp(-integral(remap([&](
Time tau){
return hazardRateImpl(tau); }, t)) * t/2.0);
Default probability term structure.
Gauss-Chebyshev integration.
Shared handle to an observable.
Real hazardRateImpl(Time) const override
hazard rate calculation
HazardRateStructure(const DayCounter &dayCounter=DayCounter(), const std::vector< Handle< Quote > > &jumps={}, const std::vector< Date > &jumpDates={})
Probability survivalProbabilityImpl(Time) const override
Real Time
continuous quantity with 1-year units
unsigned QL_INTEGER Natural
positive integer
Real Probability
probability