| Alternative 1 | |
|---|---|
| Accuracy | 99.8% |
| Cost | 9760 |

(FPCore (x s) :precision binary32 (/ 1.0 (+ 1.0 (exp (/ (- x) s)))))
(FPCore (x s) :precision binary32 (/ 1.0 (+ 1.0 (pow (pow (exp 1.5) (/ x s)) -0.6666666666666666))))
float code(float x, float s) {
return 1.0f / (1.0f + expf((-x / s)));
}
float code(float x, float s) {
return 1.0f / (1.0f + powf(powf(expf(1.5f), (x / s)), -0.6666666666666666f));
}
real(4) function code(x, s)
real(4), intent (in) :: x
real(4), intent (in) :: s
code = 1.0e0 / (1.0e0 + exp((-x / s)))
end function
real(4) function code(x, s)
real(4), intent (in) :: x
real(4), intent (in) :: s
code = 1.0e0 / (1.0e0 + ((exp(1.5e0) ** (x / s)) ** (-0.6666666666666666e0)))
end function
function code(x, s) return Float32(Float32(1.0) / Float32(Float32(1.0) + exp(Float32(Float32(-x) / s)))) end
function code(x, s) return Float32(Float32(1.0) / Float32(Float32(1.0) + ((exp(Float32(1.5)) ^ Float32(x / s)) ^ Float32(-0.6666666666666666)))) end
function tmp = code(x, s) tmp = single(1.0) / (single(1.0) + exp((-x / s))); end
function tmp = code(x, s) tmp = single(1.0) / (single(1.0) + ((exp(single(1.5)) ^ (x / s)) ^ single(-0.6666666666666666))); end
\frac{1}{1 + e^{\frac{-x}{s}}}
\frac{1}{1 + {\left({\left(e^{1.5}\right)}^{\left(\frac{x}{s}\right)}\right)}^{-0.6666666666666666}}
Herbie found 13 alternatives:
| Alternative | Accuracy | Speedup |
|---|
Results
Initial program 99.7%
Applied egg-rr99.1%
[Start]99.7 | \[ \frac{1}{1 + e^{\frac{-x}{s}}}
\] |
|---|---|
distribute-frac-neg [=>]99.7 | \[ \frac{1}{1 + e^{\color{blue}{-\frac{x}{s}}}}
\] |
exp-neg [=>]99.7 | \[ \frac{1}{1 + \color{blue}{\frac{1}{e^{\frac{x}{s}}}}}
\] |
div-inv [=>]99.6 | \[ \frac{1}{1 + \frac{1}{e^{\color{blue}{x \cdot \frac{1}{s}}}}}
\] |
add-sqr-sqrt [=>]54.2 | \[ \frac{1}{1 + \frac{1}{e^{\color{blue}{\left(\sqrt{x} \cdot \sqrt{x}\right)} \cdot \frac{1}{s}}}}
\] |
sqrt-unprod [=>]67.6 | \[ \frac{1}{1 + \frac{1}{e^{\color{blue}{\sqrt{x \cdot x}} \cdot \frac{1}{s}}}}
\] |
sqr-neg [<=]67.6 | \[ \frac{1}{1 + \frac{1}{e^{\sqrt{\color{blue}{\left(-x\right) \cdot \left(-x\right)}} \cdot \frac{1}{s}}}}
\] |
sqrt-unprod [<=]15.4 | \[ \frac{1}{1 + \frac{1}{e^{\color{blue}{\left(\sqrt{-x} \cdot \sqrt{-x}\right)} \cdot \frac{1}{s}}}}
\] |
add-sqr-sqrt [<=]27.7 | \[ \frac{1}{1 + \frac{1}{e^{\color{blue}{\left(-x\right)} \cdot \frac{1}{s}}}}
\] |
div-inv [<=]27.7 | \[ \frac{1}{1 + \frac{1}{e^{\color{blue}{\frac{-x}{s}}}}}
\] |
pow1 [=>]27.7 | \[ \frac{1}{1 + \frac{1}{\color{blue}{{\left(e^{\frac{-x}{s}}\right)}^{1}}}}
\] |
pow1 [<=]27.7 | \[ \frac{1}{1 + \frac{1}{\color{blue}{e^{\frac{-x}{s}}}}}
\] |
add-cbrt-cube [=>]27.7 | \[ \frac{1}{1 + \frac{1}{\color{blue}{\sqrt[3]{\left(e^{\frac{-x}{s}} \cdot e^{\frac{-x}{s}}\right) \cdot e^{\frac{-x}{s}}}}}}
\] |
pow1/3 [=>]27.7 | \[ \frac{1}{1 + \frac{1}{\color{blue}{{\left(\left(e^{\frac{-x}{s}} \cdot e^{\frac{-x}{s}}\right) \cdot e^{\frac{-x}{s}}\right)}^{0.3333333333333333}}}}
\] |
pow-flip [=>]27.7 | \[ \frac{1}{1 + \color{blue}{{\left(\left(e^{\frac{-x}{s}} \cdot e^{\frac{-x}{s}}\right) \cdot e^{\frac{-x}{s}}\right)}^{\left(-0.3333333333333333\right)}}}
\] |
Simplified99.1%
[Start]99.1 | \[ \frac{1}{1 + {\left(e^{3 \cdot \frac{x}{s}}\right)}^{-0.3333333333333333}}
\] |
|---|---|
sqr-pow [=>]99.1 | \[ \frac{1}{1 + \color{blue}{{\left(e^{3 \cdot \frac{x}{s}}\right)}^{\left(\frac{-0.3333333333333333}{2}\right)} \cdot {\left(e^{3 \cdot \frac{x}{s}}\right)}^{\left(\frac{-0.3333333333333333}{2}\right)}}}
\] |
*-commutative [=>]99.1 | \[ \frac{1}{1 + {\left(e^{\color{blue}{\frac{x}{s} \cdot 3}}\right)}^{\left(\frac{-0.3333333333333333}{2}\right)} \cdot {\left(e^{3 \cdot \frac{x}{s}}\right)}^{\left(\frac{-0.3333333333333333}{2}\right)}}
\] |
exp-prod [=>]99.1 | \[ \frac{1}{1 + {\color{blue}{\left({\left(e^{\frac{x}{s}}\right)}^{3}\right)}}^{\left(\frac{-0.3333333333333333}{2}\right)} \cdot {\left(e^{3 \cdot \frac{x}{s}}\right)}^{\left(\frac{-0.3333333333333333}{2}\right)}}
\] |
metadata-eval [=>]99.1 | \[ \frac{1}{1 + {\left({\left(e^{\frac{x}{s}}\right)}^{3}\right)}^{\color{blue}{-0.16666666666666666}} \cdot {\left(e^{3 \cdot \frac{x}{s}}\right)}^{\left(\frac{-0.3333333333333333}{2}\right)}}
\] |
*-commutative [=>]99.1 | \[ \frac{1}{1 + {\left({\left(e^{\frac{x}{s}}\right)}^{3}\right)}^{-0.16666666666666666} \cdot {\left(e^{\color{blue}{\frac{x}{s} \cdot 3}}\right)}^{\left(\frac{-0.3333333333333333}{2}\right)}}
\] |
exp-prod [=>]99.1 | \[ \frac{1}{1 + {\left({\left(e^{\frac{x}{s}}\right)}^{3}\right)}^{-0.16666666666666666} \cdot {\color{blue}{\left({\left(e^{\frac{x}{s}}\right)}^{3}\right)}}^{\left(\frac{-0.3333333333333333}{2}\right)}}
\] |
metadata-eval [=>]99.1 | \[ \frac{1}{1 + {\left({\left(e^{\frac{x}{s}}\right)}^{3}\right)}^{-0.16666666666666666} \cdot {\left({\left(e^{\frac{x}{s}}\right)}^{3}\right)}^{\color{blue}{-0.16666666666666666}}}
\] |
Applied egg-rr99.8%
[Start]99.1 | \[ \frac{1}{1 + {\left({\left(e^{\frac{x}{s}}\right)}^{3}\right)}^{-0.16666666666666666} \cdot {\left({\left(e^{\frac{x}{s}}\right)}^{3}\right)}^{-0.16666666666666666}}
\] |
|---|---|
pow-prod-up [=>]99.1 | \[ \frac{1}{1 + \color{blue}{{\left({\left(e^{\frac{x}{s}}\right)}^{3}\right)}^{\left(-0.16666666666666666 + -0.16666666666666666\right)}}}
\] |
sqr-pow [=>]99.1 | \[ \frac{1}{1 + {\color{blue}{\left({\left(e^{\frac{x}{s}}\right)}^{\left(\frac{3}{2}\right)} \cdot {\left(e^{\frac{x}{s}}\right)}^{\left(\frac{3}{2}\right)}\right)}}^{\left(-0.16666666666666666 + -0.16666666666666666\right)}}
\] |
pow2 [=>]99.1 | \[ \frac{1}{1 + {\color{blue}{\left({\left({\left(e^{\frac{x}{s}}\right)}^{\left(\frac{3}{2}\right)}\right)}^{2}\right)}}^{\left(-0.16666666666666666 + -0.16666666666666666\right)}}
\] |
pow-pow [=>]99.8 | \[ \frac{1}{1 + \color{blue}{{\left({\left(e^{\frac{x}{s}}\right)}^{\left(\frac{3}{2}\right)}\right)}^{\left(2 \cdot \left(-0.16666666666666666 + -0.16666666666666666\right)\right)}}}
\] |
metadata-eval [=>]99.8 | \[ \frac{1}{1 + {\left({\left(e^{\frac{x}{s}}\right)}^{\color{blue}{1.5}}\right)}^{\left(2 \cdot \left(-0.16666666666666666 + -0.16666666666666666\right)\right)}}
\] |
metadata-eval [=>]99.8 | \[ \frac{1}{1 + {\left({\left(e^{\frac{x}{s}}\right)}^{1.5}\right)}^{\left(2 \cdot \color{blue}{-0.3333333333333333}\right)}}
\] |
metadata-eval [=>]99.8 | \[ \frac{1}{1 + {\left({\left(e^{\frac{x}{s}}\right)}^{1.5}\right)}^{\color{blue}{-0.6666666666666666}}}
\] |
Taylor expanded in x around inf 99.7%
Simplified99.8%
[Start]99.7 | \[ \frac{1}{1 + {\left(e^{1.5 \cdot \frac{x}{s}}\right)}^{-0.6666666666666666}}
\] |
|---|---|
exp-prod [=>]99.8 | \[ \frac{1}{1 + {\color{blue}{\left({\left(e^{1.5}\right)}^{\left(\frac{x}{s}\right)}\right)}}^{-0.6666666666666666}}
\] |
Final simplification99.8%
| Alternative 1 | |
|---|---|
| Accuracy | 99.8% |
| Cost | 9760 |
| Alternative 2 | |
|---|---|
| Accuracy | 99.7% |
| Cost | 6720 |
| Alternative 3 | |
|---|---|
| Accuracy | 99.8% |
| Cost | 3456 |
| Alternative 4 | |
|---|---|
| Accuracy | 77.0% |
| Cost | 552 |
| Alternative 5 | |
|---|---|
| Accuracy | 94.2% |
| Cost | 552 |
| Alternative 6 | |
|---|---|
| Accuracy | 94.0% |
| Cost | 552 |
| Alternative 7 | |
|---|---|
| Accuracy | 74.8% |
| Cost | 520 |
| Alternative 8 | |
|---|---|
| Accuracy | 93.6% |
| Cost | 516 |
| Alternative 9 | |
|---|---|
| Accuracy | 46.8% |
| Cost | 196 |
| Alternative 10 | |
|---|---|
| Accuracy | 69.6% |
| Cost | 196 |
| Alternative 11 | |
|---|---|
| Accuracy | 46.8% |
| Cost | 164 |
| Alternative 12 | |
|---|---|
| Accuracy | 35.4% |
| Cost | 32 |
herbie shell --seed 2023160
(FPCore (x s)
:name "Logistic function"
:precision binary32
:pre (and (<= 0.0 s) (<= s 1.0651631))
(/ 1.0 (+ 1.0 (exp (/ (- x) s)))))