\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{1}{y} + \left(0.3333333333333333 \cdot \left(x \cdot \frac{x}{y}\right) - \frac{x}{y} \cdot 1.3333333333333333\right)(FPCore (x y) :precision binary64 (/ (* (- 1.0 x) (- 3.0 x)) (* y 3.0)))
(FPCore (x y) :precision binary64 (+ (/ 1.0 y) (- (* 0.3333333333333333 (* x (/ x y))) (* (/ x y) 1.3333333333333333))))
double code(double x, double y) {
return (((double) (((double) (1.0 - x)) * ((double) (3.0 - x)))) / ((double) (y * 3.0)));
}
double code(double x, double y) {
return ((double) ((1.0 / y) + ((double) (((double) (0.3333333333333333 * ((double) (x * (x / y))))) - ((double) ((x / y) * 1.3333333333333333))))));
}




Bits error versus x




Bits error versus y
Results
| Original | 5.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program Error: 5.7 bits
SimplifiedError: 0.4 bits
rmApplied div-invError: 0.5 bits
SimplifiedError: 0.2 bits
Taylor expanded around 0 Error: 5.6 bits
SimplifiedError: 0.2 bits
Final simplificationError: 0.2 bits
herbie shell --seed 2020203
(FPCore (x y)
:name "Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3"
:precision binary64
:herbie-target
(* (/ (- 1.0 x) y) (/ (- 3.0 x) 3.0))
(/ (* (- 1.0 x) (- 3.0 x)) (* y 3.0)))