3.0 \cdot \left(\left(\left(x \cdot 3.0\right) \cdot x - x \cdot 4.0\right) + 1.0\right)
\left(x \cdot 9.0 - 12.0\right) \cdot x + 3.0
double f(double x) {
double r39065060 = 3.0;
double r39065061 = x;
double r39065062 = r39065061 * r39065060;
double r39065063 = r39065062 * r39065061;
double r39065064 = 4.0;
double r39065065 = r39065061 * r39065064;
double r39065066 = r39065063 - r39065065;
double r39065067 = 1.0;
double r39065068 = r39065066 + r39065067;
double r39065069 = r39065060 * r39065068;
return r39065069;
}
double f(double x) {
double r39065070 = x;
double r39065071 = 9.0;
double r39065072 = r39065070 * r39065071;
double r39065073 = 12.0;
double r39065074 = r39065072 - r39065073;
double r39065075 = r39065074 * r39065070;
double r39065076 = 3.0;
double r39065077 = r39065075 + r39065076;
return r39065077;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.2
Simplified0.2
Taylor expanded around 0 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019163
(FPCore (x)
:name "Diagrams.Tangent:$catParam from diagrams-lib-1.3.0.3, D"
:herbie-target
(+ 3.0 (- (* (* 9.0 x) x) (* 12.0 x)))
(* 3.0 (+ (- (* (* x 3.0) x) (* x 4.0)) 1.0)))