\frac{\left(1.0 - x\right) \cdot \left(3.0 - x\right)}{y \cdot 3.0}\frac{\frac{3.0 - x}{3.0}}{y} \cdot \left(1.0 - x\right)double f(double x, double y) {
double r13672989 = 1.0;
double r13672990 = x;
double r13672991 = r13672989 - r13672990;
double r13672992 = 3.0;
double r13672993 = r13672992 - r13672990;
double r13672994 = r13672991 * r13672993;
double r13672995 = y;
double r13672996 = r13672995 * r13672992;
double r13672997 = r13672994 / r13672996;
return r13672997;
}
double f(double x, double y) {
double r13672998 = 3.0;
double r13672999 = x;
double r13673000 = r13672998 - r13672999;
double r13673001 = r13673000 / r13672998;
double r13673002 = y;
double r13673003 = r13673001 / r13673002;
double r13673004 = 1.0;
double r13673005 = r13673004 - r13672999;
double r13673006 = r13673003 * r13673005;
return r13673006;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.3 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.3
rmApplied times-frac0.1
rmApplied div-inv0.2
rmApplied associate-*l*0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2019156
(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)))