about summary refs log tree commit diff
path: root/doc/tutorial-tasks.md
diff options
context:
space:
mode:
authorDaniel Micay <danielmicay@gmail.com>2013-09-26 02:26:09 -0400
committerDaniel Micay <danielmicay@gmail.com>2013-10-01 14:54:10 -0400
commitc9d4ad07c4c166d655f11862e03c10100dcb704b (patch)
tree53a506f27ce5d9e192ef540ae3ad4010eba10fee /doc/tutorial-tasks.md
parent24a253778aa26222cae97e3b57f85e5054a39977 (diff)
downloadrust-c9d4ad07c4c166d655f11862e03c10100dcb704b.tar.gz
rust-c9d4ad07c4c166d655f11862e03c10100dcb704b.zip
remove the `float` type
It is simply defined as `f64` across every platform right now.

A use case hasn't been presented for a `float` type defined as the
highest precision floating point type implemented in hardware on the
platform. Performance-wise, using the smallest precision correct for the
use case greatly saves on cache space and allows for fitting more
numbers into SSE/AVX registers.

If there was a use case, this could be implemented as simply a type
alias or a struct thanks to `#[cfg(...)]`.

Closes #6592

The mailing list thread, for reference:

https://mail.mozilla.org/pipermail/rust-dev/2013-July/004632.html
Diffstat (limited to 'doc/tutorial-tasks.md')
-rw-r--r--doc/tutorial-tasks.md16
1 files changed, 8 insertions, 8 deletions
diff --git a/doc/tutorial-tasks.md b/doc/tutorial-tasks.md
index 09d3469871f..dedbc8ae593 100644
--- a/doc/tutorial-tasks.md
+++ b/doc/tutorial-tasks.md
@@ -331,12 +331,12 @@ a single large vector of floats. Each task needs the full vector to perform its
 # use std::rand;
 use extra::arc::Arc;
 
-fn pnorm(nums: &~[float], p: uint) -> float {
-    nums.iter().fold(0.0, |a,b| a+(*b).pow(&(p as float)) ).pow(&(1f / (p as float)))
+fn pnorm(nums: &~[f64], p: uint) -> f64 {
+    nums.iter().fold(0.0, |a,b| a+(*b).pow(&(p as f64)) ).pow(&(1.0 / (p as f64)))
 }
 
 fn main() {
-    let numbers = vec::from_fn(1000000, |_| rand::random::<float>());
+    let numbers = vec::from_fn(1000000, |_| rand::random::<f64>());
     println!("Inf-norm = {}",  *numbers.iter().max().unwrap());
 
     let numbers_arc = Arc::new(numbers);
@@ -346,7 +346,7 @@ fn main() {
         chan.send(numbers_arc.clone());
 
         do spawn {
-            let local_arc : Arc<~[float]> = port.recv();
+            let local_arc : Arc<~[f64]> = port.recv();
             let task_numbers = local_arc.get();
             println!("{}-norm = {}", num, pnorm(task_numbers, num));
         }
@@ -361,7 +361,7 @@ created by the line
 # use extra::arc::Arc;
 # use std::vec;
 # use std::rand;
-# let numbers = vec::from_fn(1000000, |_| rand::random::<float>());
+# let numbers = vec::from_fn(1000000, |_| rand::random::<f64>());
 let numbers_arc=Arc::new(numbers);
 ~~~
 and a clone of it is sent to each task
@@ -369,7 +369,7 @@ and a clone of it is sent to each task
 # use extra::arc::Arc;
 # use std::vec;
 # use std::rand;
-# let numbers=vec::from_fn(1000000, |_| rand::random::<float>());
+# let numbers=vec::from_fn(1000000, |_| rand::random::<f64>());
 # let numbers_arc = Arc::new(numbers);
 # let (port, chan)  = stream();
 chan.send(numbers_arc.clone());
@@ -381,11 +381,11 @@ Each task recovers the underlying data by
 # use extra::arc::Arc;
 # use std::vec;
 # use std::rand;
-# let numbers=vec::from_fn(1000000, |_| rand::random::<float>());
+# let numbers=vec::from_fn(1000000, |_| rand::random::<f64>());
 # let numbers_arc=Arc::new(numbers);
 # let (port, chan)  = stream();
 # chan.send(numbers_arc.clone());
-# let local_arc : Arc<~[float]> = port.recv();
+# let local_arc : Arc<~[f64]> = port.recv();
 let task_numbers = local_arc.get();
 ~~~
 and can use it as if it were local.