\sin \left(x + \varepsilon\right) - \sin x
\sin x \cdot \sqrt[3]{{\left(\cos \varepsilon - 1\right)}^{3}} + \cos x \cdot \sin \varepsilondouble f(double x, double eps) {
double r113974 = x;
double r113975 = eps;
double r113976 = r113974 + r113975;
double r113977 = sin(r113976);
double r113978 = sin(r113974);
double r113979 = r113977 - r113978;
return r113979;
}
double f(double x, double eps) {
double r113980 = x;
double r113981 = sin(r113980);
double r113982 = eps;
double r113983 = cos(r113982);
double r113984 = 1.0;
double r113985 = r113983 - r113984;
double r113986 = 3.0;
double r113987 = pow(r113985, r113986);
double r113988 = cbrt(r113987);
double r113989 = r113981 * r113988;
double r113990 = cos(r113980);
double r113991 = sin(r113982);
double r113992 = r113990 * r113991;
double r113993 = r113989 + r113992;
return r113993;
}




Bits error versus x




Bits error versus eps
Results
| Original | 37.6 |
|---|---|
| Target | 15.4 |
| Herbie | 0.4 |
Initial program 37.6
rmApplied sin-sum22.1
Taylor expanded around inf 22.1
Simplified0.4
rmApplied add-cbrt-cube0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020025
(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)))