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 r131621 = 1.0;
double r131622 = s;
double r131623 = -r131622;
double r131624 = exp(r131623);
double r131625 = r131621 + r131624;
double r131626 = r131621 / r131625;
double r131627 = c_p;
double r131628 = pow(r131626, r131627);
double r131629 = r131621 - r131626;
double r131630 = c_n;
double r131631 = pow(r131629, r131630);
double r131632 = r131628 * r131631;
double r131633 = t;
double r131634 = -r131633;
double r131635 = exp(r131634);
double r131636 = r131621 + r131635;
double r131637 = r131621 / r131636;
double r131638 = pow(r131637, r131627);
double r131639 = r131621 - r131637;
double r131640 = pow(r131639, r131630);
double r131641 = r131638 * r131640;
double r131642 = r131632 / r131641;
return r131642;
}
herbie shell --seed 2019303
(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))))