
Results
Herbie found 13 alternatives:
| Alternative | Accuracy | Speedup |
|---|
if beta < 4.29999999999999998e117Initial program 17.5%
associate-/l/15.8%
associate-*l*15.7%
times-frac24.8%
Simplified44.3%
Taylor expanded in i around inf 82.6%
if 4.29999999999999998e117 < beta < 6.7999999999999998e158Initial program 2.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac13.9%
Simplified75.0%
Taylor expanded in beta around inf 63.8%
*-commutative63.8%
associate-/l*64.0%
+-commutative64.0%
unpow264.0%
Simplified64.0%
*-un-lft-identity64.0%
associate-/l*64.2%
Applied egg-rr64.2%
*-un-lft-identity64.2%
div-inv64.2%
+-commutative64.2%
div-inv64.2%
clear-num64.0%
Applied egg-rr64.0%
associate-*r/64.0%
*-rgt-identity64.0%
associate-/r*64.4%
Simplified64.4%
associate-/r/64.2%
Applied egg-rr64.2%
if 6.7999999999999998e158 < beta < 3.7999999999999997e175Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified0.0%
Taylor expanded in i around inf 94.0%
cancel-sign-sub-inv94.0%
distribute-lft-out94.0%
metadata-eval94.0%
Simplified94.0%
Taylor expanded in alpha around 0 94.0%
add-log-exp94.0%
Applied egg-rr94.0%
if 3.7999999999999997e175 < beta < 1.89999999999999994e198Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified3.5%
Taylor expanded in beta around inf 5.0%
*-commutative5.0%
associate-/l*5.7%
+-commutative5.7%
unpow25.7%
Simplified5.7%
*-un-lft-identity5.7%
associate-/l*60.5%
Applied egg-rr60.5%
*-un-lft-identity60.5%
div-inv60.5%
+-commutative60.5%
div-inv60.5%
clear-num60.5%
Applied egg-rr60.5%
associate-*r/60.6%
*-rgt-identity60.6%
associate-/r*69.5%
Simplified69.5%
if 1.89999999999999994e198 < beta < 6.5999999999999997e215Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified50.0%
Taylor expanded in i around inf 100.0%
cancel-sign-sub-inv100.0%
distribute-lft-out100.0%
metadata-eval100.0%
Simplified100.0%
Taylor expanded in alpha around 0 100.0%
if 6.5999999999999997e215 < beta Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified13.4%
Taylor expanded in beta around inf 31.2%
*-commutative31.2%
associate-/l*33.6%
+-commutative33.6%
unpow233.6%
Simplified33.6%
*-un-lft-identity33.6%
associate-/l*50.4%
Applied egg-rr50.4%
Taylor expanded in beta around 0 31.2%
unpow231.2%
times-frac70.7%
Simplified70.7%
Final simplification80.8%
if (/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1)) < +inf.0Initial program 39.0%
times-frac99.7%
+-commutative99.7%
+-commutative99.7%
*-commutative99.7%
fma-udef99.7%
+-commutative99.7%
+-commutative99.7%
*-commutative99.7%
fma-udef99.7%
+-commutative99.7%
*-commutative99.7%
fma-udef99.7%
Applied egg-rr99.7%
*-commutative99.7%
associate-+r+99.7%
+-commutative99.7%
*-commutative99.7%
+-commutative99.7%
associate-/l*99.9%
+-commutative99.9%
associate-+r+99.9%
+-commutative99.9%
Simplified99.9%
if +inf.0 < (/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1)) Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified5.9%
Taylor expanded in i around inf 78.8%
cancel-sign-sub-inv78.8%
distribute-lft-out78.8%
metadata-eval78.8%
Simplified78.8%
Taylor expanded in alpha around 0 74.9%
Final simplification84.1%
if (/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1)) < +inf.0Initial program 39.0%
expm1-log1p-u36.2%
expm1-udef36.2%
Applied egg-rr90.7%
expm1-def90.7%
expm1-log1p99.8%
associate-*r/99.8%
associate-+r+99.8%
+-commutative99.8%
+-commutative99.8%
associate-+r+99.8%
+-commutative99.8%
*-commutative99.8%
Simplified99.8%
if +inf.0 < (/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1)) Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified5.9%
Taylor expanded in i around inf 78.8%
cancel-sign-sub-inv78.8%
distribute-lft-out78.8%
metadata-eval78.8%
Simplified78.8%
Taylor expanded in alpha around 0 74.9%
Final simplification84.0%
if (/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1)) < +inf.0Initial program 39.0%
Taylor expanded in alpha around 0 34.5%
associate-/l*90.5%
unpow290.5%
+-commutative90.5%
*-commutative90.5%
fma-udef90.5%
Simplified90.5%
if +inf.0 < (/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1)) Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified5.9%
Taylor expanded in i around inf 78.8%
cancel-sign-sub-inv78.8%
distribute-lft-out78.8%
metadata-eval78.8%
Simplified78.8%
Taylor expanded in alpha around 0 74.9%
Final simplification80.6%
if beta < 2.5999999999999999e117Initial program 17.5%
associate-/l/15.8%
associate-*l*15.7%
times-frac24.8%
Simplified44.3%
Taylor expanded in i around inf 82.6%
if 2.5999999999999999e117 < beta < 3.3999999999999999e158Initial program 2.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac13.9%
Simplified75.0%
Taylor expanded in beta around inf 63.8%
*-commutative63.8%
associate-/l*64.0%
+-commutative64.0%
unpow264.0%
Simplified64.0%
*-un-lft-identity64.0%
associate-/l*64.2%
Applied egg-rr64.2%
*-un-lft-identity64.2%
div-inv64.2%
+-commutative64.2%
div-inv64.2%
clear-num64.0%
Applied egg-rr64.0%
associate-*r/64.0%
*-rgt-identity64.0%
associate-/r*64.4%
Simplified64.4%
associate-/r/64.2%
Applied egg-rr64.2%
if 3.3999999999999999e158 < beta < 3.8999999999999999e177Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified0.0%
Taylor expanded in i around inf 94.0%
cancel-sign-sub-inv94.0%
distribute-lft-out94.0%
metadata-eval94.0%
Simplified94.0%
flip-+94.0%
associate-/l*94.0%
associate-/l*94.0%
associate-/l*94.0%
Applied egg-rr94.0%
Simplified94.0%
Taylor expanded in alpha around 0 0.0%
unpow20.0%
unpow20.0%
times-frac94.0%
Simplified94.0%
if 3.8999999999999999e177 < beta < 1.75000000000000006e198Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified3.5%
Taylor expanded in beta around inf 5.0%
*-commutative5.0%
associate-/l*5.7%
+-commutative5.7%
unpow25.7%
Simplified5.7%
*-un-lft-identity5.7%
associate-/l*60.5%
Applied egg-rr60.5%
*-un-lft-identity60.5%
div-inv60.5%
+-commutative60.5%
div-inv60.5%
clear-num60.5%
Applied egg-rr60.5%
associate-*r/60.6%
*-rgt-identity60.6%
associate-/r*69.5%
Simplified69.5%
if 1.75000000000000006e198 < beta < 6.7999999999999996e214Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified50.0%
Taylor expanded in i around inf 100.0%
cancel-sign-sub-inv100.0%
distribute-lft-out100.0%
metadata-eval100.0%
Simplified100.0%
Taylor expanded in alpha around 0 100.0%
if 6.7999999999999996e214 < beta Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified13.4%
Taylor expanded in beta around inf 31.2%
*-commutative31.2%
associate-/l*33.6%
+-commutative33.6%
unpow233.6%
Simplified33.6%
*-un-lft-identity33.6%
associate-/l*50.4%
Applied egg-rr50.4%
Taylor expanded in beta around 0 31.2%
unpow231.2%
times-frac70.7%
Simplified70.7%
Final simplification80.8%
if beta < 4.2000000000000002e117Initial program 17.5%
associate-/l/15.8%
associate-*l*15.7%
times-frac24.8%
Simplified44.3%
Taylor expanded in i around inf 82.6%
if 4.2000000000000002e117 < beta < 3.30000000000000017e158Initial program 2.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac13.9%
Simplified75.0%
Taylor expanded in beta around inf 63.8%
*-commutative63.8%
associate-/l*64.0%
+-commutative64.0%
unpow264.0%
Simplified64.0%
*-un-lft-identity64.0%
associate-/l*64.2%
Applied egg-rr64.2%
*-un-lft-identity64.2%
div-inv64.2%
+-commutative64.2%
div-inv64.2%
clear-num64.0%
Applied egg-rr64.0%
associate-*r/64.0%
*-rgt-identity64.0%
associate-/r*64.4%
Simplified64.4%
associate-/r/64.2%
Applied egg-rr64.2%
if 3.30000000000000017e158 < beta < 1.5e176 or 3.1999999999999998e198 < beta < 2.7000000000000001e216Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified14.3%
Taylor expanded in i around inf 95.7%
cancel-sign-sub-inv95.7%
distribute-lft-out95.7%
metadata-eval95.7%
Simplified95.7%
Taylor expanded in alpha around 0 95.7%
if 1.5e176 < beta < 3.1999999999999998e198Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified3.5%
Taylor expanded in beta around inf 5.0%
*-commutative5.0%
associate-/l*5.7%
+-commutative5.7%
unpow25.7%
Simplified5.7%
*-un-lft-identity5.7%
associate-/l*60.5%
Applied egg-rr60.5%
*-un-lft-identity60.5%
div-inv60.5%
+-commutative60.5%
div-inv60.5%
clear-num60.5%
Applied egg-rr60.5%
associate-*r/60.6%
*-rgt-identity60.6%
associate-/r*69.5%
Simplified69.5%
if 2.7000000000000001e216 < beta Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified13.4%
Taylor expanded in beta around inf 31.2%
*-commutative31.2%
associate-/l*33.6%
+-commutative33.6%
unpow233.6%
Simplified33.6%
*-un-lft-identity33.6%
associate-/l*50.4%
Applied egg-rr50.4%
Taylor expanded in beta around 0 31.2%
unpow231.2%
times-frac70.7%
Simplified70.7%
Final simplification80.8%
if beta < 4.29999999999999998e117 or 6.5000000000000001e158 < beta < 1.5999999999999999e176 or 3.50000000000000013e198 < beta < 6.7999999999999996e214Initial program 16.9%
associate-/l/15.3%
associate-*l*15.2%
times-frac24.0%
Simplified43.3%
Taylor expanded in i around inf 82.5%
if 4.29999999999999998e117 < beta < 6.5000000000000001e158 or 1.5999999999999999e176 < beta < 3.50000000000000013e198 or 6.7999999999999996e214 < beta Initial program 0.4%
associate-/l/0.0%
associate-*l*0.0%
times-frac2.8%
Simplified23.5%
Taylor expanded in beta around inf 31.8%
*-commutative31.8%
associate-/l*33.4%
+-commutative33.4%
unpow233.4%
Simplified33.4%
*-un-lft-identity33.4%
associate-/l*55.4%
Applied egg-rr55.4%
Taylor expanded in beta around 0 31.8%
unpow231.8%
times-frac68.9%
Simplified68.9%
Final simplification80.4%
if beta < 4.29999999999999998e117 or 4.9999999999999996e158 < beta < 7.4000000000000004e174 or 3.4e198 < beta < 6.7999999999999996e214Initial program 16.9%
associate-/l/15.3%
associate-*l*15.2%
times-frac24.0%
Simplified43.3%
Taylor expanded in i around inf 82.5%
if 4.29999999999999998e117 < beta < 4.9999999999999996e158Initial program 2.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac13.9%
Simplified75.0%
Taylor expanded in beta around inf 63.8%
*-commutative63.8%
associate-/l*64.0%
+-commutative64.0%
unpow264.0%
Simplified64.0%
*-un-lft-identity64.0%
associate-/l*64.2%
Applied egg-rr64.2%
*-un-lft-identity64.2%
div-inv64.2%
+-commutative64.2%
div-inv64.2%
clear-num64.0%
Applied egg-rr64.0%
associate-*r/64.0%
*-rgt-identity64.0%
associate-/r*64.4%
Simplified64.4%
associate-/r/64.2%
Applied egg-rr64.2%
if 7.4000000000000004e174 < beta < 3.4e198 or 6.7999999999999996e214 < beta Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified10.6%
Taylor expanded in beta around inf 23.8%
*-commutative23.8%
associate-/l*25.8%
+-commutative25.8%
unpow225.8%
Simplified25.8%
*-un-lft-identity25.8%
associate-/l*53.2%
Applied egg-rr53.2%
Taylor expanded in beta around 0 23.8%
unpow223.8%
times-frac70.2%
Simplified70.2%
Final simplification80.4%
if beta < 4.29999999999999998e117 or 4.4000000000000002e158 < beta < 1.55e174 or 3.4e198 < beta < 8.2e214Initial program 16.9%
associate-/l/15.3%
associate-*l*15.2%
times-frac24.0%
Simplified43.3%
Taylor expanded in i around inf 82.5%
if 4.29999999999999998e117 < beta < 4.4000000000000002e158Initial program 2.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac13.9%
Simplified75.0%
Taylor expanded in beta around inf 63.8%
*-commutative63.8%
associate-/l*64.0%
+-commutative64.0%
unpow264.0%
Simplified64.0%
*-un-lft-identity64.0%
associate-/l*64.2%
Applied egg-rr64.2%
*-un-lft-identity64.2%
div-inv64.2%
+-commutative64.2%
div-inv64.2%
clear-num64.0%
Applied egg-rr64.0%
associate-*r/64.0%
*-rgt-identity64.0%
associate-/r*64.4%
Simplified64.4%
associate-/r/64.2%
Applied egg-rr64.2%
if 1.55e174 < beta < 3.4e198Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified3.5%
Taylor expanded in beta around inf 5.0%
*-commutative5.0%
associate-/l*5.7%
+-commutative5.7%
unpow25.7%
Simplified5.7%
*-un-lft-identity5.7%
associate-/l*60.5%
Applied egg-rr60.5%
*-un-lft-identity60.5%
div-inv60.5%
+-commutative60.5%
div-inv60.5%
clear-num60.5%
Applied egg-rr60.5%
associate-*r/60.6%
*-rgt-identity60.6%
associate-/r*69.5%
Simplified69.5%
if 8.2e214 < beta Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified13.4%
Taylor expanded in beta around inf 31.2%
*-commutative31.2%
associate-/l*33.6%
+-commutative33.6%
unpow233.6%
Simplified33.6%
*-un-lft-identity33.6%
associate-/l*50.4%
Applied egg-rr50.4%
Taylor expanded in beta around 0 31.2%
unpow231.2%
times-frac70.7%
Simplified70.7%
Final simplification80.4%
if beta < 4.29999999999999998e117 or 3.95000000000000019e158 < beta < 6.7999999999999996e214Initial program 16.2%
associate-/l/14.7%
associate-*l*14.6%
times-frac23.0%
Simplified41.7%
Taylor expanded in i around inf 80.3%
if 4.29999999999999998e117 < beta < 3.95000000000000019e158 or 6.7999999999999996e214 < beta Initial program 0.5%
associate-/l/0.0%
associate-*l*0.0%
times-frac3.6%
Simplified29.3%
Taylor expanded in beta around inf 39.6%
*-commutative39.6%
associate-/l*41.5%
+-commutative41.5%
unpow241.5%
Simplified41.5%
*-un-lft-identity41.5%
associate-/l*53.9%
Applied egg-rr53.9%
Taylor expanded in alpha around 0 40.0%
unpow240.0%
unpow240.0%
times-frac65.8%
Simplified65.8%
Final simplification78.5%
if beta < 3.19999999999999988e227Initial program 15.4%
associate-/l/13.9%
associate-*l*13.8%
times-frac22.2%
Simplified42.0%
Taylor expanded in i around inf 78.1%
if 3.19999999999999988e227 < beta Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified16.7%
Taylor expanded in beta around inf 39.4%
*-commutative39.4%
associate-/l*41.7%
+-commutative41.7%
unpow241.7%
Simplified41.7%
*-un-lft-identity41.7%
associate-/l*54.5%
Applied egg-rr54.5%
*-un-lft-identity54.5%
div-inv54.5%
+-commutative54.5%
div-inv54.5%
clear-num54.5%
Applied egg-rr54.5%
associate-*r/54.5%
*-rgt-identity54.5%
associate-/r*75.2%
Simplified75.2%
Taylor expanded in i around 0 40.7%
unpow240.7%
times-frac47.2%
Simplified47.2%
Final simplification76.0%
if beta < 2.65000000000000004e227Initial program 15.4%
associate-/l/13.9%
associate-*l*13.8%
times-frac22.2%
Simplified42.0%
Taylor expanded in i around inf 78.1%
if 2.65000000000000004e227 < beta Initial program 0.0%
associate-/l/0.0%
associate-*l*0.0%
times-frac0.0%
Simplified16.7%
Taylor expanded in i around inf 56.1%
cancel-sign-sub-inv56.1%
distribute-lft-out56.1%
metadata-eval56.1%
Simplified56.1%
Taylor expanded in i around 0 41.7%
distribute-rgt-out41.7%
metadata-eval41.7%
mul0-rgt41.7%
Simplified41.7%
Final simplification75.6%
Initial program 14.3%
associate-/l/12.9%
associate-*l*12.8%
times-frac20.6%
Simplified40.2%
Taylor expanded in i around inf 73.9%
Final simplification73.9%
herbie shell --seed 2023166
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:precision binary64
:pre (and (and (> alpha -1.0) (> beta -1.0)) (> i 1.0))
(/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i)))) (- (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i))) 1.0)))