\frac{\left(1.0 - x\right) \cdot \left(3.0 - x\right)}{y \cdot 3.0}\frac{1.0 - x}{y} \cdot \left(1 - \frac{x}{3.0}\right)double f(double x, double y) {
double r30754206 = 1.0;
double r30754207 = x;
double r30754208 = r30754206 - r30754207;
double r30754209 = 3.0;
double r30754210 = r30754209 - r30754207;
double r30754211 = r30754208 * r30754210;
double r30754212 = y;
double r30754213 = r30754212 * r30754209;
double r30754214 = r30754211 / r30754213;
return r30754214;
}
double f(double x, double y) {
double r30754215 = 1.0;
double r30754216 = x;
double r30754217 = r30754215 - r30754216;
double r30754218 = y;
double r30754219 = r30754217 / r30754218;
double r30754220 = 1.0;
double r30754221 = 3.0;
double r30754222 = r30754216 / r30754221;
double r30754223 = r30754220 - r30754222;
double r30754224 = r30754219 * r30754223;
return r30754224;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.2
rmApplied times-frac0.1
rmApplied div-sub0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019168
(FPCore (x y)
:name "Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3"
:herbie-target
(* (/ (- 1.0 x) y) (/ (- 3.0 x) 3.0))
(/ (* (- 1.0 x) (- 3.0 x)) (* y 3.0)))