3 \cdot \left(\left(\left(x \cdot 3\right) \cdot x - x \cdot 4\right) + 1\right)
x \cdot \left(x \cdot 9 - 12\right) + 3
double f(double x) {
double r938252 = 3.0;
double r938253 = x;
double r938254 = r938253 * r938252;
double r938255 = r938254 * r938253;
double r938256 = 4.0;
double r938257 = r938253 * r938256;
double r938258 = r938255 - r938257;
double r938259 = 1.0;
double r938260 = r938258 + r938259;
double r938261 = r938252 * r938260;
return r938261;
}
double f(double x) {
double r938262 = x;
double r938263 = 9.0;
double r938264 = r938262 * r938263;
double r938265 = 12.0;
double r938266 = r938264 - r938265;
double r938267 = r938262 * r938266;
double r938268 = 3.0;
double r938269 = r938267 + r938268;
return r938269;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.2
Simplified0.1
Taylor expanded around 0 0.1
Taylor expanded around 0 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020025
(FPCore (x)
:name "Diagrams.Tangent:$catParam from diagrams-lib-1.3.0.3, D"
:precision binary64
:herbie-target
(+ 3 (- (* (* 9 x) x) (* 12 x)))
(* 3 (+ (- (* (* x 3) x) (* x 4)) 1)))