
Herbie found 7 alternatives:
| Alternative | Accuracy | Speedup |
|---|
Initial program 100.0%
+-commutative100.0%
fma-def100.0%
Simplified100.0%
Final simplification100.0%
if z < -3.6999999999999997e151 or -4.49999999999999999e62 < z < -2.8e16 or 3.19999999999999983e274 < z Initial program 100.0%
Taylor expanded in z around inf 100.0%
Taylor expanded in y around 0 76.1%
mul-1-neg76.1%
distribute-rgt-neg-out76.1%
Simplified76.1%
if -3.6999999999999997e151 < z < -4.49999999999999999e62 or -2.8e16 < z < -1.4499999999999999e-77 or 1.84999999999999991e-5 < z < 3.19999999999999983e274Initial program 100.0%
Taylor expanded in z around inf 89.8%
Taylor expanded in y around inf 63.9%
*-commutative63.9%
Simplified63.9%
if -1.4499999999999999e-77 < z < 1.84999999999999991e-5Initial program 100.0%
Taylor expanded in z around 0 82.6%
Final simplification74.4%
if z < -7.5999999999999998e-77 or 4.2000000000000002e-4 < z Initial program 100.0%
Taylor expanded in z around inf 92.8%
if -7.5999999999999998e-77 < z < 4.2000000000000002e-4Initial program 100.0%
Taylor expanded in z around 0 82.6%
Final simplification88.1%
if z < -1 or 1 < z Initial program 100.0%
Taylor expanded in z around inf 98.7%
if -1 < z < 1Initial program 100.0%
Taylor expanded in y around inf 98.6%
*-commutative24.8%
Simplified98.6%
Final simplification98.7%
if z < -8.80000000000000028e-77 or 2.00000000000000016e-5 < z Initial program 100.0%
Taylor expanded in z around inf 92.8%
Taylor expanded in y around inf 54.2%
*-commutative54.2%
Simplified54.2%
if -8.80000000000000028e-77 < z < 2.00000000000000016e-5Initial program 100.0%
Taylor expanded in z around 0 82.6%
Final simplification67.1%
Initial program 100.0%
Final simplification100.0%
Initial program 100.0%
Taylor expanded in z around 0 42.1%
Final simplification42.1%
herbie shell --seed 2023166
(FPCore (x y z)
:name "Diagrams.ThreeD.Shapes:frustum from diagrams-lib-1.3.0.3, B"
:precision binary64
(+ x (* (- y x) z)))