pub trait LogarithmOps {
fn ln(self) -> Self;
fn log(self, base: Self) -> Self;
fn log2(self) -> Self;
fn log10(self) -> Self;
}
macro_rules! impl_logarithm {
($($t:ty),*) => {
$(impl LogarithmOps for $t {
#[inline] fn ln(self) -> Self { self.ln() }
#[inline] fn log(self, base: Self) -> Self { self.log(base) }
#[inline] fn log2(self) -> Self { self.log2() }
#[inline] fn log10(self) -> Self { self.log10() }
})*
};
}
impl_logarithm!(f32, f64);