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 r152103 = 1.0;
double r152104 = s;
double r152105 = -r152104;
double r152106 = exp(r152105);
double r152107 = r152103 + r152106;
double r152108 = r152103 / r152107;
double r152109 = c_p;
double r152110 = pow(r152108, r152109);
double r152111 = r152103 - r152108;
double r152112 = c_n;
double r152113 = pow(r152111, r152112);
double r152114 = r152110 * r152113;
double r152115 = t;
double r152116 = -r152115;
double r152117 = exp(r152116);
double r152118 = r152103 + r152117;
double r152119 = r152103 / r152118;
double r152120 = pow(r152119, r152109);
double r152121 = r152103 - r152119;
double r152122 = pow(r152121, r152112);
double r152123 = r152120 * r152122;
double r152124 = r152114 / r152123;
return r152124;
}
herbie shell --seed 2019195 +o rules:numerics
(FPCore (c_p c_n t s)
:name "Harley's example"
:pre (and (< 0.0 c_p) (< 0.0 c_n))
:herbie-target
(* (pow (/ (+ 1.0 (exp (- t))) (+ 1.0 (exp (- s)))) c_p) (pow (/ (+ 1.0 (exp t)) (+ 1.0 (exp s))) c_n))
(/ (* (pow (/ 1.0 (+ 1.0 (exp (- s)))) c_p) (pow (- 1.0 (/ 1.0 (+ 1.0 (exp (- s))))) c_n)) (* (pow (/ 1.0 (+ 1.0 (exp (- t)))) c_p) (pow (- 1.0 (/ 1.0 (+ 1.0 (exp (- t))))) c_n))))