\frac{\left(\frac{8}{3} \cdot \sin \left(x \cdot 0.5\right)\right) \cdot \sin \left(x \cdot 0.5\right)}{\sin x}\frac{8 \cdot \frac{\sin \left(\frac{1}{2} \cdot x\right)}{3}}{\frac{\sin x}{\sin \left(\frac{1}{2} \cdot x\right)}}double f(double x) {
double r612151 = 8.0;
double r612152 = 3.0;
double r612153 = r612151 / r612152;
double r612154 = x;
double r612155 = 0.5;
double r612156 = r612154 * r612155;
double r612157 = sin(r612156);
double r612158 = r612153 * r612157;
double r612159 = r612158 * r612157;
double r612160 = sin(r612154);
double r612161 = r612159 / r612160;
return r612161;
}
double f(double x) {
double r612162 = 8.0;
double r612163 = 1.0;
double r612164 = 2.0;
double r612165 = r612163 / r612164;
double r612166 = x;
double r612167 = r612165 * r612166;
double r612168 = sin(r612167);
double r612169 = 3.0;
double r612170 = r612168 / r612169;
double r612171 = r612162 * r612170;
double r612172 = sin(r612166);
double r612173 = r612172 / r612168;
double r612174 = r612171 / r612173;
return r612174;
}




Bits error versus x
Results
| Original | 15.1 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 15.1
rmApplied associate-/l*0.5
Simplified0.5
rmApplied div-inv0.5
Applied associate-*l*0.5
Simplified0.3
Final simplification0.3
herbie shell --seed 2019304
(FPCore (x)
:name "Graphics.Rasterific.Svg.PathConverter:segmentToBezier from rasterific-svg-0.2.3.1, A"
:precision binary64
:herbie-target
(/ (/ (* 8 (sin (* x 0.5))) 3) (/ (sin x) (sin (* x 0.5))))
(/ (* (* (/ 8 3) (sin (* x 0.5))) (sin (* x 0.5))) (sin x)))