aboutsummaryrefslogtreecommitdiff
path: root/src/math/rintf.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/rintf.rs')
-rw-r--r--src/math/rintf.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/math/rintf.rs b/src/math/rintf.rs
index d427793..7a7da61 100644
--- a/src/math/rintf.rs
+++ b/src/math/rintf.rs
@@ -8,9 +8,19 @@ pub fn rintf(x: f32) -> f32 {
x
} else {
let ans = if is_positive {
- x + one_over_e - one_over_e
+ #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))]
+ let x = force_eval!(x);
+ let xplusoneovere = x + one_over_e;
+ #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))]
+ let xplusoneovere = force_eval!(xplusoneovere);
+ xplusoneovere - one_over_e
} else {
- x - one_over_e + one_over_e
+ #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))]
+ let x = force_eval!(x);
+ let xminusoneovere = x - one_over_e;
+ #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))]
+ let xminusoneovere = force_eval!(xminusoneovere);
+ xminusoneovere + one_over_e
};
if ans == 0.0 {