\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{\frac{8}{3} \cdot \sin \left(x \cdot 0.5\right)}{\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}} \cdot \frac{\sin \left(0.5 \cdot x\right)}{\sqrt[3]{\sin x}}double f(double x) {
double r641567 = 8.0;
double r641568 = 3.0;
double r641569 = r641567 / r641568;
double r641570 = x;
double r641571 = 0.5;
double r641572 = r641570 * r641571;
double r641573 = sin(r641572);
double r641574 = r641569 * r641573;
double r641575 = r641574 * r641573;
double r641576 = sin(r641570);
double r641577 = r641575 / r641576;
return r641577;
}
double f(double x) {
double r641578 = 8.0;
double r641579 = 3.0;
double r641580 = r641578 / r641579;
double r641581 = x;
double r641582 = 0.5;
double r641583 = r641581 * r641582;
double r641584 = sin(r641583);
double r641585 = r641580 * r641584;
double r641586 = sin(r641581);
double r641587 = cbrt(r641586);
double r641588 = r641587 * r641587;
double r641589 = r641585 / r641588;
double r641590 = r641582 * r641581;
double r641591 = sin(r641590);
double r641592 = r641591 / r641587;
double r641593 = r641589 * r641592;
return r641593;
}




Bits error versus x
Results
| Original | 14.8 |
|---|---|
| Target | 0.3 |
| Herbie | 1.4 |
Initial program 14.8
rmApplied add-cube-cbrt15.4
Applied times-frac1.4
Simplified1.4
Final simplification1.4
herbie shell --seed 2020062 +o rules:numerics
(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)))