Use the --timeout flag to change the timeout.
\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c_n}}double f(double c_p, double c_n, double t, double s) {
double r103364 = 1.0;
double r103365 = s;
double r103366 = -r103365;
double r103367 = exp(r103366);
double r103368 = r103364 + r103367;
double r103369 = r103364 / r103368;
double r103370 = c_p;
double r103371 = pow(r103369, r103370);
double r103372 = r103364 - r103369;
double r103373 = c_n;
double r103374 = pow(r103372, r103373);
double r103375 = r103371 * r103374;
double r103376 = t;
double r103377 = -r103376;
double r103378 = exp(r103377);
double r103379 = r103364 + r103378;
double r103380 = r103364 / r103379;
double r103381 = pow(r103380, r103370);
double r103382 = r103364 - r103380;
double r103383 = pow(r103382, r103373);
double r103384 = r103381 * r103383;
double r103385 = r103375 / r103384;
return r103385;
}
herbie shell --seed 2019235
(FPCore (c_p c_n t s)
:name "Harley's example"
:precision binary64
:pre (and (< 0.0 c_p) (< 0.0 c_n))
:herbie-target
(* (pow (/ (+ 1 (exp (- t))) (+ 1 (exp (- s)))) c_p) (pow (/ (+ 1 (exp t)) (+ 1 (exp s))) c_n))
(/ (* (pow (/ 1 (+ 1 (exp (- s)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n)) (* (pow (/ 1 (+ 1 (exp (- t)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n))))