Struct PiecewiseSurvival
pub struct PiecewiseSurvival {
reference_date: NaiveDate,
dates: Vec<NaiveDate>,
taus: Vec<f64>,
log_survival: Vec<f64>,
day_count: DayCountFraction,
}Expand description
A survival curve stored as log-survival at dated pillars — the credit
analogue of the piecewise discount curve, and interchangeable with
IsdaSurvival behind the evaluation trait.
The anchor (τ = 0, ln S = 0) is implicit rather than stored, for the same
reason the discount curve’s is: it is not a free parameter, and storing it
would put a permanently-zero row in every risk ladder. Past the last pillar
the final segment’s constant forward hazard continues, which is what keeps
this family agreeing with IsdaSurvival in the tail.
Fields§
§reference_date: NaiveDate§dates: Vec<NaiveDate>§taus: Vec<f64>§log_survival: Vec<f64>The free parameters: ln S at each pillar.
day_count: DayCountFractionImplementations§
§impl PiecewiseSurvival
impl PiecewiseSurvival
pub fn new(
reference_date: NaiveDate,
pillars: &[(NaiveDate, f64)],
day_count: DayCountFraction,
) -> Result<Self, CurveError>
pub fn new( reference_date: NaiveDate, pillars: &[(NaiveDate, f64)], day_count: DayCountFraction, ) -> Result<Self, CurveError>
A curve from (pillar date, survival probability) pairs.
§Errors
CurveError::Malformed if there are no pillars, if the dates do not
strictly increase from the reference date, or if a survival probability
is outside (0, 1].
pub fn pillar_dates(&self) -> &[NaiveDate]
pub fn pillar_dates(&self) -> &[NaiveDate]
The pillar dates, in order.
pub fn parameters(&self) -> &[f64]
pub fn parameters(&self) -> &[f64]
The free parameters — log survival at each pillar.
pub fn day_count(&self) -> DayCountFraction
pub fn day_count(&self) -> DayCountFraction
The convention the pillars are dated under.
pub fn view<R: Scalar>(&self) -> PiecewiseSurvivalView<'_, R>
pub fn view<R: Scalar>(&self) -> PiecewiseSurvivalView<'_, R>
This curve lifted into mode R.
pub(crate) fn view_with_slice<'a, R: Scalar>(
&'a self,
rest: &mut &'a [R],
) -> PiecewiseSurvivalView<'a, R>
pub(crate) fn view_with_slice<'a, R: Scalar>( &'a self, rest: &mut &'a [R], ) -> PiecewiseSurvivalView<'a, R>
One step of a substituted walk. See
take_params.
pub(crate) fn view_seeding<R: Scalar + Seedable>(
&self,
seed: &mut Option<usize>,
) -> PiecewiseSurvivalView<'_, R>
pub(crate) fn view_seeding<R: Scalar + Seedable>( &self, seed: &mut Option<usize>, ) -> PiecewiseSurvivalView<'_, R>
One step of the seeded walk. See
take_seed.
Trait Implementations§
§impl Clone for PiecewiseSurvival
impl Clone for PiecewiseSurvival
§fn clone(&self) -> PiecewiseSurvival
fn clone(&self) -> PiecewiseSurvival
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for PiecewiseSurvival
impl Debug for PiecewiseSurvival
§impl PartialEq for PiecewiseSurvival
impl PartialEq for PiecewiseSurvival
§fn eq(&self, other: &PiecewiseSurvival) -> bool
fn eq(&self, other: &PiecewiseSurvival) -> bool
self and other values to be equal, and is used by ==.