\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;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
| Original | 20.6 |
|---|---|
| Target | 18.5 |
| Herbie | 18.8 |
if y < -2.9191194611662207e-64Initial program 21.2
rmApplied add-cube-cbrt21.2
Applied associate-/r*21.1
Simplified21.1
if -2.9191194611662207e-64 < y < 6.8186740363895Initial program 20.0
Taylor expanded around 0 16.7
Simplified16.7
if 6.8186740363895 < y Initial program 20.9
rmApplied cos-diff19.7
Applied distribute-lft-in19.7
rmApplied add-cube-cbrt19.7
Final simplification18.8
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))))