\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 = -\infty:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \mathsf{fma}\left(\frac{-1}{2}, {y}^{2}, 1\right) - \frac{a}{b \cdot 3}\\
\mathbf{elif}\;z \cdot t \le 1.198305287737106264207051230853461279422 \cdot 10^{307}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(\frac{\frac{z}{{\left(\sqrt[3]{3}\right)}^{2}} \cdot t}{\sqrt[3]{3}}\right) - \left(\left(\sqrt[3]{\sin \left(\frac{z}{\frac{3}{t}}\right)} \cdot \sqrt[3]{\sin \left(\frac{z}{\frac{3}{t}}\right)}\right) \cdot \sqrt[3]{\sin \left(\frac{z}{\frac{3}{t}}\right)}\right) \cdot \left(-\sin y\right)\right) - \frac{a}{b \cdot 3}\\
\mathbf{else}:\\
\;\;\;\;\log \left({\left(e^{2 \cdot \sqrt{x}}\right)}^{\left(\cos \left(y - \frac{z}{3} \cdot t\right)\right)}\right) - \frac{a}{b \cdot 3}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r864814 = 2.0;
double r864815 = x;
double r864816 = sqrt(r864815);
double r864817 = r864814 * r864816;
double r864818 = y;
double r864819 = z;
double r864820 = t;
double r864821 = r864819 * r864820;
double r864822 = 3.0;
double r864823 = r864821 / r864822;
double r864824 = r864818 - r864823;
double r864825 = cos(r864824);
double r864826 = r864817 * r864825;
double r864827 = a;
double r864828 = b;
double r864829 = r864828 * r864822;
double r864830 = r864827 / r864829;
double r864831 = r864826 - r864830;
return r864831;
}
double f(double x, double y, double z, double t, double a, double b) {
double r864832 = z;
double r864833 = t;
double r864834 = r864832 * r864833;
double r864835 = -inf.0;
bool r864836 = r864834 <= r864835;
double r864837 = 2.0;
double r864838 = x;
double r864839 = sqrt(r864838);
double r864840 = r864837 * r864839;
double r864841 = -0.5;
double r864842 = y;
double r864843 = 2.0;
double r864844 = pow(r864842, r864843);
double r864845 = 1.0;
double r864846 = fma(r864841, r864844, r864845);
double r864847 = r864840 * r864846;
double r864848 = a;
double r864849 = b;
double r864850 = 3.0;
double r864851 = r864849 * r864850;
double r864852 = r864848 / r864851;
double r864853 = r864847 - r864852;
double r864854 = 1.1983052877371063e+307;
bool r864855 = r864834 <= r864854;
double r864856 = cos(r864842);
double r864857 = cbrt(r864850);
double r864858 = pow(r864857, r864843);
double r864859 = r864832 / r864858;
double r864860 = r864859 * r864833;
double r864861 = r864860 / r864857;
double r864862 = cos(r864861);
double r864863 = r864856 * r864862;
double r864864 = r864850 / r864833;
double r864865 = r864832 / r864864;
double r864866 = sin(r864865);
double r864867 = cbrt(r864866);
double r864868 = r864867 * r864867;
double r864869 = r864868 * r864867;
double r864870 = sin(r864842);
double r864871 = -r864870;
double r864872 = r864869 * r864871;
double r864873 = r864863 - r864872;
double r864874 = r864840 * r864873;
double r864875 = r864874 - r864852;
double r864876 = exp(r864840);
double r864877 = r864832 / r864850;
double r864878 = r864877 * r864833;
double r864879 = r864842 - r864878;
double r864880 = cos(r864879);
double r864881 = pow(r864876, r864880);
double r864882 = log(r864881);
double r864883 = r864882 - r864852;
double r864884 = r864855 ? r864875 : r864883;
double r864885 = r864836 ? r864853 : r864884;
return r864885;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
| Original | 21.5 |
|---|---|
| Target | 19.4 |
| Herbie | 18.6 |
if (* z t) < -inf.0Initial program 64.0
Taylor expanded around 0 44.2
Simplified44.2
if -inf.0 < (* z t) < 1.1983052877371063e+307Initial program 14.9
rmApplied add-cube-cbrt14.9
Applied associate-/r*14.8
Simplified14.8
rmApplied add-cube-cbrt14.9
Applied associate-*r*14.9
Simplified14.9
rmApplied sub-neg14.9
Applied cos-sum14.5
Simplified14.4
Simplified14.3
rmApplied add-cube-cbrt14.3
Simplified14.4
Simplified14.4
if 1.1983052877371063e+307 < (* z t) Initial program 64.0
rmApplied add-cube-cbrt64.0
Applied associate-/r*64.0
Simplified64.0
rmApplied add-log-exp64.0
Simplified47.3
Final simplification18.6
herbie shell --seed 2019351 +o rules:numerics
(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))))