\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(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right) + \left(\sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right)} \cdot \sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right)}\right) \cdot \sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \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 r703045 = 2.0;
double r703046 = x;
double r703047 = sqrt(r703046);
double r703048 = r703045 * r703047;
double r703049 = y;
double r703050 = z;
double r703051 = t;
double r703052 = r703050 * r703051;
double r703053 = 3.0;
double r703054 = r703052 / r703053;
double r703055 = r703049 - r703054;
double r703056 = cos(r703055);
double r703057 = r703048 * r703056;
double r703058 = a;
double r703059 = b;
double r703060 = r703059 * r703053;
double r703061 = r703058 / r703060;
double r703062 = r703057 - r703061;
return r703062;
}
double f(double x, double y, double z, double t, double a, double b) {
double r703063 = y;
double r703064 = z;
double r703065 = t;
double r703066 = r703064 * r703065;
double r703067 = 3.0;
double r703068 = r703066 / r703067;
double r703069 = r703063 - r703068;
double r703070 = cos(r703069);
double r703071 = 0.9999071837214661;
bool r703072 = r703070 <= r703071;
double r703073 = 2.0;
double r703074 = x;
double r703075 = sqrt(r703074);
double r703076 = r703073 * r703075;
double r703077 = cos(r703063);
double r703078 = 0.3333333333333333;
double r703079 = r703065 * r703064;
double r703080 = r703078 * r703079;
double r703081 = cos(r703080);
double r703082 = r703077 * r703081;
double r703083 = r703076 * r703082;
double r703084 = sin(r703063);
double r703085 = sin(r703080);
double r703086 = r703084 * r703085;
double r703087 = r703076 * r703086;
double r703088 = cbrt(r703087);
double r703089 = r703088 * r703088;
double r703090 = r703089 * r703088;
double r703091 = r703083 + r703090;
double r703092 = a;
double r703093 = b;
double r703094 = r703093 * r703067;
double r703095 = r703092 / r703094;
double r703096 = r703091 - r703095;
double r703097 = 1.0;
double r703098 = 0.5;
double r703099 = 2.0;
double r703100 = pow(r703063, r703099);
double r703101 = r703098 * r703100;
double r703102 = r703097 - r703101;
double r703103 = r703076 * r703102;
double r703104 = r703103 - r703095;
double r703105 = r703072 ? r703096 : r703104;
return r703105;
}




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
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 +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))))