
Results
Herbie found 5 alternatives:
| Alternative | Accuracy | Speedup |
|---|
if (*.f64 y z) < 9.9999999999999999e144Initial program 98.2%
if 9.9999999999999999e144 < (*.f64 y z) Initial program 84.4%
flip--20.5%
associate-*r/20.5%
metadata-eval20.5%
pow220.5%
Applied egg-rr20.5%
*-commutative20.5%
associate-/l*19.6%
Simplified19.6%
associate-/r/20.5%
metadata-eval20.5%
unpow220.5%
flip--84.4%
sub-neg84.4%
distribute-rgt-neg-out84.4%
+-commutative84.4%
distribute-rgt1-in84.4%
distribute-rgt-neg-out84.4%
distribute-lft-neg-out84.4%
distribute-rgt-neg-out84.4%
add-sqr-sqrt40.9%
sqrt-unprod32.9%
sqr-neg32.9%
sqrt-unprod0.2%
add-sqr-sqrt0.5%
cancel-sign-sub0.5%
distribute-rgt-neg-out0.5%
*-commutative0.5%
associate-*r*0.5%
Applied egg-rr99.7%
distribute-lft-neg-out99.7%
unsub-neg99.7%
*-commutative99.7%
Simplified99.7%
Taylor expanded in z around inf 97.3%
mul-1-neg97.3%
distribute-rgt-neg-in97.3%
*-commutative97.3%
distribute-rgt-neg-out97.3%
associate-*l*99.7%
Simplified99.7%
Final simplification98.4%
if (*.f64 y z) < -1 or 0.5 < (*.f64 y z) Initial program 91.7%
Taylor expanded in y around inf 87.8%
mul-1-neg87.8%
distribute-rgt-neg-out87.8%
Simplified87.8%
if -1 < (*.f64 y z) < 0.5Initial program 100.0%
Taylor expanded in y around 0 97.7%
Final simplification93.2%
if (*.f64 y z) < -1 or 0.5 < (*.f64 y z) Initial program 91.7%
Taylor expanded in y around inf 89.9%
mul-1-neg89.9%
distribute-rgt-neg-in89.9%
distribute-rgt-neg-in89.9%
Simplified89.9%
if -1 < (*.f64 y z) < 0.5Initial program 100.0%
Taylor expanded in y around 0 97.7%
Final simplification94.1%
if (*.f64 y z) < -1Initial program 92.8%
flip--53.7%
associate-*r/48.6%
metadata-eval48.6%
pow248.6%
Applied egg-rr48.6%
*-commutative48.6%
associate-/l*53.4%
Simplified53.4%
associate-/r/53.7%
metadata-eval53.7%
unpow253.7%
flip--92.8%
sub-neg92.8%
distribute-rgt-neg-out92.8%
+-commutative92.8%
distribute-rgt1-in92.8%
distribute-rgt-neg-out92.8%
distribute-lft-neg-out92.8%
distribute-rgt-neg-out92.8%
add-sqr-sqrt56.3%
sqrt-unprod43.4%
sqr-neg43.4%
sqrt-unprod0.3%
add-sqr-sqrt0.9%
cancel-sign-sub0.9%
distribute-rgt-neg-out0.9%
*-commutative0.9%
associate-*r*1.0%
Applied egg-rr93.1%
distribute-lft-neg-out93.1%
unsub-neg93.1%
*-commutative93.1%
Simplified93.1%
Taylor expanded in z around inf 87.7%
mul-1-neg87.7%
distribute-rgt-neg-in87.7%
*-commutative87.7%
distribute-rgt-neg-out87.7%
associate-*l*87.9%
Simplified87.9%
if -1 < (*.f64 y z) < 0.5Initial program 100.0%
Taylor expanded in y around 0 97.7%
if 0.5 < (*.f64 y z) Initial program 90.8%
Taylor expanded in y around inf 91.7%
mul-1-neg91.7%
distribute-rgt-neg-in91.7%
distribute-rgt-neg-in91.7%
Simplified91.7%
Final simplification94.1%
Initial program 96.2%
Taylor expanded in y around 0 54.3%
Final simplification54.3%
herbie shell --seed 2023166
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSV:hsv from colour-2.3.3, I"
:precision binary64
(* x (- 1.0 (* y z))))