Implement sin_cos method for float, f64 and f32
This commit is contained in:
parent
cf0f760560
commit
5696081781
4 changed files with 21 additions and 0 deletions
|
@ -414,6 +414,12 @@ impl Trigonometric for f32 {
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
fn atan2(&self, other: f32) -> f32 { atan2(*self, other) }
|
fn atan2(&self, other: f32) -> f32 { atan2(*self, other) }
|
||||||
|
|
||||||
|
/// Simultaneously computes the sine and cosine of the number
|
||||||
|
#[inline(always)]
|
||||||
|
fn sin_cos(&self) -> (f32, f32) {
|
||||||
|
(self.sin(), self.cos())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Exponential for f32 {
|
impl Exponential for f32 {
|
||||||
|
|
|
@ -426,6 +426,12 @@ impl Trigonometric for f64 {
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
fn atan2(&self, other: f64) -> f64 { atan2(*self, other) }
|
fn atan2(&self, other: f64) -> f64 { atan2(*self, other) }
|
||||||
|
|
||||||
|
/// Simultaneously computes the sine and cosine of the number
|
||||||
|
#[inline(always)]
|
||||||
|
fn sin_cos(&self) -> (f64, f64) {
|
||||||
|
(self.sin(), self.cos())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Exponential for f64 {
|
impl Exponential for f64 {
|
||||||
|
|
|
@ -530,6 +530,14 @@ impl Trigonometric for float {
|
||||||
fn atan2(&self, other: float) -> float {
|
fn atan2(&self, other: float) -> float {
|
||||||
(*self as f64).atan2(other as f64) as float
|
(*self as f64).atan2(other as f64) as float
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Simultaneously computes the sine and cosine of the number
|
||||||
|
#[inline(always)]
|
||||||
|
fn sin_cos(&self) -> (float, float) {
|
||||||
|
match (*self as f64).sin_cos() {
|
||||||
|
(s, c) => (s as float, c as float)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Exponential for float {
|
impl Exponential for float {
|
||||||
|
|
|
@ -118,6 +118,7 @@ pub trait Trigonometric {
|
||||||
fn acos(&self) -> Self;
|
fn acos(&self) -> Self;
|
||||||
fn atan(&self) -> Self;
|
fn atan(&self) -> Self;
|
||||||
fn atan2(&self, other: Self) -> Self;
|
fn atan2(&self, other: Self) -> Self;
|
||||||
|
fn sin_cos(&self) -> (Self, Self);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait Exponential {
|
pub trait Exponential {
|
||||||
|
|
Loading…
Reference in a new issue