\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}\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) \le 1.19869875367430419 \cdot 10^{142}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(\left(\sqrt[3]{\frac{z \cdot t}{3}} \cdot \left(\sqrt[3]{\frac{z}{\sqrt{3}}} \cdot \sqrt[3]{\frac{t}{\sqrt{3}}}\right)\right) \cdot \left(\left(\sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}} \cdot \sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}}\right) \cdot \sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}}\right)\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right) - \frac{a}{b \cdot 3}\\
\mathbf{else}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(1 - \frac{1}{2} \cdot {y}^{2}\right) - \frac{a}{b \cdot 3}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r617593 = 2.0;
double r617594 = x;
double r617595 = sqrt(r617594);
double r617596 = r617593 * r617595;
double r617597 = y;
double r617598 = z;
double r617599 = t;
double r617600 = r617598 * r617599;
double r617601 = 3.0;
double r617602 = r617600 / r617601;
double r617603 = r617597 - r617602;
double r617604 = cos(r617603);
double r617605 = r617596 * r617604;
double r617606 = a;
double r617607 = b;
double r617608 = r617607 * r617601;
double r617609 = r617606 / r617608;
double r617610 = r617605 - r617609;
return r617610;
}
double f(double x, double y, double z, double t, double a, double b) {
double r617611 = 2.0;
double r617612 = x;
double r617613 = sqrt(r617612);
double r617614 = r617611 * r617613;
double r617615 = y;
double r617616 = z;
double r617617 = t;
double r617618 = r617616 * r617617;
double r617619 = 3.0;
double r617620 = r617618 / r617619;
double r617621 = r617615 - r617620;
double r617622 = cos(r617621);
double r617623 = r617614 * r617622;
double r617624 = 1.1986987536743042e+142;
bool r617625 = r617623 <= r617624;
double r617626 = cos(r617615);
double r617627 = cbrt(r617620);
double r617628 = sqrt(r617619);
double r617629 = r617616 / r617628;
double r617630 = cbrt(r617629);
double r617631 = r617617 / r617628;
double r617632 = cbrt(r617631);
double r617633 = r617630 * r617632;
double r617634 = r617627 * r617633;
double r617635 = cbrt(r617627);
double r617636 = r617635 * r617635;
double r617637 = r617636 * r617635;
double r617638 = r617634 * r617637;
double r617639 = cos(r617638);
double r617640 = r617626 * r617639;
double r617641 = sin(r617615);
double r617642 = sin(r617620);
double r617643 = r617641 * r617642;
double r617644 = r617640 + r617643;
double r617645 = r617614 * r617644;
double r617646 = a;
double r617647 = b;
double r617648 = r617647 * r617619;
double r617649 = r617646 / r617648;
double r617650 = r617645 - r617649;
double r617651 = 1.0;
double r617652 = 0.5;
double r617653 = 2.0;
double r617654 = pow(r617615, r617653);
double r617655 = r617652 * r617654;
double r617656 = r617651 - r617655;
double r617657 = r617614 * r617656;
double r617658 = r617657 - r617649;
double r617659 = r617625 ? r617650 : r617658;
return r617659;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 20.0 |
|---|---|
| Target | 18.0 |
| Herbie | 17.6 |
if (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) < 1.1986987536743042e+142Initial program 13.9
rmApplied cos-diff13.5
rmApplied add-cube-cbrt13.5
rmApplied add-sqr-sqrt13.5
Applied times-frac13.5
Applied cbrt-prod13.5
rmApplied add-cube-cbrt13.5
if 1.1986987536743042e+142 < (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) Initial program 57.2
Taylor expanded around 0 42.9
Final simplification17.6
herbie shell --seed 2020062 +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))))