\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 \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]{\frac{\sqrt[3]{z \cdot t}}{\sqrt[3]{3}}}\right) \cdot \sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}}\right)\right) + \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 r865182 = 2.0;
double r865183 = x;
double r865184 = sqrt(r865183);
double r865185 = r865182 * r865184;
double r865186 = y;
double r865187 = z;
double r865188 = t;
double r865189 = r865187 * r865188;
double r865190 = 3.0;
double r865191 = r865189 / r865190;
double r865192 = r865186 - r865191;
double r865193 = cos(r865192);
double r865194 = r865185 * r865193;
double r865195 = a;
double r865196 = b;
double r865197 = r865196 * r865190;
double r865198 = r865195 / r865197;
double r865199 = r865194 - r865198;
return r865199;
}
double f(double x, double y, double z, double t, double a, double b) {
double r865200 = 2.0;
double r865201 = x;
double r865202 = sqrt(r865201);
double r865203 = r865200 * r865202;
double r865204 = y;
double r865205 = z;
double r865206 = t;
double r865207 = r865205 * r865206;
double r865208 = 3.0;
double r865209 = r865207 / r865208;
double r865210 = r865204 - r865209;
double r865211 = cos(r865210);
double r865212 = r865203 * r865211;
double r865213 = 1.957099700698396e+140;
bool r865214 = r865212 <= r865213;
double r865215 = cos(r865204);
double r865216 = cbrt(r865209);
double r865217 = r865216 * r865216;
double r865218 = cbrt(r865216);
double r865219 = cbrt(r865207);
double r865220 = cbrt(r865208);
double r865221 = r865219 / r865220;
double r865222 = cbrt(r865221);
double r865223 = r865218 * r865222;
double r865224 = r865223 * r865218;
double r865225 = r865217 * r865224;
double r865226 = cos(r865225);
double r865227 = r865215 * r865226;
double r865228 = sin(r865204);
double r865229 = sin(r865209);
double r865230 = r865228 * r865229;
double r865231 = r865227 + r865230;
double r865232 = r865203 * r865231;
double r865233 = a;
double r865234 = b;
double r865235 = r865234 * r865208;
double r865236 = r865233 / r865235;
double r865237 = r865232 - r865236;
double r865238 = 1.0;
double r865239 = 0.5;
double r865240 = 2.0;
double r865241 = pow(r865204, r865240);
double r865242 = r865239 * r865241;
double r865243 = r865238 - r865242;
double r865244 = r865203 * r865243;
double r865245 = r865244 - r865236;
double r865246 = r865214 ? r865237 : r865245;
return r865246;
}




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 cbrt-div13.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))))