
Herbie found 4 alternatives:
| Alternative | Accuracy | Speedup |
|---|
if a < -2.2000000000000002e174Initial program 71.8%
Taylor expanded in a around inf 94.9%
unpow294.9%
Simplified94.9%
if -2.2000000000000002e174 < a Initial program 95.4%
fma-neg98.2%
distribute-rgt-neg-in98.2%
Simplified98.2%
Final simplification97.7%
if (*.f64 a a) < 0.0259999999999999988 or 3.5000000000000001e77 < (*.f64 a a) < 3.2000000000000002e129Initial program 100.0%
Taylor expanded in a around 0 76.1%
unpow276.1%
mul-1-neg76.1%
distribute-rgt-neg-in76.1%
Simplified76.1%
if 0.0259999999999999988 < (*.f64 a a) < 3.5000000000000001e77 or 3.2000000000000002e129 < (*.f64 a a) Initial program 83.8%
Taylor expanded in a around inf 85.2%
unpow285.2%
Simplified85.2%
Final simplification80.7%
if (*.f64 a a) < 3.49999999999999976e287Initial program 100.0%
if 3.49999999999999976e287 < (*.f64 a a) Initial program 75.6%
Taylor expanded in a around inf 90.7%
unpow290.7%
Simplified90.7%
Final simplification96.9%
Initial program 91.8%
Taylor expanded in a around inf 62.4%
unpow262.4%
Simplified62.4%
Final simplification62.4%
herbie shell --seed 2023167
(FPCore (a b)
:name "Difference of squares"
:precision binary64
:herbie-target
(* (+ a b) (- a b))
(- (* a a) (* b b)))