\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.9999999965121658673794513561006169766188:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - 0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right) - \frac{1}{b} \cdot \frac{a}{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 r799461 = 2.0;
double r799462 = x;
double r799463 = sqrt(r799462);
double r799464 = r799461 * r799463;
double r799465 = y;
double r799466 = z;
double r799467 = t;
double r799468 = r799466 * r799467;
double r799469 = 3.0;
double r799470 = r799468 / r799469;
double r799471 = r799465 - r799470;
double r799472 = cos(r799471);
double r799473 = r799464 * r799472;
double r799474 = a;
double r799475 = b;
double r799476 = r799475 * r799469;
double r799477 = r799474 / r799476;
double r799478 = r799473 - r799477;
return r799478;
}
double f(double x, double y, double z, double t, double a, double b) {
double r799479 = y;
double r799480 = z;
double r799481 = t;
double r799482 = r799480 * r799481;
double r799483 = 3.0;
double r799484 = r799482 / r799483;
double r799485 = r799479 - r799484;
double r799486 = cos(r799485);
double r799487 = 0.9999999965121659;
bool r799488 = r799486 <= r799487;
double r799489 = 2.0;
double r799490 = x;
double r799491 = sqrt(r799490);
double r799492 = r799489 * r799491;
double r799493 = 0.3333333333333333;
double r799494 = r799481 * r799480;
double r799495 = r799493 * r799494;
double r799496 = r799479 - r799495;
double r799497 = cos(r799496);
double r799498 = r799492 * r799497;
double r799499 = 1.0;
double r799500 = b;
double r799501 = r799499 / r799500;
double r799502 = a;
double r799503 = r799502 / r799483;
double r799504 = r799501 * r799503;
double r799505 = r799498 - r799504;
double r799506 = 0.5;
double r799507 = 2.0;
double r799508 = pow(r799479, r799507);
double r799509 = r799506 * r799508;
double r799510 = r799499 - r799509;
double r799511 = r799492 * r799510;
double r799512 = r799500 * r799483;
double r799513 = r799502 / r799512;
double r799514 = r799511 - r799513;
double r799515 = r799488 ? r799505 : r799514;
return r799515;
}




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.7 |
|---|---|
| Target | 18.6 |
| Herbie | 18.4 |
if (cos (- y (/ (* z t) 3.0))) < 0.9999999965121659Initial program 20.0
Taylor expanded around inf 20.0
rmApplied *-un-lft-identity20.0
Applied times-frac20.0
if 0.9999999965121659 < (cos (- y (/ (* z t) 3.0))) Initial program 22.0
Taylor expanded around 0 15.6
Final simplification18.4
herbie shell --seed 2019356
(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))))