\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.999999999999024225:\\
\;\;\;\;\left(\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \sqrt[3]{{\left(\cos \left(\frac{z \cdot t}{3}\right)\right)}^{3}}\right) + \left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \left(\left(\sqrt[3]{\sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)} \cdot \sqrt[3]{\sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)}\right) \cdot \sqrt[3]{\sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\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 r751589 = 2.0;
double r751590 = x;
double r751591 = sqrt(r751590);
double r751592 = r751589 * r751591;
double r751593 = y;
double r751594 = z;
double r751595 = t;
double r751596 = r751594 * r751595;
double r751597 = 3.0;
double r751598 = r751596 / r751597;
double r751599 = r751593 - r751598;
double r751600 = cos(r751599);
double r751601 = r751592 * r751600;
double r751602 = a;
double r751603 = b;
double r751604 = r751603 * r751597;
double r751605 = r751602 / r751604;
double r751606 = r751601 - r751605;
return r751606;
}
double f(double x, double y, double z, double t, double a, double b) {
double r751607 = y;
double r751608 = z;
double r751609 = t;
double r751610 = r751608 * r751609;
double r751611 = 3.0;
double r751612 = r751610 / r751611;
double r751613 = r751607 - r751612;
double r751614 = cos(r751613);
double r751615 = 0.9999999999990242;
bool r751616 = r751614 <= r751615;
double r751617 = 2.0;
double r751618 = x;
double r751619 = sqrt(r751618);
double r751620 = r751617 * r751619;
double r751621 = cos(r751607);
double r751622 = cos(r751612);
double r751623 = 3.0;
double r751624 = pow(r751622, r751623);
double r751625 = cbrt(r751624);
double r751626 = r751621 * r751625;
double r751627 = r751620 * r751626;
double r751628 = sin(r751607);
double r751629 = 0.3333333333333333;
double r751630 = r751609 * r751608;
double r751631 = r751629 * r751630;
double r751632 = sin(r751631);
double r751633 = cbrt(r751632);
double r751634 = r751633 * r751633;
double r751635 = r751634 * r751633;
double r751636 = r751628 * r751635;
double r751637 = r751620 * r751636;
double r751638 = r751627 + r751637;
double r751639 = a;
double r751640 = b;
double r751641 = r751640 * r751611;
double r751642 = r751639 / r751641;
double r751643 = r751638 - r751642;
double r751644 = 1.0;
double r751645 = 0.5;
double r751646 = 2.0;
double r751647 = pow(r751607, r751646);
double r751648 = r751645 * r751647;
double r751649 = r751644 - r751648;
double r751650 = r751620 * r751649;
double r751651 = r751650 - r751642;
double r751652 = r751616 ? r751643 : r751651;
return r751652;
}




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.3 |
| Herbie | 17.8 |
if (cos (- y (/ (* z t) 3.0))) < 0.9999999999990242Initial program 19.4
rmApplied cos-diff18.8
Applied distribute-lft-in18.8
Taylor expanded around inf 18.9
rmApplied add-cbrt-cube18.9
Simplified18.9
rmApplied add-cube-cbrt18.9
if 0.9999999999990242 < (cos (- y (/ (* z t) 3.0))) Initial program 22.7
Taylor expanded around 0 15.9
Final simplification17.8
herbie shell --seed 2020033 +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))))