diff --git a/.travis.yml b/.travis.yml index 5de21f3..d7e87af 100644 --- a/.travis.yml +++ b/.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 diff --git a/src/ops/mul_add.rs b/src/ops/mul_add.rs index 6e43f2f..1e6bfeb 100644 --- a/src/ops/mul_add.rs +++ b/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 { /// 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); } )+ };