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 r80474 = 1.0;
double r80475 = s;
double r80476 = -r80475;
double r80477 = exp(r80476);
double r80478 = r80474 + r80477;
double r80479 = r80474 / r80478;
double r80480 = c_p;
double r80481 = pow(r80479, r80480);
double r80482 = r80474 - r80479;
double r80483 = c_n;
double r80484 = pow(r80482, r80483);
double r80485 = r80481 * r80484;
double r80486 = t;
double r80487 = -r80486;
double r80488 = exp(r80487);
double r80489 = r80474 + r80488;
double r80490 = r80474 / r80489;
double r80491 = pow(r80490, r80480);
double r80492 = r80474 - r80490;
double r80493 = pow(r80492, r80483);
double r80494 = r80491 * r80493;
double r80495 = r80485 / r80494;
return r80495;
}
herbie shell --seed 2020045 +o rules:numerics
(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))))