\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.9999999999915456516674794329446740448475:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(\frac{z \cdot t}{3}\right) - \sin y \cdot \sin \left(-\left(\sqrt[3]{\frac{1}{3}} \cdot \sqrt[3]{\frac{1}{3}}\right) \cdot \left(\sqrt[3]{\frac{1}{3}} \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 r463258 = 2.0;
double r463259 = x;
double r463260 = sqrt(r463259);
double r463261 = r463258 * r463260;
double r463262 = y;
double r463263 = z;
double r463264 = t;
double r463265 = r463263 * r463264;
double r463266 = 3.0;
double r463267 = r463265 / r463266;
double r463268 = r463262 - r463267;
double r463269 = cos(r463268);
double r463270 = r463261 * r463269;
double r463271 = a;
double r463272 = b;
double r463273 = r463272 * r463266;
double r463274 = r463271 / r463273;
double r463275 = r463270 - r463274;
return r463275;
}
double f(double x, double y, double z, double t, double a, double b) {
double r463276 = y;
double r463277 = z;
double r463278 = t;
double r463279 = r463277 * r463278;
double r463280 = 3.0;
double r463281 = r463279 / r463280;
double r463282 = r463276 - r463281;
double r463283 = cos(r463282);
double r463284 = 0.9999999999915457;
bool r463285 = r463283 <= r463284;
double r463286 = 2.0;
double r463287 = x;
double r463288 = sqrt(r463287);
double r463289 = r463286 * r463288;
double r463290 = cos(r463276);
double r463291 = cos(r463281);
double r463292 = r463290 * r463291;
double r463293 = sin(r463276);
double r463294 = 1.0;
double r463295 = r463294 / r463280;
double r463296 = cbrt(r463295);
double r463297 = r463296 * r463296;
double r463298 = r463278 * r463277;
double r463299 = r463296 * r463298;
double r463300 = r463297 * r463299;
double r463301 = -r463300;
double r463302 = sin(r463301);
double r463303 = r463293 * r463302;
double r463304 = r463292 - r463303;
double r463305 = r463289 * r463304;
double r463306 = a;
double r463307 = b;
double r463308 = r463307 * r463280;
double r463309 = r463306 / r463308;
double r463310 = r463305 - r463309;
double r463311 = 0.5;
double r463312 = 2.0;
double r463313 = pow(r463276, r463312);
double r463314 = r463311 * r463313;
double r463315 = r463294 - r463314;
double r463316 = r463289 * r463315;
double r463317 = r463316 - r463309;
double r463318 = r463285 ? r463310 : r463317;
return r463318;
}




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 | 21.3 |
|---|---|
| Target | 19.4 |
| Herbie | 18.5 |
if (cos (- y (/ (* z t) 3.0))) < 0.9999999999915457Initial program 20.5
rmApplied sub-neg20.5
Applied cos-sum19.8
Simplified19.8
rmApplied clear-num19.9
rmApplied div-inv19.9
Applied associate-/r*19.9
rmApplied *-un-lft-identity19.9
Applied add-cube-cbrt19.9
Applied times-frac19.9
Simplified19.9
Simplified19.9
if 0.9999999999915457 < (cos (- y (/ (* z t) 3.0))) Initial program 22.7
Taylor expanded around 0 16.1
Final simplification18.5
herbie shell --seed 2019306
(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))))