
Herbie found 6 alternatives:
| Alternative | Accuracy | Speedup |
|---|
| Original | 99.7% |
|---|---|
| Target | 99.7% |
| Herbie | 99.8% |
Initial program 99.7%
*-commutative99.7%
sub-neg99.7%
distribute-rgt-in99.7%
metadata-eval99.7%
distribute-rgt-neg-in99.7%
associate-*l*99.7%
metadata-eval99.7%
metadata-eval99.7%
Simplified99.7%
distribute-lft-in99.7%
fma-def99.8%
Applied egg-rr99.8%
Final simplification99.8%
if x < -0.660000000000000031 or 0.650000000000000022 < x Initial program 99.6%
associate-*l*99.7%
*-commutative99.7%
Simplified99.7%
Taylor expanded in x around inf 96.0%
unpow296.0%
Simplified96.0%
if -0.660000000000000031 < x < 0.650000000000000022Initial program 99.7%
*-commutative99.7%
sub-neg99.7%
distribute-rgt-in99.7%
metadata-eval99.7%
distribute-rgt-neg-in99.7%
associate-*l*99.7%
metadata-eval99.7%
metadata-eval99.7%
Simplified99.7%
Taylor expanded in x around 0 96.6%
Final simplification96.3%
Initial program 99.7%
associate-*l*99.7%
*-commutative99.7%
Simplified99.7%
Final simplification99.7%
Initial program 99.7%
*-commutative99.7%
sub-neg99.7%
distribute-rgt-in99.7%
metadata-eval99.7%
distribute-rgt-neg-in99.7%
associate-*l*99.7%
metadata-eval99.7%
metadata-eval99.7%
Simplified99.7%
Final simplification99.7%
Initial program 99.7%
*-commutative99.7%
sub-neg99.7%
distribute-rgt-in99.7%
metadata-eval99.7%
distribute-rgt-neg-in99.7%
associate-*l*99.7%
metadata-eval99.7%
metadata-eval99.7%
Simplified99.7%
Taylor expanded in x around 0 46.1%
Final simplification46.1%
Initial program 99.7%
*-commutative99.7%
sub-neg99.7%
distribute-rgt-in99.7%
metadata-eval99.7%
distribute-rgt-neg-in99.7%
associate-*l*99.7%
metadata-eval99.7%
metadata-eval99.7%
Simplified99.7%
*-commutative99.7%
flip-+99.7%
associate-*l/91.3%
metadata-eval91.3%
pow291.3%
Applied egg-rr91.3%
Taylor expanded in x around 0 45.2%
*-commutative45.2%
Simplified45.2%
Taylor expanded in x around inf 2.2%
Final simplification2.2%
herbie shell --seed 2023166
(FPCore (x)
:name "Diagrams.Tangent:$catParam from diagrams-lib-1.3.0.3, E"
:precision binary64
:herbie-target
(- (* 6.0 x) (* 9.0 (* x x)))
(* (* 3.0 (- 2.0 (* x 3.0))) x))