\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}\;z \cdot t \le -5.40746193454883711 \cdot 10^{253} \lor \neg \left(z \cdot t \le 3.85908544518920173 \cdot 10^{291}\right):\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(1 - \frac{1}{2} \cdot {y}^{2}\right) - \frac{a}{b \cdot 3}\\
\mathbf{else}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \left(\left(\sqrt[3]{z \cdot t} \cdot \sqrt[3]{\frac{1}{3}}\right) \cdot \sqrt[3]{\frac{z \cdot t}{3}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}} \cdot \sqrt[3]{\frac{z \cdot t}{3}}} \cdot \sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}}\right)\right) - \frac{a}{b \cdot 3}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r743172 = 2.0;
double r743173 = x;
double r743174 = sqrt(r743173);
double r743175 = r743172 * r743174;
double r743176 = y;
double r743177 = z;
double r743178 = t;
double r743179 = r743177 * r743178;
double r743180 = 3.0;
double r743181 = r743179 / r743180;
double r743182 = r743176 - r743181;
double r743183 = cos(r743182);
double r743184 = r743175 * r743183;
double r743185 = a;
double r743186 = b;
double r743187 = r743186 * r743180;
double r743188 = r743185 / r743187;
double r743189 = r743184 - r743188;
return r743189;
}
double f(double x, double y, double z, double t, double a, double b) {
double r743190 = z;
double r743191 = t;
double r743192 = r743190 * r743191;
double r743193 = -5.407461934548837e+253;
bool r743194 = r743192 <= r743193;
double r743195 = 3.859085445189202e+291;
bool r743196 = r743192 <= r743195;
double r743197 = !r743196;
bool r743198 = r743194 || r743197;
double r743199 = 2.0;
double r743200 = x;
double r743201 = sqrt(r743200);
double r743202 = r743199 * r743201;
double r743203 = 1.0;
double r743204 = 0.5;
double r743205 = y;
double r743206 = 2.0;
double r743207 = pow(r743205, r743206);
double r743208 = r743204 * r743207;
double r743209 = r743203 - r743208;
double r743210 = r743202 * r743209;
double r743211 = a;
double r743212 = b;
double r743213 = 3.0;
double r743214 = r743212 * r743213;
double r743215 = r743211 / r743214;
double r743216 = r743210 - r743215;
double r743217 = cbrt(r743192);
double r743218 = r743203 / r743213;
double r743219 = cbrt(r743218);
double r743220 = r743217 * r743219;
double r743221 = r743192 / r743213;
double r743222 = cbrt(r743221);
double r743223 = r743220 * r743222;
double r743224 = r743222 * r743222;
double r743225 = cbrt(r743224);
double r743226 = cbrt(r743222);
double r743227 = r743225 * r743226;
double r743228 = r743223 * r743227;
double r743229 = r743205 - r743228;
double r743230 = cos(r743229);
double r743231 = r743202 * r743230;
double r743232 = r743231 - r743215;
double r743233 = r743198 ? r743216 : r743232;
return r743233;
}




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.8 |
|---|---|
| Target | 18.9 |
| Herbie | 18.8 |
if (* z t) < -5.407461934548837e+253 or 3.859085445189202e+291 < (* z t) Initial program 58.7
Taylor expanded around 0 45.1
if -5.407461934548837e+253 < (* z t) < 3.859085445189202e+291Initial program 14.1
rmApplied add-cube-cbrt14.1
rmApplied div-inv14.1
Applied cbrt-prod14.1
rmApplied add-cube-cbrt14.1
Applied cbrt-prod14.1
Final simplification18.8
herbie shell --seed 2020081
(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))))