\sin \left(x + \varepsilon\right) - \sin x
\left(\left(\cos x \cdot \cos \left(\frac{1}{2} \cdot \varepsilon\right) - \sqrt[3]{\left(\sin x \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right) \cdot \left(\left(\sin x \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right) \cdot \left(\sin x \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right)\right)}\right) \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right) \cdot 2double f(double x, double eps) {
double r3482732 = x;
double r3482733 = eps;
double r3482734 = r3482732 + r3482733;
double r3482735 = sin(r3482734);
double r3482736 = sin(r3482732);
double r3482737 = r3482735 - r3482736;
return r3482737;
}
double f(double x, double eps) {
double r3482738 = x;
double r3482739 = cos(r3482738);
double r3482740 = 0.5;
double r3482741 = eps;
double r3482742 = r3482740 * r3482741;
double r3482743 = cos(r3482742);
double r3482744 = r3482739 * r3482743;
double r3482745 = sin(r3482738);
double r3482746 = sin(r3482742);
double r3482747 = r3482745 * r3482746;
double r3482748 = r3482747 * r3482747;
double r3482749 = r3482747 * r3482748;
double r3482750 = cbrt(r3482749);
double r3482751 = r3482744 - r3482750;
double r3482752 = r3482751 * r3482746;
double r3482753 = 2.0;
double r3482754 = r3482752 * r3482753;
return r3482754;
}




Bits error versus x




Bits error versus eps
Results
| Original | 37.0 |
|---|---|
| Target | 15.0 |
| Herbie | 0.4 |
Initial program 37.0
rmApplied diff-sin37.3
Simplified15.0
Taylor expanded around -inf 15.0
Simplified15.0
rmApplied cos-sum0.3
rmApplied add-cbrt-cube0.4
Final simplification0.4
herbie shell --seed 2019144
(FPCore (x eps)
:name "2sin (example 3.3)"
:herbie-target
(* 2 (* (cos (+ x (/ eps 2))) (sin (/ eps 2))))
(- (sin (+ x eps)) (sin x)))