
Results
Herbie found 7 alternatives:
| Alternative | Accuracy | Speedup |
|---|
if b < -5.20000000000000018e-83Initial program 16.4%
/-rgt-identity16.4%
metadata-eval16.4%
associate-/l*16.5%
associate-/r/16.5%
*-commutative16.5%
metadata-eval16.5%
metadata-eval16.5%
associate-*l/16.5%
associate-/r/16.5%
times-frac16.4%
*-commutative16.4%
times-frac16.4%
metadata-eval16.4%
associate-/r/16.4%
*-commutative16.4%
div-sub14.0%
Simplified16.5%
Taylor expanded in b around -inf 85.0%
associate-*r/85.0%
neg-mul-185.0%
Simplified85.0%
if -5.20000000000000018e-83 < b < 5.00000000000000029e83Initial program 80.8%
if 5.00000000000000029e83 < b Initial program 60.5%
/-rgt-identity60.5%
metadata-eval60.5%
associate-/l*60.5%
associate-/r/60.5%
*-commutative60.5%
metadata-eval60.5%
metadata-eval60.5%
associate-*l/60.5%
associate-/r/60.5%
times-frac60.5%
*-commutative60.5%
times-frac60.5%
metadata-eval60.5%
associate-/r/60.5%
*-commutative60.5%
div-sub60.5%
Simplified60.5%
Taylor expanded in b around inf 96.8%
mul-1-neg96.8%
unsub-neg96.8%
Simplified96.8%
Final simplification86.0%
if b < -1.44999999999999989e-82Initial program 16.4%
/-rgt-identity16.4%
metadata-eval16.4%
associate-/l*16.5%
associate-/r/16.5%
*-commutative16.5%
metadata-eval16.5%
metadata-eval16.5%
associate-*l/16.5%
associate-/r/16.5%
times-frac16.4%
*-commutative16.4%
times-frac16.4%
metadata-eval16.4%
associate-/r/16.4%
*-commutative16.4%
div-sub14.0%
Simplified16.5%
Taylor expanded in b around -inf 85.0%
associate-*r/85.0%
neg-mul-185.0%
Simplified85.0%
if -1.44999999999999989e-82 < b < 9.80000000000000007e-9Initial program 78.6%
/-rgt-identity78.6%
metadata-eval78.6%
associate-/l*78.5%
associate-/r/78.4%
*-commutative78.4%
metadata-eval78.4%
metadata-eval78.4%
associate-*l/78.4%
associate-/r/78.4%
times-frac78.6%
*-commutative78.6%
times-frac78.6%
metadata-eval78.6%
associate-/r/78.6%
*-commutative78.6%
div-sub78.6%
Simplified78.6%
add-cbrt-cube62.8%
pow362.8%
pow1/358.8%
sqrt-pow258.8%
metadata-eval58.8%
Applied egg-rr58.8%
unpow1/362.7%
fma-udef62.8%
+-commutative62.8%
associate-*r*62.8%
metadata-eval62.8%
distribute-rgt-neg-in62.8%
associate-*r*62.8%
*-rgt-identity62.8%
fma-udef62.8%
*-rgt-identity62.8%
*-commutative62.8%
associate-*r*62.8%
distribute-rgt-neg-in62.8%
*-commutative62.8%
distribute-rgt-neg-in62.8%
metadata-eval62.8%
Simplified62.8%
Taylor expanded in b around 0 55.0%
associate-*r*55.0%
*-commutative55.0%
Simplified55.0%
pow1/351.6%
associate-*l*51.6%
*-commutative51.6%
pow-pow68.9%
metadata-eval68.9%
pow1/268.9%
expm1-log1p-u66.2%
expm1-udef44.1%
*-commutative44.1%
associate-*l*44.1%
*-commutative44.1%
Applied egg-rr44.1%
expm1-def66.2%
expm1-log1p68.9%
*-commutative68.9%
associate-*r*68.9%
Simplified68.9%
if 9.80000000000000007e-9 < b Initial program 67.4%
/-rgt-identity67.4%
metadata-eval67.4%
associate-/l*67.3%
associate-/r/67.3%
*-commutative67.3%
metadata-eval67.3%
metadata-eval67.3%
associate-*l/67.3%
associate-/r/67.3%
times-frac67.4%
*-commutative67.4%
times-frac67.4%
metadata-eval67.4%
associate-/r/67.4%
*-commutative67.4%
div-sub67.4%
Simplified67.4%
Taylor expanded in b around inf 93.6%
mul-1-neg93.6%
unsub-neg93.6%
Simplified93.6%
Final simplification82.0%
if b < -3.999999999999988e-310Initial program 29.6%
/-rgt-identity29.6%
metadata-eval29.6%
associate-/l*29.6%
associate-/r/29.6%
*-commutative29.6%
metadata-eval29.6%
metadata-eval29.6%
associate-*l/29.6%
associate-/r/29.6%
times-frac29.6%
*-commutative29.6%
times-frac29.6%
metadata-eval29.6%
associate-/r/29.6%
*-commutative29.6%
div-sub27.8%
Simplified29.6%
Taylor expanded in b around -inf 68.7%
associate-*r/68.7%
neg-mul-168.7%
Simplified68.7%
if -3.999999999999988e-310 < b Initial program 73.9%
/-rgt-identity73.9%
metadata-eval73.9%
associate-/l*73.8%
associate-/r/73.7%
*-commutative73.7%
metadata-eval73.7%
metadata-eval73.7%
associate-*l/73.7%
associate-/r/73.7%
times-frac73.9%
*-commutative73.9%
times-frac73.9%
metadata-eval73.9%
associate-/r/73.9%
*-commutative73.9%
div-sub73.9%
Simplified73.9%
Taylor expanded in b around inf 63.6%
mul-1-neg63.6%
unsub-neg63.6%
Simplified63.6%
Final simplification66.2%
if b < -2.5e20Initial program 11.5%
/-rgt-identity11.5%
metadata-eval11.5%
associate-/l*11.5%
associate-/r/11.5%
*-commutative11.5%
metadata-eval11.5%
metadata-eval11.5%
associate-*l/11.5%
associate-/r/11.5%
times-frac11.5%
*-commutative11.5%
times-frac11.5%
metadata-eval11.5%
associate-/r/11.5%
*-commutative11.5%
div-sub8.3%
Simplified11.5%
clear-num11.5%
un-div-inv11.5%
Applied egg-rr11.5%
Taylor expanded in b around inf 2.4%
Taylor expanded in a around inf 31.7%
if -2.5e20 < b Initial program 68.3%
/-rgt-identity68.3%
metadata-eval68.3%
associate-/l*68.2%
associate-/r/68.2%
*-commutative68.2%
metadata-eval68.2%
metadata-eval68.2%
associate-*l/68.2%
associate-/r/68.2%
times-frac68.3%
*-commutative68.3%
times-frac68.3%
metadata-eval68.3%
associate-/r/68.3%
*-commutative68.3%
div-sub68.3%
Simplified68.3%
Taylor expanded in b around inf 44.9%
associate-*r/44.9%
mul-1-neg44.9%
Simplified44.9%
Final simplification41.0%
if b < -2.5e-243Initial program 27.2%
/-rgt-identity27.2%
metadata-eval27.2%
associate-/l*27.2%
associate-/r/27.2%
*-commutative27.2%
metadata-eval27.2%
metadata-eval27.2%
associate-*l/27.2%
associate-/r/27.2%
times-frac27.2%
*-commutative27.2%
times-frac27.2%
metadata-eval27.2%
associate-/r/27.2%
*-commutative27.2%
div-sub25.2%
Simplified27.2%
Taylor expanded in b around -inf 72.4%
associate-*r/72.4%
neg-mul-172.4%
Simplified72.4%
if -2.5e-243 < b Initial program 73.8%
/-rgt-identity73.8%
metadata-eval73.8%
associate-/l*73.7%
associate-/r/73.6%
*-commutative73.6%
metadata-eval73.6%
metadata-eval73.6%
associate-*l/73.6%
associate-/r/73.6%
times-frac73.8%
*-commutative73.8%
times-frac73.8%
metadata-eval73.8%
associate-/r/73.8%
*-commutative73.8%
div-sub73.8%
Simplified73.8%
Taylor expanded in b around inf 59.7%
associate-*r/59.7%
mul-1-neg59.7%
Simplified59.7%
Final simplification65.8%
Initial program 51.4%
clear-num51.3%
associate-/r/51.3%
associate-/r*51.3%
metadata-eval51.3%
add-sqr-sqrt13.8%
sqrt-unprod29.7%
sqr-neg29.7%
sqrt-prod23.9%
add-sqr-sqrt35.6%
fma-neg35.6%
*-commutative35.6%
distribute-rgt-neg-in35.6%
metadata-eval35.6%
associate-*r*35.6%
Applied egg-rr35.6%
Taylor expanded in b around -inf 2.6%
Final simplification2.6%
Initial program 51.4%
/-rgt-identity51.4%
metadata-eval51.4%
associate-/l*51.3%
associate-/r/51.3%
*-commutative51.3%
metadata-eval51.3%
metadata-eval51.3%
associate-*l/51.3%
associate-/r/51.3%
times-frac51.4%
*-commutative51.4%
times-frac51.4%
metadata-eval51.4%
associate-/r/51.4%
*-commutative51.4%
div-sub50.5%
Simplified51.4%
clear-num51.3%
un-div-inv51.3%
Applied egg-rr51.3%
Taylor expanded in b around inf 32.1%
Taylor expanded in a around inf 11.6%
Final simplification11.6%
herbie shell --seed 2023167
(FPCore (a b c)
:name "The quadratic formula (r2)"
:precision binary64
:herbie-target
(if (< b 0.0) (/ c (* a (/ (+ (- b) (sqrt (- (* b b) (* 4.0 (* a c))))) (* 2.0 a)))) (/ (- (- b) (sqrt (- (* b b) (* 4.0 (* a c))))) (* 2.0 a)))
(/ (- (- b) (sqrt (- (* b b) (* 4.0 (* a c))))) (* 2.0 a)))