浏览代码

Merge #127

127: Relax EPSILON comparisons in mul_add tests r=cuviper a=cuviper

Closes #124.

Co-authored-by: Josh Stone <cuviper@gmail.com>
bors[bot] 5 年之前
父节点
当前提交
5b9f6e4c47
共有 2 个文件被更改,包括 14 次插入2 次删除
  1. 12 0
      .travis.yml
  2. 2 2
      src/ops/mul_add.rs

+ 12 - 0
.travis.yml

@@ -14,6 +14,18 @@ script:
   - ./ci/test_full.sh
 matrix:
   include:
+    # i586 presents floating point challenges for lack of SSE/SSE2
+    - name: "i586"
+      rust: stable
+      env: TARGET=i586-unknown-linux-gnu
+      addons:
+        apt:
+          packages:
+            - gcc-multilib
+      before_script:
+        - rustup target add $TARGET
+      script:
+        - cargo test --verbose --target $TARGET --all-features
     # try a target that doesn't have std at all
     - name: "no_std"
       rust: stable

+ 2 - 2
src/ops/mul_add.rs

@@ -18,7 +18,7 @@
 /// // 100.0
 /// let abs_difference = (m.mul_add(x, b) - (m*x + b)).abs();
 ///
-/// assert!(abs_difference <= f32::EPSILON);
+/// assert!(abs_difference <= 100.0 * f32::EPSILON);
 /// ```
 pub trait MulAdd<A = Self, B = Self> {
     /// The resulting type after applying the fused multiply-add.
@@ -140,7 +140,7 @@ mod tests {
 
                         let abs_difference = (MulAdd::mul_add(m, x, b) - (m*x + b)).abs();
 
-                        assert!(abs_difference <= $t::EPSILON);
+                        assert!(abs_difference <= 46.4 * $t::EPSILON);
                     }
                 )+
             };