3.0 \cdot \left(\left(\left(x \cdot 3.0\right) \cdot x - x \cdot 4.0\right) + 1.0\right)
\mathsf{fma}\left(9.0, x \cdot x, 3.0\right) - 12.0 \cdot xdouble f(double x) {
double r33407369 = 3.0;
double r33407370 = x;
double r33407371 = r33407370 * r33407369;
double r33407372 = r33407371 * r33407370;
double r33407373 = 4.0;
double r33407374 = r33407370 * r33407373;
double r33407375 = r33407372 - r33407374;
double r33407376 = 1.0;
double r33407377 = r33407375 + r33407376;
double r33407378 = r33407369 * r33407377;
return r33407378;
}
double f(double x) {
double r33407379 = 9.0;
double r33407380 = x;
double r33407381 = r33407380 * r33407380;
double r33407382 = 3.0;
double r33407383 = fma(r33407379, r33407381, r33407382);
double r33407384 = 12.0;
double r33407385 = r33407384 * r33407380;
double r33407386 = r33407383 - r33407385;
return r33407386;
}




Bits error versus x
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.1
Taylor expanded around 0 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019158 +o rules:numerics
(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)))