Average Error: 2.2 → 0.8
Time: 14.4s
Precision: 64
\[\left(\left(x + y \cdot z\right) + t \cdot a\right) + \left(a \cdot z\right) \cdot b\]
\[\begin{array}{l} \mathbf{if}\;b \le -5.101609161331272180551380455037046158899 \cdot 10^{-12}:\\ \;\;\;\;\left(\left(z \cdot a\right) \cdot b + y \cdot z\right) + \left(x + t \cdot a\right)\\ \mathbf{elif}\;b \le 9.332256985882133751832976003037219408305 \cdot 10^{-102}:\\ \;\;\;\;\left(\sqrt[3]{\left(a \cdot b + y\right) \cdot z} \cdot \sqrt[3]{\left(z \cdot \left(\sqrt[3]{a \cdot b + y} \cdot \sqrt[3]{a \cdot b + y}\right)\right) \cdot \sqrt[3]{a \cdot b + y}}\right) \cdot \left(\sqrt[3]{a \cdot b + y} \cdot \sqrt[3]{z}\right) + \left(x + t \cdot a\right)\\ \mathbf{elif}\;b \le 1.212085654366817012170105793384257637175 \cdot 10^{279}:\\ \;\;\;\;\left(\left(z \cdot a\right) \cdot b + y \cdot z\right) + \left(x + t \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;\left(a \cdot b + y\right) \cdot z + \sqrt[3]{x + t \cdot a} \cdot \left(\sqrt[3]{x + t \cdot a} \cdot \sqrt[3]{x + t \cdot a}\right)\\ \end{array}\]
\left(\left(x + y \cdot z\right) + t \cdot a\right) + \left(a \cdot z\right) \cdot b
\begin{array}{l}
\mathbf{if}\;b \le -5.101609161331272180551380455037046158899 \cdot 10^{-12}:\\
\;\;\;\;\left(\left(z \cdot a\right) \cdot b + y \cdot z\right) + \left(x + t \cdot a\right)\\

\mathbf{elif}\;b \le 9.332256985882133751832976003037219408305 \cdot 10^{-102}:\\
\;\;\;\;\left(\sqrt[3]{\left(a \cdot b + y\right) \cdot z} \cdot \sqrt[3]{\left(z \cdot \left(\sqrt[3]{a \cdot b + y} \cdot \sqrt[3]{a \cdot b + y}\right)\right) \cdot \sqrt[3]{a \cdot b + y}}\right) \cdot \left(\sqrt[3]{a \cdot b + y} \cdot \sqrt[3]{z}\right) + \left(x + t \cdot a\right)\\

\mathbf{elif}\;b \le 1.212085654366817012170105793384257637175 \cdot 10^{279}:\\
\;\;\;\;\left(\left(z \cdot a\right) \cdot b + y \cdot z\right) + \left(x + t \cdot a\right)\\

\mathbf{else}:\\
\;\;\;\;\left(a \cdot b + y\right) \cdot z + \sqrt[3]{x + t \cdot a} \cdot \left(\sqrt[3]{x + t \cdot a} \cdot \sqrt[3]{x + t \cdot a}\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r490432 = x;
        double r490433 = y;
        double r490434 = z;
        double r490435 = r490433 * r490434;
        double r490436 = r490432 + r490435;
        double r490437 = t;
        double r490438 = a;
        double r490439 = r490437 * r490438;
        double r490440 = r490436 + r490439;
        double r490441 = r490438 * r490434;
        double r490442 = b;
        double r490443 = r490441 * r490442;
        double r490444 = r490440 + r490443;
        return r490444;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r490445 = b;
        double r490446 = -5.101609161331272e-12;
        bool r490447 = r490445 <= r490446;
        double r490448 = z;
        double r490449 = a;
        double r490450 = r490448 * r490449;
        double r490451 = r490450 * r490445;
        double r490452 = y;
        double r490453 = r490452 * r490448;
        double r490454 = r490451 + r490453;
        double r490455 = x;
        double r490456 = t;
        double r490457 = r490456 * r490449;
        double r490458 = r490455 + r490457;
        double r490459 = r490454 + r490458;
        double r490460 = 9.332256985882134e-102;
        bool r490461 = r490445 <= r490460;
        double r490462 = r490449 * r490445;
        double r490463 = r490462 + r490452;
        double r490464 = r490463 * r490448;
        double r490465 = cbrt(r490464);
        double r490466 = cbrt(r490463);
        double r490467 = r490466 * r490466;
        double r490468 = r490448 * r490467;
        double r490469 = r490468 * r490466;
        double r490470 = cbrt(r490469);
        double r490471 = r490465 * r490470;
        double r490472 = cbrt(r490448);
        double r490473 = r490466 * r490472;
        double r490474 = r490471 * r490473;
        double r490475 = r490474 + r490458;
        double r490476 = 1.212085654366817e+279;
        bool r490477 = r490445 <= r490476;
        double r490478 = cbrt(r490458);
        double r490479 = r490478 * r490478;
        double r490480 = r490478 * r490479;
        double r490481 = r490464 + r490480;
        double r490482 = r490477 ? r490459 : r490481;
        double r490483 = r490461 ? r490475 : r490482;
        double r490484 = r490447 ? r490459 : r490483;
        return r490484;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original2.2
Target0.3
Herbie0.8
\[\begin{array}{l} \mathbf{if}\;z \lt -11820553527347888128:\\ \;\;\;\;z \cdot \left(b \cdot a + y\right) + \left(x + t \cdot a\right)\\ \mathbf{elif}\;z \lt 4.758974318836428710669076838657752600596 \cdot 10^{-122}:\\ \;\;\;\;\left(b \cdot z + t\right) \cdot a + \left(z \cdot y + x\right)\\ \mathbf{else}:\\ \;\;\;\;z \cdot \left(b \cdot a + y\right) + \left(x + t \cdot a\right)\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if b < -5.101609161331272e-12 or 9.332256985882134e-102 < b < 1.212085654366817e+279

    1. Initial program 0.7

      \[\left(\left(x + y \cdot z\right) + t \cdot a\right) + \left(a \cdot z\right) \cdot b\]
    2. Simplified5.2

      \[\leadsto \color{blue}{\left(x + t \cdot a\right) + z \cdot \left(y + b \cdot a\right)}\]
    3. Using strategy rm
    4. Applied distribute-lft-in5.2

      \[\leadsto \left(x + t \cdot a\right) + \color{blue}{\left(z \cdot y + z \cdot \left(b \cdot a\right)\right)}\]
    5. Simplified0.7

      \[\leadsto \left(x + t \cdot a\right) + \left(z \cdot y + \color{blue}{b \cdot \left(a \cdot z\right)}\right)\]

    if -5.101609161331272e-12 < b < 9.332256985882134e-102

    1. Initial program 3.9

      \[\left(\left(x + y \cdot z\right) + t \cdot a\right) + \left(a \cdot z\right) \cdot b\]
    2. Simplified0.0

      \[\leadsto \color{blue}{\left(x + t \cdot a\right) + z \cdot \left(y + b \cdot a\right)}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt0.4

      \[\leadsto \left(x + t \cdot a\right) + \color{blue}{\left(\sqrt[3]{z \cdot \left(y + b \cdot a\right)} \cdot \sqrt[3]{z \cdot \left(y + b \cdot a\right)}\right) \cdot \sqrt[3]{z \cdot \left(y + b \cdot a\right)}}\]
    5. Using strategy rm
    6. Applied cbrt-prod0.4

      \[\leadsto \left(x + t \cdot a\right) + \left(\sqrt[3]{z \cdot \left(y + b \cdot a\right)} \cdot \sqrt[3]{z \cdot \left(y + b \cdot a\right)}\right) \cdot \color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{y + b \cdot a}\right)}\]
    7. Using strategy rm
    8. Applied add-cube-cbrt0.4

      \[\leadsto \left(x + t \cdot a\right) + \left(\sqrt[3]{z \cdot \left(y + b \cdot a\right)} \cdot \sqrt[3]{z \cdot \color{blue}{\left(\left(\sqrt[3]{y + b \cdot a} \cdot \sqrt[3]{y + b \cdot a}\right) \cdot \sqrt[3]{y + b \cdot a}\right)}}\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{y + b \cdot a}\right)\]
    9. Applied associate-*r*0.4

      \[\leadsto \left(x + t \cdot a\right) + \left(\sqrt[3]{z \cdot \left(y + b \cdot a\right)} \cdot \sqrt[3]{\color{blue}{\left(z \cdot \left(\sqrt[3]{y + b \cdot a} \cdot \sqrt[3]{y + b \cdot a}\right)\right) \cdot \sqrt[3]{y + b \cdot a}}}\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{y + b \cdot a}\right)\]
    10. Simplified0.4

      \[\leadsto \left(x + t \cdot a\right) + \left(\sqrt[3]{z \cdot \left(y + b \cdot a\right)} \cdot \sqrt[3]{\color{blue}{\left(\left(\sqrt[3]{b \cdot a + y} \cdot \sqrt[3]{b \cdot a + y}\right) \cdot z\right)} \cdot \sqrt[3]{y + b \cdot a}}\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{y + b \cdot a}\right)\]

    if 1.212085654366817e+279 < b

    1. Initial program 2.6

      \[\left(\left(x + y \cdot z\right) + t \cdot a\right) + \left(a \cdot z\right) \cdot b\]
    2. Simplified10.7

      \[\leadsto \color{blue}{\left(x + t \cdot a\right) + z \cdot \left(y + b \cdot a\right)}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt11.2

      \[\leadsto \color{blue}{\left(\sqrt[3]{x + t \cdot a} \cdot \sqrt[3]{x + t \cdot a}\right) \cdot \sqrt[3]{x + t \cdot a}} + z \cdot \left(y + b \cdot a\right)\]
    5. Simplified11.2

      \[\leadsto \color{blue}{\left(\sqrt[3]{t \cdot a + x} \cdot \sqrt[3]{t \cdot a + x}\right)} \cdot \sqrt[3]{x + t \cdot a} + z \cdot \left(y + b \cdot a\right)\]
    6. Simplified11.2

      \[\leadsto \left(\sqrt[3]{t \cdot a + x} \cdot \sqrt[3]{t \cdot a + x}\right) \cdot \color{blue}{\sqrt[3]{t \cdot a + x}} + z \cdot \left(y + b \cdot a\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -5.101609161331272180551380455037046158899 \cdot 10^{-12}:\\ \;\;\;\;\left(\left(z \cdot a\right) \cdot b + y \cdot z\right) + \left(x + t \cdot a\right)\\ \mathbf{elif}\;b \le 9.332256985882133751832976003037219408305 \cdot 10^{-102}:\\ \;\;\;\;\left(\sqrt[3]{\left(a \cdot b + y\right) \cdot z} \cdot \sqrt[3]{\left(z \cdot \left(\sqrt[3]{a \cdot b + y} \cdot \sqrt[3]{a \cdot b + y}\right)\right) \cdot \sqrt[3]{a \cdot b + y}}\right) \cdot \left(\sqrt[3]{a \cdot b + y} \cdot \sqrt[3]{z}\right) + \left(x + t \cdot a\right)\\ \mathbf{elif}\;b \le 1.212085654366817012170105793384257637175 \cdot 10^{279}:\\ \;\;\;\;\left(\left(z \cdot a\right) \cdot b + y \cdot z\right) + \left(x + t \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;\left(a \cdot b + y\right) \cdot z + \sqrt[3]{x + t \cdot a} \cdot \left(\sqrt[3]{x + t \cdot a} \cdot \sqrt[3]{x + t \cdot a}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019195 
(FPCore (x y z t a b)
  :name "Graphics.Rasterific.CubicBezier:cachedBezierAt from Rasterific-0.6.1"

  :herbie-target
  (if (< z -1.1820553527347888e+19) (+ (* z (+ (* b a) y)) (+ x (* t a))) (if (< z 4.7589743188364287e-122) (+ (* (+ (* b z) t) a) (+ (* z y) x)) (+ (* z (+ (* b a) y)) (+ x (* t a)))))

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