\left(2.0 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3.0}\right) - \frac{a}{b \cdot 3.0}\begin{array}{l}
\mathbf{if}\;\left(2.0 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3.0}\right) \le 5.545875293905526 \cdot 10^{+147}:\\
\;\;\;\;\left(\sin y \cdot \sin \left(\left(z \cdot t\right) \cdot 0.3333333333333333\right) + \cos y \cdot \cos \left(\left(\sqrt[3]{0.3333333333333333} \cdot \sqrt[3]{0.3333333333333333}\right) \cdot \left(\sqrt[3]{0.3333333333333333} \cdot \left(z \cdot t\right)\right)\right)\right) \cdot \left(2.0 \cdot \sqrt{x}\right) - \frac{a}{3.0 \cdot b}\\
\mathbf{else}:\\
\;\;\;\;\left(2.0 \cdot \sqrt{x}\right) \cdot \left(1 + \frac{-1}{2} \cdot \left(y \cdot y\right)\right) - \frac{a}{3.0 \cdot b}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r37090708 = 2.0;
double r37090709 = x;
double r37090710 = sqrt(r37090709);
double r37090711 = r37090708 * r37090710;
double r37090712 = y;
double r37090713 = z;
double r37090714 = t;
double r37090715 = r37090713 * r37090714;
double r37090716 = 3.0;
double r37090717 = r37090715 / r37090716;
double r37090718 = r37090712 - r37090717;
double r37090719 = cos(r37090718);
double r37090720 = r37090711 * r37090719;
double r37090721 = a;
double r37090722 = b;
double r37090723 = r37090722 * r37090716;
double r37090724 = r37090721 / r37090723;
double r37090725 = r37090720 - r37090724;
return r37090725;
}
double f(double x, double y, double z, double t, double a, double b) {
double r37090726 = 2.0;
double r37090727 = x;
double r37090728 = sqrt(r37090727);
double r37090729 = r37090726 * r37090728;
double r37090730 = y;
double r37090731 = z;
double r37090732 = t;
double r37090733 = r37090731 * r37090732;
double r37090734 = 3.0;
double r37090735 = r37090733 / r37090734;
double r37090736 = r37090730 - r37090735;
double r37090737 = cos(r37090736);
double r37090738 = r37090729 * r37090737;
double r37090739 = 5.545875293905526e+147;
bool r37090740 = r37090738 <= r37090739;
double r37090741 = sin(r37090730);
double r37090742 = 0.3333333333333333;
double r37090743 = r37090733 * r37090742;
double r37090744 = sin(r37090743);
double r37090745 = r37090741 * r37090744;
double r37090746 = cos(r37090730);
double r37090747 = cbrt(r37090742);
double r37090748 = r37090747 * r37090747;
double r37090749 = r37090747 * r37090733;
double r37090750 = r37090748 * r37090749;
double r37090751 = cos(r37090750);
double r37090752 = r37090746 * r37090751;
double r37090753 = r37090745 + r37090752;
double r37090754 = r37090753 * r37090729;
double r37090755 = a;
double r37090756 = b;
double r37090757 = r37090734 * r37090756;
double r37090758 = r37090755 / r37090757;
double r37090759 = r37090754 - r37090758;
double r37090760 = 1.0;
double r37090761 = -0.5;
double r37090762 = r37090730 * r37090730;
double r37090763 = r37090761 * r37090762;
double r37090764 = r37090760 + r37090763;
double r37090765 = r37090729 * r37090764;
double r37090766 = r37090765 - r37090758;
double r37090767 = r37090740 ? r37090759 : r37090766;
return r37090767;
}




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 | 19.8 |
|---|---|
| Target | 17.9 |
| Herbie | 17.4 |
if (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) < 5.545875293905526e+147Initial program 13.8
rmApplied cos-diff13.3
Taylor expanded around inf 13.3
Simplified13.3
rmApplied add-cube-cbrt13.4
Applied associate-*l*13.4
Taylor expanded around inf 13.4
if 5.545875293905526e+147 < (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) Initial program 58.0
Taylor expanded around 0 43.0
Simplified43.0
Final simplification17.4
herbie shell --seed 2019168
(FPCore (x y z t a b)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, K"
:herbie-target
(if (< z -1.3793337487235141e+129) (- (* (* 2.0 (sqrt x)) (cos (- (/ 1 y) (/ (/ 0.3333333333333333 z) t)))) (/ (/ a 3.0) b)) (if (< z 3.516290613555987e+106) (- (* (* (sqrt x) 2.0) (cos (- y (* (/ t 3.0) z)))) (/ (/ a 3.0) b)) (- (* (cos (- y (/ (/ 0.3333333333333333 z) t))) (* 2.0 (sqrt x))) (/ (/ a b) 3.0))))
(- (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) (/ a (* b 3.0))))