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 r110410 = 1.0;
double r110411 = s;
double r110412 = -r110411;
double r110413 = exp(r110412);
double r110414 = r110410 + r110413;
double r110415 = r110410 / r110414;
double r110416 = c_p;
double r110417 = pow(r110415, r110416);
double r110418 = r110410 - r110415;
double r110419 = c_n;
double r110420 = pow(r110418, r110419);
double r110421 = r110417 * r110420;
double r110422 = t;
double r110423 = -r110422;
double r110424 = exp(r110423);
double r110425 = r110410 + r110424;
double r110426 = r110410 / r110425;
double r110427 = pow(r110426, r110416);
double r110428 = r110410 - r110426;
double r110429 = pow(r110428, r110419);
double r110430 = r110427 * r110429;
double r110431 = r110421 / r110430;
return r110431;
}
herbie shell --seed 2019303 +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))))