about summary refs log tree commit diff
path: root/src/libcore/num/float.rs
diff options
context:
space:
mode:
authorBrendan Zabarauskas <bjzaba@yahoo.com.au>2013-05-17 12:30:02 +1000
committerBrendan Zabarauskas <bjzaba@yahoo.com.au>2013-05-17 12:30:02 +1000
commit56960817814975eb992a6770deba3b110c23ae90 (patch)
tree1d4063782eb651e8b54fe1c92b7e6a75917b3dc2 /src/libcore/num/float.rs
parentcf0f760560385d59427e2b974f24a328345d829b (diff)
downloadrust-56960817814975eb992a6770deba3b110c23ae90.tar.gz
rust-56960817814975eb992a6770deba3b110c23ae90.zip
Implement sin_cos method for float, f64 and f32
Diffstat (limited to 'src/libcore/num/float.rs')
-rw-r--r--src/libcore/num/float.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libcore/num/float.rs b/src/libcore/num/float.rs
index 8b3c7b1e79e..681aafaab88 100644
--- a/src/libcore/num/float.rs
+++ b/src/libcore/num/float.rs
@@ -530,6 +530,14 @@ impl Trigonometric for float {
     fn atan2(&self, other: float) -> 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 {