\left(3 \cdot \left(2 - x \cdot 3\right)\right) \cdot x
\mathsf{fma}\left(6, x, -9 \cdot {x}^{2}\right)double f(double x) {
double r542501 = 3.0;
double r542502 = 2.0;
double r542503 = x;
double r542504 = r542503 * r542501;
double r542505 = r542502 - r542504;
double r542506 = r542501 * r542505;
double r542507 = r542506 * r542503;
return r542507;
}
double f(double x) {
double r542508 = 6.0;
double r542509 = x;
double r542510 = 9.0;
double r542511 = 2.0;
double r542512 = pow(r542509, r542511);
double r542513 = r542510 * r542512;
double r542514 = -r542513;
double r542515 = fma(r542508, r542509, r542514);
return r542515;
}




Bits error versus x
| Original | 0.3 |
|---|---|
| Target | 0.2 |
| Herbie | 0.1 |
Initial program 0.3
Taylor expanded around 0 0.2
rmApplied fma-neg0.1
Final simplification0.1
herbie shell --seed 2019209 +o rules:numerics
(FPCore (x)
:name "Diagrams.Tangent:$catParam from diagrams-lib-1.3.0.3, E"
:precision binary64
:herbie-target
(- (* 6 x) (* 9 (* x x)))
(* (* 3 (- 2 (* x 3))) x))