diff options
Diffstat (limited to 'src/num_traits.rs')
-rw-r--r-- | src/num_traits.rs | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/num_traits.rs b/src/num_traits.rs new file mode 100644 index 0000000..3e18a4b --- /dev/null +++ b/src/num_traits.rs @@ -0,0 +1,80 @@ +pub trait Trig<T> { + fn sin(self) -> Self; + fn cos(self) -> Self; + fn tan(self) -> Self; + + fn asin(self) -> Self; + fn acos(self) -> Self; + fn atan2(self, other: Self) -> Self; +} + +impl Trig<f32> for f32 { + fn sin(self) -> Self { + self.sin() + } + fn cos(self) -> Self { + self.cos() + } + fn tan(self) -> Self { + self.tan() + } + fn asin(self) -> Self { + self.asin() + } + fn acos(self) -> Self { + self.acos() + } + fn atan2(self, other: Self) -> Self { + self.atan2(other) + } +} +impl Trig<f64> for f64 { + fn sin(self) -> Self { + self.sin() + } + fn cos(self) -> Self { + self.cos() + } + fn tan(self) -> Self { + self.tan() + } + fn asin(self) -> Self { + self.asin() + } + fn acos(self) -> Self { + self.acos() + } + fn atan2(self, other: Self) -> Self { + self.atan2(other) + } +} + + +pub trait Pow<T> { + fn powi(self, n: i32) -> Self; + fn powf(self, n: T) -> Self; + fn sqrt(self) -> Self; +} + +impl Pow<f32> for f32 { + fn powi(self, n: i32) -> Self { + self.powi(n) + } + fn powf(self, n: Self) -> Self { + self.powf(n) + } + fn sqrt(self) -> Self { + self.sqrt() + } +} +impl Pow<f64> for f64 { + fn powi(self, n: i32) -> Self { + self.powi(n) + } + fn powf(self, n: Self) -> Self { + self.powf(n) + } + fn sqrt(self) -> Self { + self.sqrt() + } +} |