cubic_splines/
zero.rs

1use std::ops;
2
3use super::CubicPoly;
4
5pub trait Zero {
6    fn zero() -> Self;
7}
8
9impl Zero for f64 {
10    fn zero() -> f64 {
11        0.0
12    }
13}
14
15impl<T> Zero for CubicPoly<T>
16where
17    T: ops::Add<T, Output = T>
18        + ops::Sub<T, Output = T>
19        + ops::AddAssign<T>
20        + ops::SubAssign<T>
21        + ops::Mul<f64, Output = T>
22        + Zero
23        + Copy,
24{
25    fn zero() -> CubicPoly<T> {
26        CubicPoly::new(T::zero(), T::zero(), T::zero(), T::zero())
27    }
28}