use std::fmt::Display;
use std::iter::Sum;
use std::ops::{AddAssign, DivAssign, MulAssign, SubAssign};
use faer::traits::{ComplexField, RealField};
use num_traits::float::TotalOrder;
use num_traits::{Float, FromPrimitive, ToPrimitive};
use crate::utils::simd::EdgeSimd;
pub trait EdgeFloat:
Float
+ FromPrimitive
+ ToPrimitive
+ Send
+ Sync
+ Sum
+ AddAssign
+ SubAssign
+ MulAssign
+ DivAssign
+ EdgeSimd
+ ComplexField
+ RealField
+ TotalOrder
+ Display
+ Default
+ 'static
{
}
impl<T> EdgeFloat for T where
T: Float
+ FromPrimitive
+ ToPrimitive
+ Send
+ Sync
+ Sum
+ AddAssign
+ SubAssign
+ MulAssign
+ DivAssign
+ EdgeSimd
+ ComplexField
+ RealField
+ TotalOrder
+ Display
+ Default
+ 'static
{
}