\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.965264242388164234247715384116746023602 \cdot 10^{152}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(\sqrt[3]{\frac{1}{3}} \cdot \left({\left(\sqrt[3]{-1}\right)}^{2} \cdot \left(z \cdot \left(t \cdot {\left(\sqrt[3]{0.3333333333333333148296162562473909929395}\right)}^{2}\right)\right)\right)\right) - \sin y \cdot \sin \left(-\left(\sqrt[3]{\frac{z \cdot t}{3}} \cdot \sqrt[3]{\frac{z \cdot t}{3}}\right) \cdot \left(\sqrt[3]{\frac{z}{\sqrt{3}}} \cdot \sqrt[3]{\frac{t}{\sqrt{3}}}\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 r568002 = 2.0;
double r568003 = x;
double r568004 = sqrt(r568003);
double r568005 = r568002 * r568004;
double r568006 = y;
double r568007 = z;
double r568008 = t;
double r568009 = r568007 * r568008;
double r568010 = 3.0;
double r568011 = r568009 / r568010;
double r568012 = r568006 - r568011;
double r568013 = cos(r568012);
double r568014 = r568005 * r568013;
double r568015 = a;
double r568016 = b;
double r568017 = r568016 * r568010;
double r568018 = r568015 / r568017;
double r568019 = r568014 - r568018;
return r568019;
}
double f(double x, double y, double z, double t, double a, double b) {
double r568020 = 2.0;
double r568021 = x;
double r568022 = sqrt(r568021);
double r568023 = r568020 * r568022;
double r568024 = y;
double r568025 = z;
double r568026 = t;
double r568027 = r568025 * r568026;
double r568028 = 3.0;
double r568029 = r568027 / r568028;
double r568030 = r568024 - r568029;
double r568031 = cos(r568030);
double r568032 = r568023 * r568031;
double r568033 = 1.9652642423881642e+152;
bool r568034 = r568032 <= r568033;
double r568035 = cos(r568024);
double r568036 = 1.0;
double r568037 = r568036 / r568028;
double r568038 = cbrt(r568037);
double r568039 = -1.0;
double r568040 = cbrt(r568039);
double r568041 = 2.0;
double r568042 = pow(r568040, r568041);
double r568043 = 0.3333333333333333;
double r568044 = cbrt(r568043);
double r568045 = pow(r568044, r568041);
double r568046 = r568026 * r568045;
double r568047 = r568025 * r568046;
double r568048 = r568042 * r568047;
double r568049 = r568038 * r568048;
double r568050 = cos(r568049);
double r568051 = r568035 * r568050;
double r568052 = sin(r568024);
double r568053 = cbrt(r568029);
double r568054 = r568053 * r568053;
double r568055 = sqrt(r568028);
double r568056 = r568025 / r568055;
double r568057 = cbrt(r568056);
double r568058 = r568026 / r568055;
double r568059 = cbrt(r568058);
double r568060 = r568057 * r568059;
double r568061 = r568054 * r568060;
double r568062 = -r568061;
double r568063 = sin(r568062);
double r568064 = r568052 * r568063;
double r568065 = r568051 - r568064;
double r568066 = r568023 * r568065;
double r568067 = a;
double r568068 = b;
double r568069 = r568068 * r568028;
double r568070 = r568067 / r568069;
double r568071 = r568066 - r568070;
double r568072 = 0.5;
double r568073 = pow(r568024, r568041);
double r568074 = r568072 * r568073;
double r568075 = r568036 - r568074;
double r568076 = r568023 * r568075;
double r568077 = r568076 - r568070;
double r568078 = r568034 ? r568071 : r568077;
return r568078;
}




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.6 |
|---|---|
| Target | 18.6 |
| Herbie | 17.8 |
if (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) < 1.9652642423881642e+152Initial program 14.5
rmApplied add-cube-cbrt14.5
rmApplied add-sqr-sqrt14.4
Applied times-frac14.5
Applied cbrt-prod14.5
rmApplied sub-neg14.5
Applied cos-sum13.9
Simplified13.9
Taylor expanded around -inf 13.9
Simplified13.9
if 1.9652642423881642e+152 < (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) Initial program 62.5
Taylor expanded around 0 44.3
Final simplification17.8
herbie shell --seed 2019304
(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))))