3.0 \cdot \left(\left(\left(x \cdot 3.0\right) \cdot x - x \cdot 4.0\right) + 1.0\right)
3.0 + \left(9.0 \cdot x - 12.0\right) \cdot x
double f(double x) {
double r37420193 = 3.0;
double r37420194 = x;
double r37420195 = r37420194 * r37420193;
double r37420196 = r37420195 * r37420194;
double r37420197 = 4.0;
double r37420198 = r37420194 * r37420197;
double r37420199 = r37420196 - r37420198;
double r37420200 = 1.0;
double r37420201 = r37420199 + r37420200;
double r37420202 = r37420193 * r37420201;
return r37420202;
}
double f(double x) {
double r37420203 = 3.0;
double r37420204 = 9.0;
double r37420205 = x;
double r37420206 = r37420204 * r37420205;
double r37420207 = 12.0;
double r37420208 = r37420206 - r37420207;
double r37420209 = r37420208 * r37420205;
double r37420210 = r37420203 + r37420209;
return r37420210;
}




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
Simplified0.1
Final simplification0.1
herbie shell --seed 2019162
(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)))