| Alternative 1 | |
|---|---|
| Error | 0.0 |
| Cost | 6912 |
\[\frac{1}{1 + e^{\frac{-x}{s}}}
\]
(FPCore (x s) :precision binary64 (/ 1.0 (+ 1.0 (exp (/ (- x) s)))))
(FPCore (x s) :precision binary64 (exp (- (log1p (exp (- (/ x s)))))))
double code(double x, double s) {
return 1.0 / (1.0 + exp((-x / s)));
}
double code(double x, double s) {
return exp(-log1p(exp(-(x / s))));
}
public static double code(double x, double s) {
return 1.0 / (1.0 + Math.exp((-x / s)));
}
public static double code(double x, double s) {
return Math.exp(-Math.log1p(Math.exp(-(x / s))));
}
def code(x, s): return 1.0 / (1.0 + math.exp((-x / s)))
def code(x, s): return math.exp(-math.log1p(math.exp(-(x / s))))
function code(x, s) return Float64(1.0 / Float64(1.0 + exp(Float64(Float64(-x) / s)))) end
function code(x, s) return exp(Float64(-log1p(exp(Float64(-Float64(x / s)))))) end
code[x_, s_] := N[(1.0 / N[(1.0 + N[Exp[N[((-x) / s), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, s_] := N[Exp[(-N[Log[1 + N[Exp[(-N[(x / s), $MachinePrecision])], $MachinePrecision]], $MachinePrecision])], $MachinePrecision]
\frac{1}{1 + e^{\frac{-x}{s}}}
e^{-\mathsf{log1p}\left(e^{-\frac{x}{s}}\right)}
Results
Initial program 0.0
Simplified0.0
| Alternative 1 | |
|---|---|
| Error | 0.0 |
| Cost | 6912 |
| Alternative 2 | |
|---|---|
| Error | 43.2 |
| Cost | 64 |
herbie shell --seed 2023010
(FPCore (x s)
:name "Logistic function"
:precision binary64
:pre (and (<= 0.0 s) (<= s 1.0651631))
(/ 1.0 (+ 1.0 (exp (/ (- x) s)))))