\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.99999996888221743:\\
\;\;\;\;\left(\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \sqrt[3]{{\left(\cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right)}^{3}}\right) + \left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right)\right) - \frac{\frac{a}{b}}{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 r2208215 = 2.0;
double r2208216 = x;
double r2208217 = sqrt(r2208216);
double r2208218 = r2208215 * r2208217;
double r2208219 = y;
double r2208220 = z;
double r2208221 = t;
double r2208222 = r2208220 * r2208221;
double r2208223 = 3.0;
double r2208224 = r2208222 / r2208223;
double r2208225 = r2208219 - r2208224;
double r2208226 = cos(r2208225);
double r2208227 = r2208218 * r2208226;
double r2208228 = a;
double r2208229 = b;
double r2208230 = r2208229 * r2208223;
double r2208231 = r2208228 / r2208230;
double r2208232 = r2208227 - r2208231;
return r2208232;
}
double f(double x, double y, double z, double t, double a, double b) {
double r2208233 = y;
double r2208234 = z;
double r2208235 = t;
double r2208236 = r2208234 * r2208235;
double r2208237 = 3.0;
double r2208238 = r2208236 / r2208237;
double r2208239 = r2208233 - r2208238;
double r2208240 = cos(r2208239);
double r2208241 = 0.9999999688822174;
bool r2208242 = r2208240 <= r2208241;
double r2208243 = 2.0;
double r2208244 = x;
double r2208245 = sqrt(r2208244);
double r2208246 = r2208243 * r2208245;
double r2208247 = cos(r2208233);
double r2208248 = 0.3333333333333333;
double r2208249 = r2208235 * r2208234;
double r2208250 = r2208248 * r2208249;
double r2208251 = cos(r2208250);
double r2208252 = 3.0;
double r2208253 = pow(r2208251, r2208252);
double r2208254 = cbrt(r2208253);
double r2208255 = r2208247 * r2208254;
double r2208256 = r2208246 * r2208255;
double r2208257 = sin(r2208233);
double r2208258 = sin(r2208238);
double r2208259 = r2208257 * r2208258;
double r2208260 = r2208246 * r2208259;
double r2208261 = r2208256 + r2208260;
double r2208262 = a;
double r2208263 = b;
double r2208264 = r2208262 / r2208263;
double r2208265 = r2208264 / r2208237;
double r2208266 = r2208261 - r2208265;
double r2208267 = 1.0;
double r2208268 = 0.5;
double r2208269 = 2.0;
double r2208270 = pow(r2208233, r2208269);
double r2208271 = r2208268 * r2208270;
double r2208272 = r2208267 - r2208271;
double r2208273 = r2208246 * r2208272;
double r2208274 = r2208263 * r2208237;
double r2208275 = r2208262 / r2208274;
double r2208276 = r2208273 - r2208275;
double r2208277 = r2208242 ? r2208266 : r2208276;
return r2208277;
}




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.5 |
|---|---|
| Target | 18.4 |
| Herbie | 17.7 |
if (cos (- y (/ (* z t) 3.0))) < 0.9999999688822174Initial program 19.4
rmApplied cos-diff18.9
Applied distribute-lft-in18.9
Taylor expanded around inf 18.9
rmApplied add-cbrt-cube18.9
Simplified18.9
rmApplied associate-/r*18.9
if 0.9999999688822174 < (cos (- y (/ (* z t) 3.0))) Initial program 22.4
Taylor expanded around 0 15.7
Final simplification17.7
herbie shell --seed 2020018 +o rules:numerics
(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))))