Average Error: 0.1 → 0.1
Time: 50.9s
Precision: 64
\[\frac{841}{108} \cdot x + \frac{4}{29}\]
\[\mathsf{fma}\left(x, \frac{841}{108}, \frac{4}{29}\right)\]
\frac{841}{108} \cdot x + \frac{4}{29}
\mathsf{fma}\left(x, \frac{841}{108}, \frac{4}{29}\right)
double f(double x) {
        double r13527968 = 841.0;
        double r13527969 = 108.0;
        double r13527970 = r13527968 / r13527969;
        double r13527971 = x;
        double r13527972 = r13527970 * r13527971;
        double r13527973 = 4.0;
        double r13527974 = 29.0;
        double r13527975 = r13527973 / r13527974;
        double r13527976 = r13527972 + r13527975;
        return r13527976;
}

double f(double x) {
        double r13527977 = x;
        double r13527978 = 841.0;
        double r13527979 = 108.0;
        double r13527980 = r13527978 / r13527979;
        double r13527981 = 4.0;
        double r13527982 = 29.0;
        double r13527983 = r13527981 / r13527982;
        double r13527984 = fma(r13527977, r13527980, r13527983);
        return r13527984;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.1

    \[\frac{841}{108} \cdot x + \frac{4}{29}\]
  2. Simplified0.1

    \[\leadsto \color{blue}{\mathsf{fma}\left(x, \frac{841}{108}, \frac{4}{29}\right)}\]
  3. Final simplification0.1

    \[\leadsto \mathsf{fma}\left(x, \frac{841}{108}, \frac{4}{29}\right)\]

Reproduce

herbie shell --seed 2019200 +o rules:numerics
(FPCore (x)
  :name "Data.Colour.CIE:cieLABView from colour-2.3.3, A"
  (+ (* (/ 841.0 108.0) x) (/ 4.0 29.0)))