\sin \left(x + \varepsilon\right) - \sin x
\sqrt[3]{{\left(\sin x \cdot \left(\cos \varepsilon - 1\right)\right)}^{3}} + \cos x \cdot \sin \varepsilondouble f(double x, double eps) {
double r97699 = x;
double r97700 = eps;
double r97701 = r97699 + r97700;
double r97702 = sin(r97701);
double r97703 = sin(r97699);
double r97704 = r97702 - r97703;
return r97704;
}
double f(double x, double eps) {
double r97705 = x;
double r97706 = sin(r97705);
double r97707 = eps;
double r97708 = cos(r97707);
double r97709 = 1.0;
double r97710 = r97708 - r97709;
double r97711 = r97706 * r97710;
double r97712 = 3.0;
double r97713 = pow(r97711, r97712);
double r97714 = cbrt(r97713);
double r97715 = cos(r97705);
double r97716 = sin(r97707);
double r97717 = r97715 * r97716;
double r97718 = r97714 + r97717;
return r97718;
}




Bits error versus x




Bits error versus eps
Results
| Original | 37.0 |
|---|---|
| Target | 15.5 |
| Herbie | 0.4 |
Initial program 37.0
rmApplied sin-sum21.4
Taylor expanded around inf 21.4
Simplified0.4
rmApplied add-cbrt-cube0.4
Applied add-cbrt-cube0.4
Applied cbrt-unprod0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020060
(FPCore (x eps)
:name "2sin (example 3.3)"
:precision binary64
:herbie-target
(* 2 (* (cos (+ x (/ eps 2))) (sin (/ eps 2))))
(- (sin (+ x eps)) (sin x)))