mod math_traits;
pub use math_traits::*;
mod complex_traits;
pub use complex_traits::*;
pub trait MixedCeil
{
fn mixed_ceil(&self) -> Self;
}
pub trait MixedFloor
{
fn mixed_floor(&self) -> Self;
}
pub trait MixedNumConversion<T> {
fn mixed_from_num( number:T ) -> Self;
fn mixed_to_num( &self ) -> T;
}
pub trait MixedZero
{
fn mixed_zero() -> Self;
}
pub trait MixedOne
{
fn mixed_one() -> Self;
}
pub trait MixedPi
{
fn mixed_pi() -> Self;
fn mixed_tau() -> Self;
}
pub trait MixedConsts
where Self: MixedPi + MixedZero + MixedOne
{
}
pub trait MixedNum
where Self: core::cmp::PartialOrd
+ core::marker::Sized
+ Copy
+ Clone
{
}
pub trait MixedReal
where Self: MixedNum
+ MixedNumConversion<u32> + MixedNumConversion<u64>
+ MixedNumConversion<i32> + MixedNumConversion<i64>
+ MixedNumConversion<f32> + MixedNumConversion<f64>
{
fn mixed_max_value() -> Self;
fn mixed_min_value() -> Self;
fn mixed_sign( &self ) -> Self;
fn mixed_is_positive( &self ) -> bool;
fn mixed_is_negative( &self ) -> bool;
}
pub trait MixedComplex
{
}
pub trait MixedNumSigned
where Self: core::ops::Neg<Output = Self>
{
}