Average Error: 20.6 → 18.8
Time: 30.2s
Precision: 64
\[\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}\]
\[\begin{array}{l} \mathbf{if}\;y \le -2.919119461166220657044437168895086190545 \cdot 10^{-64}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{t \cdot \frac{z}{\sqrt[3]{3} \cdot \sqrt[3]{3}}}{\sqrt[3]{3}}\right) - \frac{a}{b \cdot 3}\\ \mathbf{elif}\;y \le 6.818674036389499981680728524224832653999:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \mathsf{fma}\left({y}^{2}, \frac{-1}{2}, 1\right) - \frac{a}{b \cdot 3}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \left(\left(\sqrt[3]{\cos \left(\frac{z \cdot t}{3}\right)} \cdot \sqrt[3]{\cos \left(\frac{z \cdot t}{3}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{z \cdot t}{3}\right)}\right)\right) + \left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right)\right) - \frac{a}{b \cdot 3}\\ \end{array}\]
\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}
\begin{array}{l}
\mathbf{if}\;y \le -2.919119461166220657044437168895086190545 \cdot 10^{-64}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{t \cdot \frac{z}{\sqrt[3]{3} \cdot \sqrt[3]{3}}}{\sqrt[3]{3}}\right) - \frac{a}{b \cdot 3}\\

\mathbf{elif}\;y \le 6.818674036389499981680728524224832653999:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \mathsf{fma}\left({y}^{2}, \frac{-1}{2}, 1\right) - \frac{a}{b \cdot 3}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r424548 = 2.0;
        double r424549 = x;
        double r424550 = sqrt(r424549);
        double r424551 = r424548 * r424550;
        double r424552 = y;
        double r424553 = z;
        double r424554 = t;
        double r424555 = r424553 * r424554;
        double r424556 = 3.0;
        double r424557 = r424555 / r424556;
        double r424558 = r424552 - r424557;
        double r424559 = cos(r424558);
        double r424560 = r424551 * r424559;
        double r424561 = a;
        double r424562 = b;
        double r424563 = r424562 * r424556;
        double r424564 = r424561 / r424563;
        double r424565 = r424560 - r424564;
        return r424565;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r424566 = y;
        double r424567 = -2.9191194611662207e-64;
        bool r424568 = r424566 <= r424567;
        double r424569 = 2.0;
        double r424570 = x;
        double r424571 = sqrt(r424570);
        double r424572 = r424569 * r424571;
        double r424573 = t;
        double r424574 = z;
        double r424575 = 3.0;
        double r424576 = cbrt(r424575);
        double r424577 = r424576 * r424576;
        double r424578 = r424574 / r424577;
        double r424579 = r424573 * r424578;
        double r424580 = r424579 / r424576;
        double r424581 = r424566 - r424580;
        double r424582 = cos(r424581);
        double r424583 = r424572 * r424582;
        double r424584 = a;
        double r424585 = b;
        double r424586 = r424585 * r424575;
        double r424587 = r424584 / r424586;
        double r424588 = r424583 - r424587;
        double r424589 = 6.8186740363895;
        bool r424590 = r424566 <= r424589;
        double r424591 = 2.0;
        double r424592 = pow(r424566, r424591);
        double r424593 = -0.5;
        double r424594 = 1.0;
        double r424595 = fma(r424592, r424593, r424594);
        double r424596 = r424572 * r424595;
        double r424597 = r424596 - r424587;
        double r424598 = cos(r424566);
        double r424599 = r424574 * r424573;
        double r424600 = r424599 / r424575;
        double r424601 = cos(r424600);
        double r424602 = cbrt(r424601);
        double r424603 = r424602 * r424602;
        double r424604 = r424603 * r424602;
        double r424605 = r424598 * r424604;
        double r424606 = r424572 * r424605;
        double r424607 = sin(r424566);
        double r424608 = sin(r424600);
        double r424609 = r424607 * r424608;
        double r424610 = r424572 * r424609;
        double r424611 = r424606 + r424610;
        double r424612 = r424611 - r424587;
        double r424613 = r424590 ? r424597 : r424612;
        double r424614 = r424568 ? r424588 : r424613;
        return r424614;
}

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

Original20.6
Target18.5
Herbie18.8
\[\begin{array}{l} \mathbf{if}\;z \lt -1.379333748723514136852843173740882251575 \cdot 10^{129}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(\frac{1}{y} - \frac{\frac{0.3333333333333333148296162562473909929395}{z}}{t}\right) - \frac{\frac{a}{3}}{b}\\ \mathbf{elif}\;z \lt 3.516290613555987147199887107423758623887 \cdot 10^{106}:\\ \;\;\;\;\left(\sqrt{x} \cdot 2\right) \cdot \cos \left(y - \frac{t}{3} \cdot z\right) - \frac{\frac{a}{3}}{b}\\ \mathbf{else}:\\ \;\;\;\;\cos \left(y - \frac{\frac{0.3333333333333333148296162562473909929395}{z}}{t}\right) \cdot \left(2 \cdot \sqrt{x}\right) - \frac{\frac{a}{b}}{3}\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if y < -2.9191194611662207e-64

    1. Initial program 21.2

      \[\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt21.2

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{\color{blue}{\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}}}\right) - \frac{a}{b \cdot 3}\]
    4. Applied associate-/r*21.1

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \color{blue}{\frac{\frac{z \cdot t}{\sqrt[3]{3} \cdot \sqrt[3]{3}}}{\sqrt[3]{3}}}\right) - \frac{a}{b \cdot 3}\]
    5. Simplified21.1

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

    if -2.9191194611662207e-64 < y < 6.8186740363895

    1. Initial program 20.0

      \[\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}\]
    2. Taylor expanded around 0 16.7

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\left(1 - \frac{1}{2} \cdot {y}^{2}\right)} - \frac{a}{b \cdot 3}\]
    3. Simplified16.7

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\mathsf{fma}\left({y}^{2}, \frac{-1}{2}, 1\right)} - \frac{a}{b \cdot 3}\]

    if 6.8186740363895 < y

    1. Initial program 20.9

      \[\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}\]
    2. Using strategy rm
    3. Applied cos-diff19.7

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\left(\cos y \cdot \cos \left(\frac{z \cdot t}{3}\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right)} - \frac{a}{b \cdot 3}\]
    4. Applied distribute-lft-in19.7

      \[\leadsto \color{blue}{\left(\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(\frac{z \cdot t}{3}\right)\right) + \left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right)\right)} - \frac{a}{b \cdot 3}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt19.7

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -2.919119461166220657044437168895086190545 \cdot 10^{-64}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{t \cdot \frac{z}{\sqrt[3]{3} \cdot \sqrt[3]{3}}}{\sqrt[3]{3}}\right) - \frac{a}{b \cdot 3}\\ \mathbf{elif}\;y \le 6.818674036389499981680728524224832653999:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \mathsf{fma}\left({y}^{2}, \frac{-1}{2}, 1\right) - \frac{a}{b \cdot 3}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \left(\left(\sqrt[3]{\cos \left(\frac{z \cdot t}{3}\right)} \cdot \sqrt[3]{\cos \left(\frac{z \cdot t}{3}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{z \cdot t}{3}\right)}\right)\right) + \left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right)\right) - \frac{a}{b \cdot 3}\\ \end{array}\]

Reproduce

herbie shell --seed 2019326 +o rules:numerics
(FPCore (x y z t a b)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, K"
  :precision binary64

  :herbie-target
  (if (< z -1.379333748723514e+129) (- (* (* 2 (sqrt x)) (cos (- (/ 1 y) (/ (/ 0.3333333333333333 z) t)))) (/ (/ a 3) b)) (if (< z 3.516290613555987e+106) (- (* (* (sqrt x) 2) (cos (- y (* (/ t 3) z)))) (/ (/ a 3) b)) (- (* (cos (- y (/ (/ 0.3333333333333333 z) t))) (* 2 (sqrt x))) (/ (/ a b) 3))))

  (- (* (* 2 (sqrt x)) (cos (- y (/ (* z t) 3)))) (/ a (* b 3))))