\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 -8.150590203871196948341785027487202501958 \cdot 10^{263}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(1 - \frac{1}{2} \cdot {y}^{2}\right) - \frac{a}{b \cdot 3}\\
\mathbf{elif}\;z \cdot t \le -7.209482062165938737652173765899207053792 \cdot 10^{58}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \left(\sqrt[3]{\frac{z \cdot t}{3}} \cdot \sqrt[3]{\frac{z \cdot t}{3}}\right) \cdot \sqrt[3]{\frac{z \cdot t}{3}}\right) - \frac{a}{b \cdot 3}\\
\mathbf{elif}\;z \cdot t \le 6.844977881112784128232038768992631634214 \cdot 10^{294}:\\
\;\;\;\;\left(\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \log \left(e^{\cos \left(0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right)}\right)\right) + \left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\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 r624962 = 2.0;
double r624963 = x;
double r624964 = sqrt(r624963);
double r624965 = r624962 * r624964;
double r624966 = y;
double r624967 = z;
double r624968 = t;
double r624969 = r624967 * r624968;
double r624970 = 3.0;
double r624971 = r624969 / r624970;
double r624972 = r624966 - r624971;
double r624973 = cos(r624972);
double r624974 = r624965 * r624973;
double r624975 = a;
double r624976 = b;
double r624977 = r624976 * r624970;
double r624978 = r624975 / r624977;
double r624979 = r624974 - r624978;
return r624979;
}
double f(double x, double y, double z, double t, double a, double b) {
double r624980 = z;
double r624981 = t;
double r624982 = r624980 * r624981;
double r624983 = -8.150590203871197e+263;
bool r624984 = r624982 <= r624983;
double r624985 = 2.0;
double r624986 = x;
double r624987 = sqrt(r624986);
double r624988 = r624985 * r624987;
double r624989 = 1.0;
double r624990 = 0.5;
double r624991 = y;
double r624992 = 2.0;
double r624993 = pow(r624991, r624992);
double r624994 = r624990 * r624993;
double r624995 = r624989 - r624994;
double r624996 = r624988 * r624995;
double r624997 = a;
double r624998 = b;
double r624999 = 3.0;
double r625000 = r624998 * r624999;
double r625001 = r624997 / r625000;
double r625002 = r624996 - r625001;
double r625003 = -7.209482062165939e+58;
bool r625004 = r624982 <= r625003;
double r625005 = r624982 / r624999;
double r625006 = cbrt(r625005);
double r625007 = r625006 * r625006;
double r625008 = r625007 * r625006;
double r625009 = r624991 - r625008;
double r625010 = cos(r625009);
double r625011 = r624988 * r625010;
double r625012 = r625011 - r625001;
double r625013 = 6.844977881112784e+294;
bool r625014 = r624982 <= r625013;
double r625015 = cos(r624991);
double r625016 = 0.3333333333333333;
double r625017 = r624981 * r624980;
double r625018 = r625016 * r625017;
double r625019 = cos(r625018);
double r625020 = exp(r625019);
double r625021 = log(r625020);
double r625022 = r625015 * r625021;
double r625023 = r624988 * r625022;
double r625024 = sin(r624991);
double r625025 = sin(r625018);
double r625026 = r625024 * r625025;
double r625027 = r624988 * r625026;
double r625028 = r625023 + r625027;
double r625029 = r625028 - r625001;
double r625030 = r625014 ? r625029 : r625002;
double r625031 = r625004 ? r625012 : r625030;
double r625032 = r624984 ? r625002 : r625031;
return r625032;
}




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.3 |
|---|---|
| Target | 18.3 |
| Herbie | 17.8 |
if (* z t) < -8.150590203871197e+263 or 6.844977881112784e+294 < (* z t) Initial program 59.2
Taylor expanded around 0 45.3
if -8.150590203871197e+263 < (* z t) < -7.209482062165939e+58Initial program 33.0
rmApplied add-cube-cbrt33.0
if -7.209482062165939e+58 < (* z t) < 6.844977881112784e+294Initial program 10.2
rmApplied cos-diff9.6
Applied distribute-lft-in9.6
Taylor expanded around inf 9.7
Taylor expanded around inf 9.6
rmApplied add-log-exp9.6
Final simplification17.8
herbie shell --seed 2019298
(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))))