
Herbie found 13 alternatives:
| Alternative | Accuracy | Speedup |
|---|
if (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) < -0.999990000000000046Initial program 7.1%
+-commutative7.1%
Simplified7.1%
Taylor expanded in alpha around -inf 92.0%
+-commutative92.0%
mul-1-neg92.0%
unsub-neg92.0%
Simplified99.7%
if -0.999990000000000046 < (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) Initial program 99.9%
+-commutative99.9%
Simplified99.9%
flip3-+99.9%
div-inv99.9%
pow399.8%
metadata-eval99.8%
+-commutative99.8%
pow399.9%
div-inv99.7%
div-inv99.9%
associate-+l+99.9%
Applied egg-rr99.9%
associate-*r/99.9%
*-rgt-identity99.9%
+-commutative99.9%
associate-+r-99.9%
+-commutative99.9%
associate-+r-99.9%
+-commutative99.9%
+-commutative99.9%
Simplified99.9%
Final simplification99.8%
if (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) < -0.999990000000000046Initial program 7.1%
+-commutative7.1%
Simplified7.1%
Taylor expanded in alpha around -inf 92.0%
+-commutative92.0%
mul-1-neg92.0%
unsub-neg92.0%
Simplified99.7%
if -0.999990000000000046 < (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) Initial program 99.9%
+-commutative99.9%
Simplified99.9%
clear-num99.9%
associate-/r/99.9%
fma-def99.9%
associate-+l+99.9%
Applied egg-rr99.9%
Final simplification99.8%
if (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) < -0.999999980000000011Initial program 5.6%
+-commutative5.6%
Simplified5.6%
Taylor expanded in alpha around inf 99.6%
if -0.999999980000000011 < (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) Initial program 99.5%
+-commutative99.5%
Simplified99.5%
clear-num99.5%
associate-/r/99.5%
fma-def99.6%
associate-+l+99.6%
Applied egg-rr99.6%
Final simplification99.6%
if (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) < -0.999999980000000011Initial program 5.6%
+-commutative5.6%
Simplified5.6%
Taylor expanded in alpha around inf 99.6%
if -0.999999980000000011 < (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) Initial program 99.5%
+-commutative99.5%
Simplified99.5%
div-sub99.5%
associate-+l-99.6%
associate-+l+99.6%
associate-+l+99.6%
Applied egg-rr99.6%
flip--99.6%
metadata-eval99.6%
Applied egg-rr99.6%
Final simplification99.6%
if (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) < -0.999999980000000011Initial program 5.6%
+-commutative5.6%
Simplified5.6%
Taylor expanded in alpha around inf 99.6%
if -0.999999980000000011 < (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) Initial program 99.5%
+-commutative99.5%
Simplified99.5%
div-sub99.5%
associate-+l-99.6%
associate-+l+99.6%
associate-+l+99.6%
Applied egg-rr99.6%
Final simplification99.6%
if (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) < -0.999999980000000011Initial program 5.6%
+-commutative5.6%
Simplified5.6%
Taylor expanded in alpha around inf 99.6%
if -0.999999980000000011 < (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) Initial program 99.5%
+-commutative99.5%
Simplified99.5%
clear-num99.5%
associate-/r/99.5%
associate-+l+99.5%
Applied egg-rr99.5%
Final simplification99.6%
if (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) < -0.999999980000000011Initial program 5.6%
+-commutative5.6%
Simplified5.6%
Taylor expanded in alpha around inf 99.6%
if -0.999999980000000011 < (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) Initial program 99.5%
Final simplification99.5%
if alpha < 1.25e20Initial program 99.2%
+-commutative99.2%
Simplified99.2%
Taylor expanded in alpha around 0 97.0%
if 1.25e20 < alpha < 2.89999999999999992e210 or 5.5000000000000002e280 < alpha Initial program 18.1%
+-commutative18.1%
Simplified18.1%
Taylor expanded in alpha around inf 86.5%
Taylor expanded in beta around 0 70.1%
if 2.89999999999999992e210 < alpha < 5.5000000000000002e280Initial program 5.6%
+-commutative5.6%
Simplified5.6%
Taylor expanded in alpha around inf 100.0%
Taylor expanded in beta around inf 61.7%
Final simplification87.4%
if alpha < 2.65e20Initial program 99.2%
+-commutative99.2%
Simplified99.2%
Taylor expanded in alpha around 0 97.0%
if 2.65e20 < alpha Initial program 14.2%
+-commutative14.2%
Simplified14.2%
Taylor expanded in alpha around inf 90.8%
Final simplification95.0%
if beta < 2Initial program 69.8%
+-commutative69.8%
Simplified69.8%
Taylor expanded in alpha around 0 67.7%
Taylor expanded in beta around 0 66.7%
*-commutative66.7%
Simplified66.7%
if 2 < beta Initial program 74.7%
+-commutative74.7%
Simplified74.7%
Taylor expanded in beta around inf 74.2%
Final simplification69.5%
if beta < 2Initial program 69.8%
+-commutative69.8%
Simplified69.8%
Taylor expanded in alpha around 0 67.7%
Taylor expanded in beta around 0 66.7%
*-commutative66.7%
Simplified66.7%
if 2 < beta Initial program 74.7%
+-commutative74.7%
Simplified74.7%
Taylor expanded in alpha around 0 74.6%
Taylor expanded in beta around inf 74.6%
associate-*r/74.6%
metadata-eval74.6%
Simplified74.6%
Final simplification69.6%
if beta < 1e10Initial program 69.4%
+-commutative69.4%
Simplified69.4%
Taylor expanded in beta around 0 67.5%
+-commutative67.5%
Simplified67.5%
Taylor expanded in alpha around 0 65.4%
if 1e10 < beta Initial program 75.5%
+-commutative75.5%
Simplified75.5%
Taylor expanded in beta around inf 75.6%
Final simplification69.2%
Initial program 71.6%
+-commutative71.6%
Simplified71.6%
Taylor expanded in beta around 0 47.6%
+-commutative47.6%
Simplified47.6%
Taylor expanded in alpha around 0 47.1%
Final simplification47.1%
herbie shell --seed 2023166
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:precision binary64
:pre (and (> alpha -1.0) (> beta -1.0))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))