Average Error: 22.5 → 22.5
Time: 2.8m
Precision: 64
\[\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\]
\[\frac{\mathsf{fma}\left(y, x, z \cdot \left(t - a\right)\right) + z \cdot \mathsf{fma}\left(-\sqrt[3]{a}, \sqrt[3]{a} \cdot \sqrt[3]{a}, \sqrt[3]{a} \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)\right)}{\mathsf{fma}\left(z, b - y, y\right)}\]
\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}
\frac{\mathsf{fma}\left(y, x, z \cdot \left(t - a\right)\right) + z \cdot \mathsf{fma}\left(-\sqrt[3]{a}, \sqrt[3]{a} \cdot \sqrt[3]{a}, \sqrt[3]{a} \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)\right)}{\mathsf{fma}\left(z, b - y, y\right)}
double f(double x, double y, double z, double t, double a, double b) {
        double r1365250 = x;
        double r1365251 = y;
        double r1365252 = r1365250 * r1365251;
        double r1365253 = z;
        double r1365254 = t;
        double r1365255 = a;
        double r1365256 = r1365254 - r1365255;
        double r1365257 = r1365253 * r1365256;
        double r1365258 = r1365252 + r1365257;
        double r1365259 = b;
        double r1365260 = r1365259 - r1365251;
        double r1365261 = r1365253 * r1365260;
        double r1365262 = r1365251 + r1365261;
        double r1365263 = r1365258 / r1365262;
        return r1365263;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r1365264 = y;
        double r1365265 = x;
        double r1365266 = z;
        double r1365267 = t;
        double r1365268 = a;
        double r1365269 = r1365267 - r1365268;
        double r1365270 = r1365266 * r1365269;
        double r1365271 = fma(r1365264, r1365265, r1365270);
        double r1365272 = cbrt(r1365268);
        double r1365273 = -r1365272;
        double r1365274 = r1365272 * r1365272;
        double r1365275 = r1365272 * r1365274;
        double r1365276 = fma(r1365273, r1365274, r1365275);
        double r1365277 = r1365266 * r1365276;
        double r1365278 = r1365271 + r1365277;
        double r1365279 = b;
        double r1365280 = r1365279 - r1365264;
        double r1365281 = fma(r1365266, r1365280, r1365264);
        double r1365282 = r1365278 / r1365281;
        return r1365282;
}

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

Target

Original22.5
Target17.8
Herbie22.5
\[\frac{z \cdot t + y \cdot x}{y + z \cdot \left(b - y\right)} - \frac{a}{\left(b - y\right) + \frac{y}{z}}\]

Derivation

  1. Initial program 22.5

    \[\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\]
  2. Simplified22.5

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(x, y, z \cdot \left(t - a\right)\right)}{\mathsf{fma}\left(z, b - y, y\right)}}\]
  3. Using strategy rm
  4. Applied fma-udef22.5

    \[\leadsto \frac{\color{blue}{x \cdot y + z \cdot \left(t - a\right)}}{\mathsf{fma}\left(z, b - y, y\right)}\]
  5. Using strategy rm
  6. Applied add-cube-cbrt22.7

    \[\leadsto \frac{x \cdot y + z \cdot \left(t - \color{blue}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\right)}{\mathsf{fma}\left(z, b - y, y\right)}\]
  7. Applied add-sqr-sqrt43.9

    \[\leadsto \frac{x \cdot y + z \cdot \left(\color{blue}{\sqrt{t} \cdot \sqrt{t}} - \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}\right)}{\mathsf{fma}\left(z, b - y, y\right)}\]
  8. Applied prod-diff43.9

    \[\leadsto \frac{x \cdot y + z \cdot \color{blue}{\left(\mathsf{fma}\left(\sqrt{t}, \sqrt{t}, -\sqrt[3]{a} \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)\right) + \mathsf{fma}\left(-\sqrt[3]{a}, \sqrt[3]{a} \cdot \sqrt[3]{a}, \sqrt[3]{a} \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)\right)\right)}}{\mathsf{fma}\left(z, b - y, y\right)}\]
  9. Applied distribute-lft-in43.9

    \[\leadsto \frac{x \cdot y + \color{blue}{\left(z \cdot \mathsf{fma}\left(\sqrt{t}, \sqrt{t}, -\sqrt[3]{a} \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)\right) + z \cdot \mathsf{fma}\left(-\sqrt[3]{a}, \sqrt[3]{a} \cdot \sqrt[3]{a}, \sqrt[3]{a} \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)\right)\right)}}{\mathsf{fma}\left(z, b - y, y\right)}\]
  10. Applied associate-+r+43.9

    \[\leadsto \frac{\color{blue}{\left(x \cdot y + z \cdot \mathsf{fma}\left(\sqrt{t}, \sqrt{t}, -\sqrt[3]{a} \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)\right)\right) + z \cdot \mathsf{fma}\left(-\sqrt[3]{a}, \sqrt[3]{a} \cdot \sqrt[3]{a}, \sqrt[3]{a} \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)\right)}}{\mathsf{fma}\left(z, b - y, y\right)}\]
  11. Simplified22.5

    \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(y, x, z \cdot \left(t - a\right)\right)} + z \cdot \mathsf{fma}\left(-\sqrt[3]{a}, \sqrt[3]{a} \cdot \sqrt[3]{a}, \sqrt[3]{a} \cdot \left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right)\right)}{\mathsf{fma}\left(z, b - y, y\right)}\]
  12. Final simplification22.5

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

Reproduce

herbie shell --seed 2019208 +o rules:numerics
(FPCore (x y z t a b)
  :name "Development.Shake.Progress:decay from shake-0.15.5"
  :precision binary64

  :herbie-target
  (- (/ (+ (* z t) (* y x)) (+ y (* z (- b y)))) (/ a (+ (- b y) (/ y z))))

  (/ (+ (* x y) (* z (- t a))) (+ y (* z (- b y)))))