(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 (/ (pow (/ 1.0 (cbrt (+ 2.0 (* 2.0 (exp (log (cosh (/ x s)))))))) 3.0) 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 powf((1.0f / cbrtf((2.0f + (2.0f * expf(logf(coshf((x / s)))))))), 3.0f) / 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) / cbrt(Float32(Float32(2.0) + Float32(Float32(2.0) * exp(log(cosh(Float32(x / s)))))))) ^ Float32(3.0)) / 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{{\left(\frac{1}{\sqrt[3]{2 + 2 \cdot e^{\log \cosh \left(\frac{x}{s}\right)}}}\right)}^{3}}{s}
Results
Initial program 0.1
Simplified0.1
Applied egg-rr0.1
Applied egg-rr0.1
Final simplification0.1
herbie shell --seed 2022210
(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))))))