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}