aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/velocity_constraint_element.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2021-06-02 17:26:47 +0200
committerGitHub <noreply@github.com>2021-06-02 17:26:47 +0200
commit8a3103a35b2ee5773dda6bb92870d9bfadc6ba70 (patch)
tree91f32796670d519cc1b60a1afdfc0c3701513b07 /src/dynamics/solver/velocity_constraint_element.rs
parentd3d998e91e39e64b9bdd9060ba7904218fd8cfbe (diff)
parent6356dca1d5a753768bbb479aa9491805223e1c60 (diff)
downloadrapier-8a3103a35b2ee5773dda6bb92870d9bfadc6ba70.tar.gz
rapier-8a3103a35b2ee5773dda6bb92870d9bfadc6ba70.tar.bz2
rapier-8a3103a35b2ee5773dda6bb92870d9bfadc6ba70.zip
Merge pull request #195 from tpdickso/ungenerate-nans
Add feature flag to disable floating point exceptions in unexceptional code
Diffstat (limited to 'src/dynamics/solver/velocity_constraint_element.rs')
-rw-r--r--src/dynamics/solver/velocity_constraint_element.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dynamics/solver/velocity_constraint_element.rs b/src/dynamics/solver/velocity_constraint_element.rs
index 1324c35..d1ad6ac 100644
--- a/src/dynamics/solver/velocity_constraint_element.rs
+++ b/src/dynamics/solver/velocity_constraint_element.rs
@@ -99,7 +99,13 @@ impl<N: SimdRealField> VelocityConstraintTangentPart<N> {
self.impulse[0] - self.r[0] * dimpulse_0,
self.impulse[1] - self.r[1] * dimpulse_1,
);
- let new_impulse = new_impulse.simd_cap_magnitude(limit);
+ let new_impulse = {
+ let _disable_fe_except =
+ crate::utils::DisableFloatingPointExceptionsFlags::
+ disable_floating_point_exceptions();
+ new_impulse.simd_cap_magnitude(limit)
+ };
+
let dlambda = new_impulse - self.impulse;
self.impulse = new_impulse;