pub trait Pow {
fn exp(&self) -> Self;
fn exp2(&self) -> Self;
fn exp_m1(&self) -> Self;
fn ln(&self) -> Self;
fn ln_1p(&self) -> Self;
fn log(&self, base: &Self) -> Self;
fn log2(&self) -> Self;
fn log10(&self) -> Self;
fn pow(&self, exp: &Self) -> Self;
}
fn exp(&self) -> Self
use number_traits::{ApproxEq, Pow};
assert_eq!(Pow::exp(&2), 7);
assert!(Pow::exp(&2.0).approx_eq(&7.38905609893065));
fn exp2(&self) -> Self
use number_traits::{ApproxEq, Pow};
assert_eq!(Pow::exp2(&2), 4);
assert!(Pow::exp2(&2.0).approx_eq(&4.0));
fn exp_m1(&self) -> Self
use number_traits::{ApproxEq, Pow};
assert_eq!(Pow::exp_m1(&2), 6);
assert!(Pow::exp_m1(&2.0).approx_eq(&6.38905609893065));
fn ln(&self) -> Self
use number_traits::{ApproxEq, Pow};
assert_eq!(Pow::ln(&2), 0);
assert!(Pow::ln(&2.0).approx_eq(&0.6931471805599453));
fn ln_1p(&self) -> Self
use number_traits::{ApproxEq, Pow};
assert_eq!(Pow::ln_1p(&2), 1);
assert!(Pow::ln_1p(&2.0).approx_eq(&1.0986122886681096));
fn log(&self, base: &Self) -> Self
use number_traits::{ApproxEq, Pow};
assert_eq!(Pow::log(&2, &10), 0);
assert!(Pow::log(&2.0, &10.0).approx_eq(&0.30102999566398114));
fn log2(&self) -> Self
use number_traits::{ApproxEq, Pow};
assert_eq!(Pow::log2(&2), 1);
assert!(Pow::log2(&2.0).approx_eq(&1.0));
fn log10(&self) -> Self
use number_traits::{ApproxEq, Pow};
assert_eq!(Pow::log10(&2), 0);
assert!(Pow::log10(&2.0).approx_eq(&0.30102999566398114));
fn pow(&self, exp: &Self) -> Self
use number_traits::Pow;
assert_eq!(Pow::pow(&2, &2), 4);
assert_eq!(Pow::pow(&2.0, &2.0), 4.0);
impl Pow for f32
impl Pow for f64
impl Pow for u8
impl Pow for u16
impl Pow for i8
impl Pow for i16
impl Pow for u32
impl Pow for u64
impl Pow for u128
impl Pow for i32
impl Pow for i64
impl Pow for i128
impl Pow for usize
impl Pow for isize