
Results
Herbie found 5 alternatives:
| Alternative | Accuracy | Speedup |
|---|
Initial program 60.1%
sub-neg60.1%
log1p-def99.2%
associate-*l*99.2%
Simplified99.2%
add-cbrt-cube99.2%
add-cbrt-cube99.2%
cbrt-unprod99.2%
pow399.2%
pow399.2%
Applied egg-rr99.2%
Final simplification99.2%
if (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) < 0.999599993Initial program 57.8%
sub-neg57.8%
log1p-udef97.6%
add-sqr-sqrt97.1%
pow297.1%
Applied egg-rr73.1%
Taylor expanded in u1 around 0 75.2%
if 0.999599993 < (cos.f32 (*.f32 (*.f32 2 (PI.f32)) u2)) Initial program 60.8%
sub-neg60.8%
log1p-def99.6%
associate-*l*99.6%
Simplified99.6%
add-cbrt-cube99.6%
add-cbrt-cube99.6%
cbrt-unprod99.6%
pow399.6%
pow399.6%
Applied egg-rr99.6%
Taylor expanded in u2 around 0 95.6%
Final simplification91.2%
Initial program 60.1%
sub-neg60.1%
log1p-def99.2%
associate-*l*99.2%
Simplified99.2%
Final simplification99.2%
Initial program 60.1%
sub-neg60.1%
log1p-def99.2%
associate-*l*99.2%
Simplified99.2%
add-cbrt-cube99.2%
add-cbrt-cube99.2%
cbrt-unprod99.2%
pow399.2%
pow399.2%
Applied egg-rr99.2%
Taylor expanded in u2 around 0 81.7%
Final simplification81.7%
Initial program 60.1%
Taylor expanded in u2 around 0 52.5%
add-cbrt-cube52.5%
pow1/352.5%
Applied egg-rr62.0%
Taylor expanded in u1 around 0 64.8%
Final simplification64.8%
herbie shell --seed 2023167
(FPCore (cosTheta_i u1 u2)
:name "Beckmann Sample, near normal, slope_x"
:precision binary32
:pre (and (and (and (> cosTheta_i 0.9999) (<= cosTheta_i 1.0)) (and (<= 2.328306437e-10 u1) (<= u1 1.0))) (and (<= 2.328306437e-10 u2) (<= u2 1.0)))
(* (sqrt (- (log (- 1.0 u1)))) (cos (* (* 2.0 PI) u2))))