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 r7902671 = 1.0;
double r7902672 = s;
double r7902673 = -r7902672;
double r7902674 = exp(r7902673);
double r7902675 = r7902671 + r7902674;
double r7902676 = r7902671 / r7902675;
double r7902677 = c_p;
double r7902678 = pow(r7902676, r7902677);
double r7902679 = r7902671 - r7902676;
double r7902680 = c_n;
double r7902681 = pow(r7902679, r7902680);
double r7902682 = r7902678 * r7902681;
double r7902683 = t;
double r7902684 = -r7902683;
double r7902685 = exp(r7902684);
double r7902686 = r7902671 + r7902685;
double r7902687 = r7902671 / r7902686;
double r7902688 = pow(r7902687, r7902677);
double r7902689 = r7902671 - r7902687;
double r7902690 = pow(r7902689, r7902680);
double r7902691 = r7902688 * r7902690;
double r7902692 = r7902682 / r7902691;
return r7902692;
}
herbie shell --seed 2019130 +o rules:numerics
(FPCore (c_p c_n t s)
:name "Harley's example"
:pre (and (< 0 c_p) (< 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))))