\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.99990718372146614:\\
\;\;\;\;\left(\left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right) \cdot \left(2 \cdot \sqrt{x}\right) + \left(\sqrt[3]{\left(\sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right) \cdot \sin y\right) \cdot \left(2 \cdot \sqrt{x}\right)} \cdot \sqrt[3]{\left(\sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right) \cdot \sin y\right) \cdot \left(2 \cdot \sqrt{x}\right)}\right) \cdot \sqrt[3]{\left(\sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right) \cdot \sin y\right) \cdot \left(2 \cdot \sqrt{x}\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 r759977 = 2.0;
double r759978 = x;
double r759979 = sqrt(r759978);
double r759980 = r759977 * r759979;
double r759981 = y;
double r759982 = z;
double r759983 = t;
double r759984 = r759982 * r759983;
double r759985 = 3.0;
double r759986 = r759984 / r759985;
double r759987 = r759981 - r759986;
double r759988 = cos(r759987);
double r759989 = r759980 * r759988;
double r759990 = a;
double r759991 = b;
double r759992 = r759991 * r759985;
double r759993 = r759990 / r759992;
double r759994 = r759989 - r759993;
return r759994;
}
double f(double x, double y, double z, double t, double a, double b) {
double r759995 = y;
double r759996 = z;
double r759997 = t;
double r759998 = r759996 * r759997;
double r759999 = 3.0;
double r760000 = r759998 / r759999;
double r760001 = r759995 - r760000;
double r760002 = cos(r760001);
double r760003 = 0.9999071837214661;
bool r760004 = r760002 <= r760003;
double r760005 = cos(r759995);
double r760006 = 0.3333333333333333;
double r760007 = r759997 * r759996;
double r760008 = r760006 * r760007;
double r760009 = cos(r760008);
double r760010 = r760005 * r760009;
double r760011 = 2.0;
double r760012 = x;
double r760013 = sqrt(r760012);
double r760014 = r760011 * r760013;
double r760015 = r760010 * r760014;
double r760016 = sin(r760008);
double r760017 = sin(r759995);
double r760018 = r760016 * r760017;
double r760019 = r760018 * r760014;
double r760020 = cbrt(r760019);
double r760021 = r760020 * r760020;
double r760022 = r760021 * r760020;
double r760023 = r760015 + r760022;
double r760024 = a;
double r760025 = b;
double r760026 = r760025 * r759999;
double r760027 = r760024 / r760026;
double r760028 = r760023 - r760027;
double r760029 = 1.0;
double r760030 = 0.5;
double r760031 = 2.0;
double r760032 = pow(r759995, r760031);
double r760033 = r760030 * r760032;
double r760034 = r760029 - r760033;
double r760035 = r760014 * r760034;
double r760036 = r760035 - r760027;
double r760037 = r760004 ? r760028 : r760036;
return r760037;
}




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.4 |
| Herbie | 17.8 |
if (cos (- y (/ (* z t) 3.0))) < 0.9999071837214661Initial program 19.9
rmApplied cos-diff19.4
Applied distribute-lft-in19.4
Simplified19.4
Simplified19.4
Taylor expanded around inf 19.4
Taylor expanded around inf 19.3
rmApplied add-cube-cbrt19.3
if 0.9999071837214661 < (cos (- y (/ (* z t) 3.0))) Initial program 20.9
Taylor expanded around 0 15.2
Final simplification17.8
herbie shell --seed 2020046
(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))))