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 r135995 = 1.0;
double r135996 = s;
double r135997 = -r135996;
double r135998 = exp(r135997);
double r135999 = r135995 + r135998;
double r136000 = r135995 / r135999;
double r136001 = c_p;
double r136002 = pow(r136000, r136001);
double r136003 = r135995 - r136000;
double r136004 = c_n;
double r136005 = pow(r136003, r136004);
double r136006 = r136002 * r136005;
double r136007 = t;
double r136008 = -r136007;
double r136009 = exp(r136008);
double r136010 = r135995 + r136009;
double r136011 = r135995 / r136010;
double r136012 = pow(r136011, r136001);
double r136013 = r135995 - r136011;
double r136014 = pow(r136013, r136004);
double r136015 = r136012 * r136014;
double r136016 = r136006 / r136015;
return r136016;
}
herbie shell --seed 2020045
(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))))