aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-07-27 23:46:20 -0700
committerAndrew Kelley <superjoe30@gmail.com>2016-07-27 23:46:20 -0700
commit711e3d71b967961da9bf2ed6a2bd5cce7dfdfb2d (patch)
tree476bd3a6b9a162d354e3cb453ad9846531a9e26c /std
parent1fa0cabf9dd0c2016a60c23bb616f0f39daf1dfd (diff)
downloadzig-711e3d71b967961da9bf2ed6a2bd5cce7dfdfb2d.tar.gz
zig-711e3d71b967961da9bf2ed6a2bd5cce7dfdfb2d.zip
std: add vaporware plans for floating point builtins
Diffstat (limited to 'std')
-rw-r--r--std/rand.zig6
1 files changed, 5 insertions, 1 deletions
diff --git a/std/rand.zig b/std/rand.zig
index bbbe70f7b0..8bd03ecb74 100644
--- a/std/rand.zig
+++ b/std/rand.zig
@@ -77,8 +77,12 @@ pub struct Rand {
/// Get a floating point value in the range 0.0..1.0.
pub fn float(r: &Rand, inline T: type) -> T {
+ // TODO Implement this way instead:
+ // const int = @int_type(false, @sizeof(T) * 8);
+ // const mask = ((1 << @float_mantissa_bit_count(T)) - 1);
+ // const rand_bits = r.rng.scalar(int) & mask;
+ // return @float_compose(T, false, 0, rand_bits) - 1.0
const int_type = @int_type(false, @sizeof(T) * 8);
- // TODO switch statement for constant values
const precision = if (T == f32) {
16777216
} else if (T == f64) {