\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 -3390462636455431410687387521523908608:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(\frac{z}{\frac{3}{t}}\right) - \sin y \cdot \sin \left(-\frac{z}{\frac{3}{t}}\right)\right) - \frac{a}{3 \cdot b}\\
\mathbf{elif}\;y \le 7.347963142841411576919910227448373696291 \cdot 10^{-9}:\\
\;\;\;\;\left(1 - {y}^{2} \cdot \frac{1}{2}\right) \cdot \left(2 \cdot \sqrt{x}\right) - \frac{a}{3 \cdot b}\\
\mathbf{else}:\\
\;\;\;\;\cos \left(y - \sqrt[3]{\frac{z}{\frac{3}{t}}} \cdot \left(\sqrt[3]{\frac{z}{\frac{3}{t}}} \cdot \sqrt[3]{\frac{z}{\frac{3}{t}}}\right)\right) \cdot \left(2 \cdot \sqrt{x}\right) - \frac{a}{3 \cdot b}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r630485 = 2.0;
double r630486 = x;
double r630487 = sqrt(r630486);
double r630488 = r630485 * r630487;
double r630489 = y;
double r630490 = z;
double r630491 = t;
double r630492 = r630490 * r630491;
double r630493 = 3.0;
double r630494 = r630492 / r630493;
double r630495 = r630489 - r630494;
double r630496 = cos(r630495);
double r630497 = r630488 * r630496;
double r630498 = a;
double r630499 = b;
double r630500 = r630499 * r630493;
double r630501 = r630498 / r630500;
double r630502 = r630497 - r630501;
return r630502;
}
double f(double x, double y, double z, double t, double a, double b) {
double r630503 = y;
double r630504 = -3.3904626364554314e+36;
bool r630505 = r630503 <= r630504;
double r630506 = 2.0;
double r630507 = x;
double r630508 = sqrt(r630507);
double r630509 = r630506 * r630508;
double r630510 = cos(r630503);
double r630511 = z;
double r630512 = 3.0;
double r630513 = t;
double r630514 = r630512 / r630513;
double r630515 = r630511 / r630514;
double r630516 = cos(r630515);
double r630517 = r630510 * r630516;
double r630518 = sin(r630503);
double r630519 = -r630515;
double r630520 = sin(r630519);
double r630521 = r630518 * r630520;
double r630522 = r630517 - r630521;
double r630523 = r630509 * r630522;
double r630524 = a;
double r630525 = b;
double r630526 = r630512 * r630525;
double r630527 = r630524 / r630526;
double r630528 = r630523 - r630527;
double r630529 = 7.3479631428414116e-09;
bool r630530 = r630503 <= r630529;
double r630531 = 1.0;
double r630532 = 2.0;
double r630533 = pow(r630503, r630532);
double r630534 = 0.5;
double r630535 = r630533 * r630534;
double r630536 = r630531 - r630535;
double r630537 = r630536 * r630509;
double r630538 = r630537 - r630527;
double r630539 = cbrt(r630515);
double r630540 = r630539 * r630539;
double r630541 = r630539 * r630540;
double r630542 = r630503 - r630541;
double r630543 = cos(r630542);
double r630544 = r630543 * r630509;
double r630545 = r630544 - r630527;
double r630546 = r630530 ? r630538 : r630545;
double r630547 = r630505 ? r630528 : r630546;
return r630547;
}




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.8 |
|---|---|
| Target | 18.7 |
| Herbie | 19.4 |
if y < -3.3904626364554314e+36Initial program 21.2
rmApplied sub-neg21.2
Applied cos-sum20.4
Simplified20.3
Simplified20.4
if -3.3904626364554314e+36 < y < 7.3479631428414116e-09Initial program 20.8
Taylor expanded around 0 18.5
Simplified18.5
if 7.3479631428414116e-09 < y Initial program 20.6
rmApplied add-cube-cbrt20.6
Simplified20.6
Simplified20.6
Final simplification19.4
herbie shell --seed 2019174
(FPCore (x y z t a b)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, K"
:herbie-target
(if (< z -1.3793337487235141e+129) (- (* (* 2.0 (sqrt x)) (cos (- (/ 1.0 y) (/ (/ 0.3333333333333333 z) t)))) (/ (/ a 3.0) b)) (if (< z 3.516290613555987e+106) (- (* (* (sqrt x) 2.0) (cos (- y (* (/ t 3.0) z)))) (/ (/ a 3.0) b)) (- (* (cos (- y (/ (/ 0.3333333333333333 z) t))) (* 2.0 (sqrt x))) (/ (/ a b) 3.0))))
(- (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) (/ a (* b 3.0))))