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 r117758 = 1.0;
double r117759 = s;
double r117760 = -r117759;
double r117761 = exp(r117760);
double r117762 = r117758 + r117761;
double r117763 = r117758 / r117762;
double r117764 = c_p;
double r117765 = pow(r117763, r117764);
double r117766 = r117758 - r117763;
double r117767 = c_n;
double r117768 = pow(r117766, r117767);
double r117769 = r117765 * r117768;
double r117770 = t;
double r117771 = -r117770;
double r117772 = exp(r117771);
double r117773 = r117758 + r117772;
double r117774 = r117758 / r117773;
double r117775 = pow(r117774, r117764);
double r117776 = r117758 - r117774;
double r117777 = pow(r117776, r117767);
double r117778 = r117775 * r117777;
double r117779 = r117769 / r117778;
return r117779;
}
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))))