
Results
Herbie found 12 alternatives:
| Alternative | Accuracy | Speedup |
|---|
Initial program 6.0%
acos-asin6.0%
flip--6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
add-sqr-sqrt9.7%
pow29.7%
Applied egg-rr9.7%
add-cbrt-cube9.7%
pow1/39.7%
add-sqr-sqrt9.7%
pow19.7%
pow1/29.7%
pow-prod-up9.7%
metadata-eval9.7%
Applied egg-rr9.7%
unpow1/39.7%
Simplified9.7%
add-cbrt-cube9.7%
pow39.7%
Applied egg-rr9.7%
Final simplification9.7%
Initial program 6.0%
acos-asin6.0%
flip--6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
add-sqr-sqrt9.7%
pow29.7%
Applied egg-rr9.7%
add-cbrt-cube9.7%
pow1/39.7%
add-sqr-sqrt9.7%
pow19.7%
pow1/29.7%
pow-prod-up9.7%
metadata-eval9.7%
Applied egg-rr9.7%
unpow1/39.7%
Simplified9.7%
Final simplification9.7%
Initial program 6.0%
acos-asin6.0%
flip--6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
add-sqr-sqrt9.7%
pow29.7%
Applied egg-rr9.7%
Final simplification9.7%
Initial program 6.0%
acos-asin6.0%
sub-neg6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
sub-neg6.0%
Simplified6.0%
add-sqr-sqrt9.7%
pow29.7%
Applied egg-rr9.7%
add-cbrt-cube9.7%
pow1/39.7%
add-sqr-sqrt9.7%
pow19.7%
pow1/29.7%
pow-prod-up9.7%
metadata-eval9.7%
Applied egg-rr9.7%
unpow1/39.7%
Simplified9.7%
Final simplification9.7%
Initial program 6.0%
acos-asin6.0%
sub-neg6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
sub-neg6.0%
Simplified6.0%
add-cube-cbrt9.6%
pow39.6%
Applied egg-rr9.6%
Final simplification9.6%
Initial program 6.0%
acos-asin6.0%
sub-neg6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
sub-neg6.0%
Simplified6.0%
add-sqr-sqrt9.7%
pow29.7%
Applied egg-rr9.7%
Final simplification9.7%
if (-.f64 1 x) < 1Initial program 6.0%
add-log-exp6.0%
Applied egg-rr6.0%
expm1-log1p-u6.0%
expm1-udef6.0%
log1p-udef6.0%
add-exp-log6.0%
Applied egg-rr6.0%
if 1 < (-.f64 1 x) Initial program 6.0%
acos-asin6.0%
flip--6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
flip--6.0%
metadata-eval6.0%
div-inv6.0%
acos-asin6.0%
expm1-log1p-u6.0%
expm1-udef6.0%
log1p-udef6.0%
add-exp-log6.0%
associate--l+6.0%
+-commutative6.0%
sub-neg6.0%
metadata-eval6.0%
Applied egg-rr6.0%
add-sqr-sqrt0.0%
sqrt-unprod6.9%
pow26.9%
Applied egg-rr6.9%
unpow26.9%
rem-sqrt-square6.9%
+-commutative6.9%
Simplified6.9%
Final simplification6.0%
if (-.f64 1 x) < 1Initial program 6.0%
acos-asin6.0%
flip--6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
flip--6.0%
metadata-eval6.0%
div-inv6.0%
acos-asin6.0%
expm1-log1p-u6.0%
expm1-udef6.0%
log1p-udef6.0%
add-exp-log6.0%
associate--l+6.0%
+-commutative6.0%
sub-neg6.0%
metadata-eval6.0%
Applied egg-rr6.0%
add-log-exp6.0%
Applied egg-rr6.0%
if 1 < (-.f64 1 x) Initial program 6.0%
acos-asin6.0%
flip--6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
flip--6.0%
metadata-eval6.0%
div-inv6.0%
acos-asin6.0%
expm1-log1p-u6.0%
expm1-udef6.0%
log1p-udef6.0%
add-exp-log6.0%
associate--l+6.0%
+-commutative6.0%
sub-neg6.0%
metadata-eval6.0%
Applied egg-rr6.0%
add-sqr-sqrt0.0%
sqrt-unprod6.9%
pow26.9%
Applied egg-rr6.9%
unpow26.9%
rem-sqrt-square6.9%
+-commutative6.9%
Simplified6.9%
Final simplification6.0%
if (-.f64 1 x) < 1Initial program 6.0%
add-cube-cbrt6.0%
pow36.0%
Applied egg-rr6.0%
if 1 < (-.f64 1 x) Initial program 6.0%
acos-asin6.0%
flip--6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
flip--6.0%
metadata-eval6.0%
div-inv6.0%
acos-asin6.0%
expm1-log1p-u6.0%
expm1-udef6.0%
log1p-udef6.0%
add-exp-log6.0%
associate--l+6.0%
+-commutative6.0%
sub-neg6.0%
metadata-eval6.0%
Applied egg-rr6.0%
add-sqr-sqrt0.0%
sqrt-unprod6.9%
pow26.9%
Applied egg-rr6.9%
unpow26.9%
rem-sqrt-square6.9%
+-commutative6.9%
Simplified6.9%
Final simplification6.0%
if (-.f64 1 x) < 1Initial program 6.0%
acos-asin6.0%
flip--6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
flip--6.0%
metadata-eval6.0%
div-inv6.0%
acos-asin6.0%
expm1-log1p-u6.0%
expm1-udef6.0%
log1p-udef6.0%
add-exp-log6.0%
associate--l+6.0%
+-commutative6.0%
sub-neg6.0%
metadata-eval6.0%
Applied egg-rr6.0%
if 1 < (-.f64 1 x) Initial program 6.0%
acos-asin6.0%
flip--6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
flip--6.0%
metadata-eval6.0%
div-inv6.0%
acos-asin6.0%
expm1-log1p-u6.0%
expm1-udef6.0%
log1p-udef6.0%
add-exp-log6.0%
associate--l+6.0%
+-commutative6.0%
sub-neg6.0%
metadata-eval6.0%
Applied egg-rr6.0%
add-sqr-sqrt0.0%
sqrt-unprod6.9%
pow26.9%
Applied egg-rr6.9%
unpow26.9%
rem-sqrt-square6.9%
+-commutative6.9%
Simplified6.9%
Final simplification6.0%
Initial program 6.0%
acos-asin6.0%
flip--6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
div-inv6.0%
metadata-eval6.0%
Applied egg-rr6.0%
flip--6.0%
metadata-eval6.0%
div-inv6.0%
acos-asin6.0%
expm1-log1p-u6.0%
expm1-udef6.0%
log1p-udef6.0%
add-exp-log6.0%
associate--l+6.0%
+-commutative6.0%
sub-neg6.0%
metadata-eval6.0%
Applied egg-rr6.0%
Final simplification6.0%
Initial program 6.0%
Final simplification6.0%
herbie shell --seed 2023167
(FPCore (x)
:name "bug323 (missed optimization)"
:precision binary64
:pre (and (<= 0.0 x) (<= x 0.5))
:herbie-target
(* 2.0 (asin (sqrt (/ x 2.0))))
(acos (- 1.0 x)))