\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:\\
\;\;\;\;\log \left({\left(e^{2 \cdot \sqrt{x}}\right)}^{\left(\mathsf{fma}\left(\cos y, \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right), \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right)\right)}\right) - \frac{\frac{a}{b}}{3}\\
\mathbf{elif}\;z \cdot t \le 2.13358673845001374 \cdot 10^{302}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right) + \log \left(e^{\sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)}\right)\right) - \frac{\frac{a}{b}}{3}\\
\mathbf{else}:\\
\;\;\;\;\log \left({\left(e^{2 \cdot \sqrt{x}}\right)}^{\left(\mathsf{fma}\left(\cos y, \cos \left(\frac{z \cdot t}{3}\right), \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\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 r773939 = 2.0;
double r773940 = x;
double r773941 = sqrt(r773940);
double r773942 = r773939 * r773941;
double r773943 = y;
double r773944 = z;
double r773945 = t;
double r773946 = r773944 * r773945;
double r773947 = 3.0;
double r773948 = r773946 / r773947;
double r773949 = r773943 - r773948;
double r773950 = cos(r773949);
double r773951 = r773942 * r773950;
double r773952 = a;
double r773953 = b;
double r773954 = r773953 * r773947;
double r773955 = r773952 / r773954;
double r773956 = r773951 - r773955;
return r773956;
}
double f(double x, double y, double z, double t, double a, double b) {
double r773957 = z;
double r773958 = t;
double r773959 = r773957 * r773958;
double r773960 = -inf.0;
bool r773961 = r773959 <= r773960;
double r773962 = 2.0;
double r773963 = x;
double r773964 = sqrt(r773963);
double r773965 = r773962 * r773964;
double r773966 = exp(r773965);
double r773967 = y;
double r773968 = cos(r773967);
double r773969 = 0.3333333333333333;
double r773970 = r773958 * r773957;
double r773971 = r773969 * r773970;
double r773972 = cos(r773971);
double r773973 = sin(r773967);
double r773974 = 3.0;
double r773975 = r773959 / r773974;
double r773976 = sin(r773975);
double r773977 = r773973 * r773976;
double r773978 = fma(r773968, r773972, r773977);
double r773979 = pow(r773966, r773978);
double r773980 = log(r773979);
double r773981 = a;
double r773982 = b;
double r773983 = r773981 / r773982;
double r773984 = r773983 / r773974;
double r773985 = r773980 - r773984;
double r773986 = 2.1335867384500137e+302;
bool r773987 = r773959 <= r773986;
double r773988 = r773968 * r773972;
double r773989 = exp(r773977);
double r773990 = log(r773989);
double r773991 = r773988 + r773990;
double r773992 = r773965 * r773991;
double r773993 = r773992 - r773984;
double r773994 = cos(r773975);
double r773995 = fma(r773968, r773994, r773977);
double r773996 = pow(r773966, r773995);
double r773997 = log(r773996);
double r773998 = r773982 * r773974;
double r773999 = r773981 / r773998;
double r774000 = r773997 - r773999;
double r774001 = r773987 ? r773993 : r774000;
double r774002 = r773961 ? r773985 : r774001;
return r774002;
}




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 | 20.5 |
|---|---|
| Target | 18.5 |
| Herbie | 18.2 |
if (* z t) < -inf.0Initial program 64.0
rmApplied cos-diff64.0
Taylor expanded around inf 64.0
rmApplied associate-/r*64.0
rmApplied add-log-exp64.0
Simplified48.5
if -inf.0 < (* z t) < 2.1335867384500137e+302Initial program 14.1
rmApplied cos-diff13.7
Taylor expanded around inf 13.7
rmApplied associate-/r*13.7
rmApplied add-log-exp13.7
if 2.1335867384500137e+302 < (* z t) Initial program 63.0
rmApplied cos-diff63.0
rmApplied add-log-exp63.2
Simplified47.7
Final simplification18.2
herbie shell --seed 2020047 +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))))