| Alternative 1 | |
|---|---|
| Error | 0.1 |
| Cost | 6848 |
\[\frac{\frac{1}{e^{\frac{-x}{s}} + \left(2 + e^{\frac{x}{s}}\right)}}{s}
\]
(FPCore (x s) :precision binary32 (/ (exp (/ (- (fabs x)) s)) (* (* s (+ 1.0 (exp (/ (- (fabs x)) s)))) (+ 1.0 (exp (/ (- (fabs x)) s))))))
(FPCore (x s) :precision binary32 (/ (/ 1.0 (+ 2.0 (* 2.0 (expm1 (log1p (cosh (/ x s))))))) s))
float code(float x, float s) {
return expf((-fabsf(x) / s)) / ((s * (1.0f + expf((-fabsf(x) / s)))) * (1.0f + expf((-fabsf(x) / s))));
}
float code(float x, float s) {
return (1.0f / (2.0f + (2.0f * expm1f(log1pf(coshf((x / s))))))) / s;
}
function code(x, s) return Float32(exp(Float32(Float32(-abs(x)) / s)) / Float32(Float32(s * Float32(Float32(1.0) + exp(Float32(Float32(-abs(x)) / s)))) * Float32(Float32(1.0) + exp(Float32(Float32(-abs(x)) / s))))) end
function code(x, s) return Float32(Float32(Float32(1.0) / Float32(Float32(2.0) + Float32(Float32(2.0) * expm1(log1p(cosh(Float32(x / s))))))) / s) end
\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)}
\frac{\frac{1}{2 + 2 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\cosh \left(\frac{x}{s}\right)\right)\right)}}{s}
Results
Initial program 0.1
Simplified0.1
Applied egg-rr0.1
Applied egg-rr0.1
Final simplification0.1
| Alternative 1 | |
|---|---|
| Error | 0.1 |
| Cost | 6848 |
| Alternative 2 | |
|---|---|
| Error | 0.2 |
| Cost | 3616 |
| Alternative 3 | |
|---|---|
| Error | 4.6 |
| Cost | 3588 |
| Alternative 4 | |
|---|---|
| Error | 0.1 |
| Cost | 3552 |
| Alternative 5 | |
|---|---|
| Error | 7.6 |
| Cost | 480 |
| Alternative 6 | |
|---|---|
| Error | 7.6 |
| Cost | 416 |
| Alternative 7 | |
|---|---|
| Error | 23.6 |
| Cost | 96 |

herbie shell --seed 2022284
(FPCore (x s)
:name "Logistic distribution"
:precision binary32
:pre (and (<= 0.0 s) (<= s 1.0651631))
(/ (exp (/ (- (fabs x)) s)) (* (* s (+ 1.0 (exp (/ (- (fabs x)) s)))) (+ 1.0 (exp (/ (- (fabs x)) s))))))