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 r176673 = 1.0;
double r176674 = s;
double r176675 = -r176674;
double r176676 = exp(r176675);
double r176677 = r176673 + r176676;
double r176678 = r176673 / r176677;
double r176679 = c_p;
double r176680 = pow(r176678, r176679);
double r176681 = r176673 - r176678;
double r176682 = c_n;
double r176683 = pow(r176681, r176682);
double r176684 = r176680 * r176683;
double r176685 = t;
double r176686 = -r176685;
double r176687 = exp(r176686);
double r176688 = r176673 + r176687;
double r176689 = r176673 / r176688;
double r176690 = pow(r176689, r176679);
double r176691 = r176673 - r176689;
double r176692 = pow(r176691, r176682);
double r176693 = r176690 * r176692;
double r176694 = r176684 / r176693;
return r176694;
}
herbie shell --seed 2020065
(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))))