\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.999999999999994670929481799248605966568:\\
\;\;\;\;\left(\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right)\right) + \left(\sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right)} \cdot \sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right)}\right) \cdot \sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(\frac{z \cdot t}{3}\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 r567945 = 2.0;
double r567946 = x;
double r567947 = sqrt(r567946);
double r567948 = r567945 * r567947;
double r567949 = y;
double r567950 = z;
double r567951 = t;
double r567952 = r567950 * r567951;
double r567953 = 3.0;
double r567954 = r567952 / r567953;
double r567955 = r567949 - r567954;
double r567956 = cos(r567955);
double r567957 = r567948 * r567956;
double r567958 = a;
double r567959 = b;
double r567960 = r567959 * r567953;
double r567961 = r567958 / r567960;
double r567962 = r567957 - r567961;
return r567962;
}
double f(double x, double y, double z, double t, double a, double b) {
double r567963 = y;
double r567964 = z;
double r567965 = t;
double r567966 = r567964 * r567965;
double r567967 = 3.0;
double r567968 = r567966 / r567967;
double r567969 = r567963 - r567968;
double r567970 = cos(r567969);
double r567971 = 0.9999999999999947;
bool r567972 = r567970 <= r567971;
double r567973 = 2.0;
double r567974 = x;
double r567975 = sqrt(r567974);
double r567976 = r567973 * r567975;
double r567977 = cos(r567963);
double r567978 = 0.3333333333333333;
double r567979 = r567965 * r567964;
double r567980 = r567978 * r567979;
double r567981 = cos(r567980);
double r567982 = r567977 * r567981;
double r567983 = r567976 * r567982;
double r567984 = sin(r567963);
double r567985 = sin(r567968);
double r567986 = r567984 * r567985;
double r567987 = r567976 * r567986;
double r567988 = cbrt(r567987);
double r567989 = r567988 * r567988;
double r567990 = r567989 * r567988;
double r567991 = r567983 + r567990;
double r567992 = a;
double r567993 = b;
double r567994 = r567993 * r567967;
double r567995 = r567992 / r567994;
double r567996 = r567991 - r567995;
double r567997 = 1.0;
double r567998 = 0.5;
double r567999 = 2.0;
double r568000 = pow(r567963, r567999);
double r568001 = r567998 * r568000;
double r568002 = r567997 - r568001;
double r568003 = r567976 * r568002;
double r568004 = r568003 - r567995;
double r568005 = r567972 ? r567996 : r568004;
return r568005;
}




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.6 |
|---|---|
| Target | 18.5 |
| Herbie | 17.7 |
if (cos (- y (/ (* z t) 3.0))) < 0.9999999999999947Initial program 19.6
rmApplied cos-diff18.8
Applied distribute-lft-in18.8
Taylor expanded around inf 18.8
rmApplied add-cube-cbrt18.8
if 0.9999999999999947 < (cos (- y (/ (* z t) 3.0))) Initial program 22.3
Taylor expanded around 0 15.8
Final simplification17.7
herbie shell --seed 2019326
(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))))