Skip to main content

PyInterpolation

Struct PyInterpolation 

pub struct PyInterpolation {
    pub(crate) inner: Interpolation,
}
Expand description

The scheme a discount curve reads between its pillars, as a value that carries its parameters: one member per parameter-free scheme, and tension_spline(sigma) / clamped_cubic(left, right) for the two that take them. A string code is accepted beside it wherever a scheme is named.

Fields§

§inner: Interpolation

Implementations§

§

impl PyInterpolation

pub(crate) fn member(self) -> Option<&'static str>

The member’s spelling, for a scheme a member names.

§

impl PyInterpolation

pub(crate) fn new(code: &str) -> PyResult<Self>

A parameter-free scheme from its code. The two schemes that carry parameters are built by tension_spline and clamped_cubic.

pub(crate) fn tension_spline(sigma: f64) -> Self

A tension spline with tension sigma.

pub(crate) fn clamped_cubic(left: f64, right: f64) -> Self

A clamped cubic with the end slopes left and right.

pub(crate) fn anchored_linear_zero(anchor: f64) -> Self

Linear in the zero rate, from the continuously compounded rate anchor at the reference date (on ACT/365 fixed time).

pub(crate) fn code(&self) -> &'static str

The scheme’s code, as DiscountCurve.interpolation() reads it back.

pub(crate) fn read_log_df( &self, taus: Vec<f64>, ys: Vec<f64>, tau: f64, ) -> PyResult<f64>

The log discount factor this scheme reads at tau from knots at taus (year fractions, positive and strictly increasing) with log discount factors ys, the anchor (0, 0) implicit and the forward held flat past the last knot — what a DiscountCurve under this scheme reads. Malformed knots raise ValueError naming the defect.

pub(crate) fn __str__(&self) -> &'static str

pub(crate) fn __repr__(&self) -> String

pub(crate) fn log_linear() -> Self

pub(crate) fn backward_flat() -> Self

pub(crate) fn forward_flat() -> Self

pub(crate) fn linear_zero() -> Self

pub(crate) fn natural_cubic() -> Self

pub(crate) fn not_a_knot_cubic() -> Self

pub(crate) fn monotone_convex() -> Self

pub(crate) fn monotone_cubic() -> Self

pub(crate) fn akima() -> Self

pub(crate) fn monotonic_natural_cubic() -> Self

pub(crate) fn kruger_zero() -> Self

pub(crate) fn kruger() -> Self

Trait Implementations§

§

impl Clone for PyInterpolation

§

fn clone(&self) -> PyInterpolation

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Copy for PyInterpolation

§

impl Debug for PyInterpolation

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
§

impl DerefToPyAny for PyInterpolation

§

impl IntoPy<Py<PyAny>> for PyInterpolation

§

fn into_py(self, py: Python<'_>) -> PyObject

Performs the conversion.
§

impl PartialEq for PyInterpolation

§

fn eq(&self, other: &PyInterpolation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PyClass for PyInterpolation

§

type Frozen = True

Whether the pyclass is frozen. Read more
§

impl PyClassImpl for PyInterpolation

§

const IS_BASETYPE: bool = false

#[pyclass(subclass)]
§

const IS_SUBCLASS: bool = false

#[pyclass(extends=…)]
§

const IS_MAPPING: bool = false

#[pyclass(mapping)]
§

const IS_SEQUENCE: bool = false

#[pyclass(sequence)]
§

type BaseType = PyAny

Base class
§

type ThreadChecker = SendablePyClass<PyInterpolation>

This handles following two situations: Read more
§

type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::ImmutableChild

Immutable or mutable
§

type Dict = PyClassDummySlot

Specify this class has #[pyclass(dict)] or not.
§

type WeakRef = PyClassDummySlot

Specify this class has #[pyclass(weakref)] or not.
§

type BaseNativeType = PyAny

The closest native ancestor. This is PyAny by default, and when you declare #[pyclass(extends=PyDict)], it’s PyDict.
§

fn items_iter() -> PyClassItemsIter

§

fn doc(py: Python<'_>) -> PyResult<&'static CStr>

Rendered class doc
§

fn lazy_type_object() -> &'static LazyTypeObject<Self>

§

fn dict_offset() -> Option<isize>

§

fn weaklist_offset() -> Option<isize>

§

impl PyClassNewTextSignature<PyInterpolation> for PyClassImplCollector<PyInterpolation>

§

fn new_text_signature(self) -> Option<&'static str>

§

impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a PyInterpolation

§

type Holder = Option<PyRef<'py, PyInterpolation>>

§

fn extract( obj: &'a Bound<'py, PyAny>, holder: &'a mut Self::Holder, ) -> PyResult<Self>

§

impl PyMethods<PyInterpolation> for PyClassImplCollector<PyInterpolation>

§

fn py_methods(self) -> &'static PyClassItems

§

impl PyTypeInfo for PyInterpolation

§

const NAME: &'static str = "Interpolation"

Class name.
§

const MODULE: Option<&'static str>

Module name, if any.
§

fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
§

fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
§

fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type or a subclass of this type.
§

fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.
§

impl StructuralPartialEq for PyInterpolation

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromPyObject<'_> for T
where T: PyClass + Clone,

§

fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>

Extracts Self from the bound smart pointer obj. Read more
§

impl<'py, T> FromPyObjectBound<'_, 'py> for T
where T: FromPyObject<'py>,

§

fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>

Extracts Self from the bound smart pointer obj. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PyErrArguments for T
where T: IntoPy<Py<PyAny>> + Send + Sync,

§

fn arguments(self, py: Python<'_>) -> Py<PyAny>

Arguments for exception
§

impl<T> PyTypeCheck for T
where T: PyTypeInfo,

§

const NAME: &'static str = <T as PyTypeInfo>::NAME

Name of self. This is used in error messages, for example.
§

fn type_check(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of Self, which may include a subtype. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Ungil for T
where T: Send,