1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
pub use blas::c64; use std::{ fmt::Debug, iter::Product, iter::Sum, ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Sub, SubAssign}, }; pub trait Number: Clone + Copy + Debug + Default + PartialEq + Send + Sized + Sync + Add<Output = Self> + AddAssign + Sub<Output = Self> + SubAssign + Mul<Output = Self> + MulAssign + Div + DivAssign + Sum + Product { fn one() -> Self; } impl Number for f64 { fn one() -> Self { 1.0 } } impl Number for c64 { fn one() -> Self { Self::new(1.0, 0.0) } }