1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
pub trait PowOps {
    type Output;
    fn pow(&self, n: usize) -> Self::Output;
    fn powf(&self, f: f64) -> Self::Output;
}

pub trait TrigOps {
    type Output;
    fn sin(&self) -> Self::Output;
    fn cos(&self) -> Self::Output;
    fn tan(&self) -> Self::Output;
}

pub trait ExpLogOps {
    type Output;
    fn exp(&self) -> Self::Output;
    fn ln(&self) -> Self::Output;
}