\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}\;y \le -2.711112522981125:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \sqrt[3]{{\left(\cos \left(y - \frac{z \cdot t}{3}\right)\right)}^{3}} - \frac{a}{b \cdot 3}\\
\mathbf{elif}\;y \le 2.4348734333899417 \cdot 10^{-18}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(1 - \frac{1}{2} \cdot {y}^{2}\right) - \frac{a}{b \cdot 3}\\
\mathbf{else}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right) - \frac{1}{b} \cdot \frac{a}{3}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r779722 = 2.0;
double r779723 = x;
double r779724 = sqrt(r779723);
double r779725 = r779722 * r779724;
double r779726 = y;
double r779727 = z;
double r779728 = t;
double r779729 = r779727 * r779728;
double r779730 = 3.0;
double r779731 = r779729 / r779730;
double r779732 = r779726 - r779731;
double r779733 = cos(r779732);
double r779734 = r779725 * r779733;
double r779735 = a;
double r779736 = b;
double r779737 = r779736 * r779730;
double r779738 = r779735 / r779737;
double r779739 = r779734 - r779738;
return r779739;
}
double f(double x, double y, double z, double t, double a, double b) {
double r779740 = y;
double r779741 = -2.711112522981125;
bool r779742 = r779740 <= r779741;
double r779743 = 2.0;
double r779744 = x;
double r779745 = sqrt(r779744);
double r779746 = r779743 * r779745;
double r779747 = z;
double r779748 = t;
double r779749 = r779747 * r779748;
double r779750 = 3.0;
double r779751 = r779749 / r779750;
double r779752 = r779740 - r779751;
double r779753 = cos(r779752);
double r779754 = 3.0;
double r779755 = pow(r779753, r779754);
double r779756 = cbrt(r779755);
double r779757 = r779746 * r779756;
double r779758 = a;
double r779759 = b;
double r779760 = r779759 * r779750;
double r779761 = r779758 / r779760;
double r779762 = r779757 - r779761;
double r779763 = 2.4348734333899417e-18;
bool r779764 = r779740 <= r779763;
double r779765 = 1.0;
double r779766 = 0.5;
double r779767 = 2.0;
double r779768 = pow(r779740, r779767);
double r779769 = r779766 * r779768;
double r779770 = r779765 - r779769;
double r779771 = r779746 * r779770;
double r779772 = r779771 - r779761;
double r779773 = cos(r779740);
double r779774 = 0.3333333333333333;
double r779775 = r779748 * r779747;
double r779776 = r779774 * r779775;
double r779777 = cos(r779776);
double r779778 = r779773 * r779777;
double r779779 = sin(r779740);
double r779780 = sin(r779751);
double r779781 = r779779 * r779780;
double r779782 = r779778 + r779781;
double r779783 = r779746 * r779782;
double r779784 = r779765 / r779759;
double r779785 = r779758 / r779750;
double r779786 = r779784 * r779785;
double r779787 = r779783 - r779786;
double r779788 = r779764 ? r779772 : r779787;
double r779789 = r779742 ? r779762 : r779788;
return r779789;
}




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.5 |
|---|---|
| Target | 18.5 |
| Herbie | 18.9 |
if y < -2.711112522981125Initial program 21.1
rmApplied add-cbrt-cube21.2
Simplified21.2
if -2.711112522981125 < y < 2.4348734333899417e-18Initial program 19.6
Taylor expanded around 0 16.6
if 2.4348734333899417e-18 < y Initial program 21.5
rmApplied cos-diff20.7
Taylor expanded around inf 20.8
rmApplied *-un-lft-identity20.8
Applied times-frac20.8
Final simplification18.9
herbie shell --seed 2020047
(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))))