
Herbie found 4 alternatives:
| Alternative | Accuracy | Speedup |
|---|
if a < -1.00000000000000007e-285Initial program 51.1%
difference-of-squares51.7%
Simplified51.7%
add-cube-cbrt50.7%
pow350.7%
pow1/347.6%
pow1/247.6%
difference-of-squares47.1%
pow-pow47.1%
fma-neg47.6%
metadata-eval47.6%
Applied egg-rr47.6%
Taylor expanded in a around -inf 93.8%
associate-+r+93.8%
neg-mul-193.8%
unsub-neg93.8%
pow-base-193.8%
associate-*r*93.8%
metadata-eval93.8%
unpow293.8%
unpow293.8%
distribute-rgt-out93.8%
associate-*r/100.0%
metadata-eval100.0%
Simplified100.0%
if -1.00000000000000007e-285 < a Initial program 46.9%
difference-of-squares47.2%
Simplified47.2%
Taylor expanded in a around inf 95.7%
fma-def95.7%
distribute-rgt1-in95.7%
metadata-eval95.7%
mul0-lft95.7%
fma-udef95.7%
metadata-eval95.7%
+-lft-identity95.7%
Simplified99.7%
Final simplification99.8%
if a < -3.99999999999999988e-304Initial program 51.1%
difference-of-squares51.7%
Simplified51.7%
add-cube-cbrt50.7%
pow350.7%
pow1/347.6%
pow1/247.6%
difference-of-squares47.1%
pow-pow47.1%
fma-neg47.6%
metadata-eval47.6%
Applied egg-rr47.6%
Taylor expanded in a around -inf 93.8%
associate-+r+93.8%
neg-mul-193.8%
unsub-neg93.8%
pow-base-193.8%
associate-*r*93.8%
metadata-eval93.8%
unpow293.8%
unpow293.8%
distribute-rgt-out93.8%
associate-*r/100.0%
metadata-eval100.0%
Simplified100.0%
if -3.99999999999999988e-304 < a Initial program 46.9%
difference-of-squares47.2%
Simplified47.2%
Taylor expanded in a around inf 99.5%
Final simplification99.7%
if a < -1.00000000000000007e-285Initial program 51.1%
difference-of-squares51.7%
Simplified51.7%
add-cube-cbrt50.7%
pow350.7%
pow1/347.6%
pow1/247.6%
difference-of-squares47.1%
pow-pow47.1%
fma-neg47.6%
metadata-eval47.6%
Applied egg-rr47.6%
Taylor expanded in a around -inf 99.3%
neg-mul-199.3%
Simplified99.3%
if -1.00000000000000007e-285 < a Initial program 46.9%
difference-of-squares47.2%
Simplified47.2%
Taylor expanded in a around inf 99.5%
Final simplification99.4%
Initial program 49.0%
difference-of-squares49.4%
Simplified49.4%
Taylor expanded in a around inf 51.1%
Final simplification51.1%
herbie shell --seed 2023167
(FPCore (a b)
:name "bug366, discussion (missed optimization)"
:precision binary64
:herbie-target
(* (sqrt (+ (fabs a) (fabs b))) (sqrt (- (fabs a) (fabs b))))
(sqrt (- (* a a) (* b b))))