\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.9999999999999864552790995730902068316936:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos \left(\frac{z \cdot t}{3}\right) \cdot \cos y - \sin y \cdot \left(\sqrt[3]{{\left(\sqrt[3]{\sin \left(\frac{z}{\frac{3}{t}}\right)}\right)}^{6}} \cdot \left(-\sqrt[3]{\sin \left(\frac{z}{\frac{3}{t}}\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 r620966 = 2.0;
double r620967 = x;
double r620968 = sqrt(r620967);
double r620969 = r620966 * r620968;
double r620970 = y;
double r620971 = z;
double r620972 = t;
double r620973 = r620971 * r620972;
double r620974 = 3.0;
double r620975 = r620973 / r620974;
double r620976 = r620970 - r620975;
double r620977 = cos(r620976);
double r620978 = r620969 * r620977;
double r620979 = a;
double r620980 = b;
double r620981 = r620980 * r620974;
double r620982 = r620979 / r620981;
double r620983 = r620978 - r620982;
return r620983;
}
double f(double x, double y, double z, double t, double a, double b) {
double r620984 = y;
double r620985 = z;
double r620986 = t;
double r620987 = r620985 * r620986;
double r620988 = 3.0;
double r620989 = r620987 / r620988;
double r620990 = r620984 - r620989;
double r620991 = cos(r620990);
double r620992 = 0.9999999999999865;
bool r620993 = r620991 <= r620992;
double r620994 = 2.0;
double r620995 = x;
double r620996 = sqrt(r620995);
double r620997 = r620994 * r620996;
double r620998 = cos(r620989);
double r620999 = cos(r620984);
double r621000 = r620998 * r620999;
double r621001 = sin(r620984);
double r621002 = r620988 / r620986;
double r621003 = r620985 / r621002;
double r621004 = sin(r621003);
double r621005 = cbrt(r621004);
double r621006 = 6.0;
double r621007 = pow(r621005, r621006);
double r621008 = cbrt(r621007);
double r621009 = -r621005;
double r621010 = r621008 * r621009;
double r621011 = r621001 * r621010;
double r621012 = r621000 - r621011;
double r621013 = r620997 * r621012;
double r621014 = a;
double r621015 = b;
double r621016 = r621015 * r620988;
double r621017 = r621014 / r621016;
double r621018 = r621013 - r621017;
double r621019 = 1.0;
double r621020 = 0.5;
double r621021 = 2.0;
double r621022 = pow(r620984, r621021);
double r621023 = r621020 * r621022;
double r621024 = r621019 - r621023;
double r621025 = r620997 * r621024;
double r621026 = r621025 - r621017;
double r621027 = r620993 ? r621018 : r621026;
return r621027;
}




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.5 |
| Herbie | 17.6 |
if (cos (- y (/ (* z t) 3.0))) < 0.9999999999999865Initial program 19.6
rmApplied sub-neg19.6
Applied cos-sum18.9
Simplified18.9
rmApplied add-cbrt-cube18.9
Simplified18.9
rmApplied add-cube-cbrt18.9
Applied unpow-prod-down18.9
Applied cbrt-prod18.9
Simplified18.9
Simplified18.9
if 0.9999999999999865 < (cos (- y (/ (* z t) 3.0))) Initial program 22.0
Taylor expanded around 0 15.5
Final simplification17.6
herbie shell --seed 2019208
(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))))