\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.95709970069839588 \cdot 10^{140}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \sqrt[3]{{\left(\cos \left(\left(\sqrt[3]{\frac{z \cdot t}{3}} \cdot \sqrt[3]{\frac{z \cdot t}{3}}\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)\right)}^{3}} + \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 r688249 = 2.0;
double r688250 = x;
double r688251 = sqrt(r688250);
double r688252 = r688249 * r688251;
double r688253 = y;
double r688254 = z;
double r688255 = t;
double r688256 = r688254 * r688255;
double r688257 = 3.0;
double r688258 = r688256 / r688257;
double r688259 = r688253 - r688258;
double r688260 = cos(r688259);
double r688261 = r688252 * r688260;
double r688262 = a;
double r688263 = b;
double r688264 = r688263 * r688257;
double r688265 = r688262 / r688264;
double r688266 = r688261 - r688265;
return r688266;
}
double f(double x, double y, double z, double t, double a, double b) {
double r688267 = 2.0;
double r688268 = x;
double r688269 = sqrt(r688268);
double r688270 = r688267 * r688269;
double r688271 = y;
double r688272 = z;
double r688273 = t;
double r688274 = r688272 * r688273;
double r688275 = 3.0;
double r688276 = r688274 / r688275;
double r688277 = r688271 - r688276;
double r688278 = cos(r688277);
double r688279 = r688270 * r688278;
double r688280 = 1.957099700698396e+140;
bool r688281 = r688279 <= r688280;
double r688282 = cos(r688271);
double r688283 = cbrt(r688276);
double r688284 = r688283 * r688283;
double r688285 = cbrt(r688283);
double r688286 = r688285 * r688285;
double r688287 = r688286 * r688285;
double r688288 = r688284 * r688287;
double r688289 = cos(r688288);
double r688290 = 3.0;
double r688291 = pow(r688289, r688290);
double r688292 = cbrt(r688291);
double r688293 = r688282 * r688292;
double r688294 = sin(r688271);
double r688295 = sin(r688276);
double r688296 = r688294 * r688295;
double r688297 = r688293 + r688296;
double r688298 = r688270 * r688297;
double r688299 = a;
double r688300 = b;
double r688301 = r688300 * r688275;
double r688302 = r688299 / r688301;
double r688303 = r688298 - r688302;
double r688304 = 1.0;
double r688305 = 0.5;
double r688306 = 2.0;
double r688307 = pow(r688271, r688306);
double r688308 = r688305 * r688307;
double r688309 = r688304 - r688308;
double r688310 = r688270 * r688309;
double r688311 = r688310 - r688302;
double r688312 = r688281 ? r688303 : r688311;
return r688312;
}




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.7 |
if (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) < 1.957099700698396e+140Initial program 13.9
rmApplied cos-diff13.5
rmApplied add-cube-cbrt13.5
rmApplied add-cube-cbrt13.5
rmApplied add-cbrt-cube13.5
Simplified13.5
if 1.957099700698396e+140 < (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) Initial program 56.2
Taylor expanded around 0 42.5
Final simplification17.7
herbie shell --seed 2020062
(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))))