\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}\;\cos \left(y - \frac{z \cdot t}{3}\right) \le 0.9988949060685164971218341634084936231375:\\
\;\;\;\;\frac{\left({\left(\cos \left(0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right) \cdot \cos y\right)}^{3} + {\left(\sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right)}^{3}\right) \cdot \left(2 \cdot \sqrt{x}\right)}{\left(\cos \left(0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right) \cdot \cos y\right) \cdot \left(\cos \left(0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right) \cdot \cos y\right) + \left(\left(\sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right) \cdot \left(\sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right) - \left(\cos \left(0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right) \cdot \cos y\right) \cdot \left(\sin y \cdot \sin \left(0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right)\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 r484458 = 2.0;
double r484459 = x;
double r484460 = sqrt(r484459);
double r484461 = r484458 * r484460;
double r484462 = y;
double r484463 = z;
double r484464 = t;
double r484465 = r484463 * r484464;
double r484466 = 3.0;
double r484467 = r484465 / r484466;
double r484468 = r484462 - r484467;
double r484469 = cos(r484468);
double r484470 = r484461 * r484469;
double r484471 = a;
double r484472 = b;
double r484473 = r484472 * r484466;
double r484474 = r484471 / r484473;
double r484475 = r484470 - r484474;
return r484475;
}
double f(double x, double y, double z, double t, double a, double b) {
double r484476 = y;
double r484477 = z;
double r484478 = t;
double r484479 = r484477 * r484478;
double r484480 = 3.0;
double r484481 = r484479 / r484480;
double r484482 = r484476 - r484481;
double r484483 = cos(r484482);
double r484484 = 0.9988949060685165;
bool r484485 = r484483 <= r484484;
double r484486 = 0.3333333333333333;
double r484487 = r484478 * r484477;
double r484488 = r484486 * r484487;
double r484489 = cos(r484488);
double r484490 = cos(r484476);
double r484491 = r484489 * r484490;
double r484492 = 3.0;
double r484493 = pow(r484491, r484492);
double r484494 = sin(r484476);
double r484495 = sin(r484481);
double r484496 = r484494 * r484495;
double r484497 = pow(r484496, r484492);
double r484498 = r484493 + r484497;
double r484499 = 2.0;
double r484500 = x;
double r484501 = sqrt(r484500);
double r484502 = r484499 * r484501;
double r484503 = r484498 * r484502;
double r484504 = r484491 * r484491;
double r484505 = r484496 * r484496;
double r484506 = sin(r484488);
double r484507 = r484494 * r484506;
double r484508 = r484491 * r484507;
double r484509 = r484505 - r484508;
double r484510 = r484504 + r484509;
double r484511 = r484503 / r484510;
double r484512 = a;
double r484513 = b;
double r484514 = r484513 * r484480;
double r484515 = r484512 / r484514;
double r484516 = r484511 - r484515;
double r484517 = 1.0;
double r484518 = 0.5;
double r484519 = 2.0;
double r484520 = pow(r484476, r484519);
double r484521 = r484518 * r484520;
double r484522 = r484517 - r484521;
double r484523 = r484502 * r484522;
double r484524 = r484523 - r484515;
double r484525 = r484485 ? r484516 : r484524;
return r484525;
}




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.6 |
|---|---|
| Target | 19.0 |
| Herbie | 18.3 |
if (cos (- y (/ (* z t) 3.0))) < 0.9988949060685165Initial program 20.3
rmApplied cos-diff19.7
Simplified19.7
Taylor expanded around inf 19.7
rmApplied flip3-+19.7
Applied associate-*r/19.7
Simplified19.7
Taylor expanded around inf 19.7
if 0.9988949060685165 < (cos (- y (/ (* z t) 3.0))) Initial program 21.1
Taylor expanded around 0 16.1
Final simplification18.3
herbie shell --seed 2019235
(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.379333748723514e129) (- (* (* 2 (sqrt x)) (cos (- (/ 1 y) (/ (/ 0.333333333333333315 z) t)))) (/ (/ a 3) b)) (if (< z 3.51629061355598715e106) (- (* (* (sqrt x) 2) (cos (- y (* (/ t 3) z)))) (/ (/ a 3) b)) (- (* (cos (- y (/ (/ 0.333333333333333315 z) t))) (* 2 (sqrt x))) (/ (/ a b) 3))))
(- (* (* 2 (sqrt x)) (cos (- y (/ (* z t) 3)))) (/ a (* b 3))))