\left(3 \cdot \left(2 - x \cdot 3\right)\right) \cdot x
x \cdot \left(\mathsf{fma}\left(-x, 9, 9 \cdot x\right) + \left(6 - 9 \cdot x\right)\right)double f(double x) {
double r32702751 = 3.0;
double r32702752 = 2.0;
double r32702753 = x;
double r32702754 = r32702753 * r32702751;
double r32702755 = r32702752 - r32702754;
double r32702756 = r32702751 * r32702755;
double r32702757 = r32702756 * r32702753;
return r32702757;
}
double f(double x) {
double r32702758 = x;
double r32702759 = -r32702758;
double r32702760 = 9.0;
double r32702761 = r32702760 * r32702758;
double r32702762 = fma(r32702759, r32702760, r32702761);
double r32702763 = 6.0;
double r32702764 = r32702763 - r32702761;
double r32702765 = r32702762 + r32702764;
double r32702766 = r32702758 * r32702765;
return r32702766;
}




Bits error versus x
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 0.2
Taylor expanded around 0 0.2
rmApplied add-cube-cbrt1.1
Applied prod-diff1.1
Simplified0.2
Final simplification0.2
herbie shell --seed 2019169 +o rules:numerics
(FPCore (x)
:name "Diagrams.Tangent:$catParam from diagrams-lib-1.3.0.3, E"
:herbie-target
(- (* 6.0 x) (* 9.0 (* x x)))
(* (* 3.0 (- 2.0 (* x 3.0))) x))