use crate::{
MaybeExact, One, Zero,
fraction::{
approximate::Approximate, fraction_enum::FractionEnum, fraction_exact::FractionExact,
fraction_f64::FractionF64,
},
log::LogOf,
log_polynomial::{
log_polynomial_enum::LogPolynomialEnum, log_polynomial_exact::LogPolynomialExact,
log_polynomial_f64::LogPolynomialF64,
},
};
use std::{
fmt::{Debug, Display},
ops::{AddAssign, DivAssign, MulAssign, Neg, SubAssign},
};
pub trait EbiLogPolynomial<T>:
MaybeExact
+ From<T>
+ From<usize>
+ From<u128>
+ From<u64>
+ From<u32>
+ From<u16>
+ From<u8>
+ From<i128>
+ From<i64>
+ From<i32>
+ From<i16>
+ From<i8>
+ LogOf<T>
+ for<'a> LogOf<&'a T>
+ LogOf<usize>
+ LogOf<u64>
+ LogOf<u32>
+ LogOf<u16>
+ LogOf<u8>
+ LogOf<i128>
+ LogOf<i64>
+ LogOf<i32>
+ LogOf<i16>
+ LogOf<i8>
+ for<'a> LogOf<&'a usize>
+ for<'a> LogOf<&'a u64>
+ for<'a> LogOf<&'a u32>
+ for<'a> LogOf<&'a u16>
+ for<'a> LogOf<&'a u8>
+ for<'a> LogOf<&'a i128>
+ for<'a> LogOf<&'a i64>
+ for<'a> LogOf<&'a i32>
+ for<'a> LogOf<&'a i16>
+ for<'a> LogOf<&'a i8>
+ MulAssign<T>
+ for<'a> MulAssign<&'a T>
+ MulAssign<usize>
+ MulAssign<u128>
+ MulAssign<u64>
+ MulAssign<u32>
+ MulAssign<u16>
+ MulAssign<u8>
+ MulAssign<i128>
+ MulAssign<i64>
+ MulAssign<i32>
+ MulAssign<i16>
+ MulAssign<i8>
+ DivAssign<T>
+ for<'a> DivAssign<&'a T>
+ DivAssign<usize>
+ DivAssign<u128>
+ DivAssign<u64>
+ DivAssign<u32>
+ DivAssign<u16>
+ DivAssign<u8>
+ DivAssign<i128>
+ DivAssign<i64>
+ DivAssign<i32>
+ DivAssign<i16>
+ DivAssign<i8>
+ AddAssign
+ for<'a> AddAssign<&'a Self>
+ AddAssign<T>
+ for<'a> AddAssign<&'a T>
+ AddAssign<usize>
+ AddAssign<u128>
+ AddAssign<u64>
+ AddAssign<u32>
+ AddAssign<u16>
+ AddAssign<u8>
+ AddAssign<i128>
+ AddAssign<i64>
+ AddAssign<i32>
+ AddAssign<i16>
+ AddAssign<i8>
+ SubAssign
+ for<'a> SubAssign<&'a Self>
+ SubAssign<T>
+ for<'a> SubAssign<&'a T>
+ SubAssign<usize>
+ SubAssign<u128>
+ SubAssign<u64>
+ SubAssign<u32>
+ SubAssign<u16>
+ SubAssign<u8>
+ SubAssign<i128>
+ SubAssign<i64>
+ SubAssign<i32>
+ SubAssign<i16>
+ SubAssign<i8>
+ Sized
+ Clone
+ Debug
+ Display
+ Eq
+ PartialEq
+ Approximate
+ Zero
+ One
+ Neg
{
}
impl EbiLogPolynomial<FractionEnum> for LogPolynomialEnum {}
impl EbiLogPolynomial<FractionExact> for LogPolynomialExact {}
impl EbiLogPolynomial<FractionF64> for LogPolynomialF64 {}