Average Error: 29.2 → 29.4
Time: 7.3s
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
\[\left(\left(\left(\left(\left(\mathsf{fma}\left(x, y, z\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y} + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\left(\left(\left(\left(\left(\mathsf{fma}\left(x, y, z\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y} + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r55412 = x;
        double r55413 = y;
        double r55414 = r55412 * r55413;
        double r55415 = z;
        double r55416 = r55414 + r55415;
        double r55417 = r55416 * r55413;
        double r55418 = 27464.7644705;
        double r55419 = r55417 + r55418;
        double r55420 = r55419 * r55413;
        double r55421 = 230661.510616;
        double r55422 = r55420 + r55421;
        double r55423 = r55422 * r55413;
        double r55424 = t;
        double r55425 = r55423 + r55424;
        double r55426 = a;
        double r55427 = r55413 + r55426;
        double r55428 = r55427 * r55413;
        double r55429 = b;
        double r55430 = r55428 + r55429;
        double r55431 = r55430 * r55413;
        double r55432 = c;
        double r55433 = r55431 + r55432;
        double r55434 = r55433 * r55413;
        double r55435 = i;
        double r55436 = r55434 + r55435;
        double r55437 = r55425 / r55436;
        return r55437;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r55438 = x;
        double r55439 = y;
        double r55440 = z;
        double r55441 = fma(r55438, r55439, r55440);
        double r55442 = cbrt(r55439);
        double r55443 = r55441 * r55442;
        double r55444 = r55443 * r55442;
        double r55445 = r55444 * r55442;
        double r55446 = 27464.7644705;
        double r55447 = r55445 + r55446;
        double r55448 = r55447 * r55439;
        double r55449 = 230661.510616;
        double r55450 = r55448 + r55449;
        double r55451 = r55450 * r55439;
        double r55452 = t;
        double r55453 = r55451 + r55452;
        double r55454 = 1.0;
        double r55455 = a;
        double r55456 = r55439 + r55455;
        double r55457 = b;
        double r55458 = fma(r55456, r55439, r55457);
        double r55459 = c;
        double r55460 = fma(r55458, r55439, r55459);
        double r55461 = i;
        double r55462 = fma(r55460, r55439, r55461);
        double r55463 = r55462 * r55454;
        double r55464 = r55454 / r55463;
        double r55465 = r55453 * r55464;
        return r55465;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus i

Derivation

  1. Initial program 29.2

    \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
  2. Using strategy rm
  3. Applied div-inv29.3

    \[\leadsto \color{blue}{\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}}\]
  4. Simplified29.3

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \color{blue}{\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}}\]
  5. Using strategy rm
  6. Applied add-cube-cbrt29.4

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot \color{blue}{\left(\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right)} + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]
  7. Applied associate-*r*29.4

    \[\leadsto \left(\left(\left(\color{blue}{\left(\left(x \cdot y + z\right) \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right)\right) \cdot \sqrt[3]{y}} + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]
  8. Simplified29.4

    \[\leadsto \left(\left(\left(\color{blue}{\left(\left(\mathsf{fma}\left(x, y, z\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right)} \cdot \sqrt[3]{y} + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]
  9. Final simplification29.4

    \[\leadsto \left(\left(\left(\left(\left(\mathsf{fma}\left(x, y, z\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y} + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]

Reproduce

herbie shell --seed 2020060 +o rules:numerics
(FPCore (x y z t a b c i)
  :name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
  :precision binary64
  (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))