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 r100022 = 1.0;
double r100023 = s;
double r100024 = -r100023;
double r100025 = exp(r100024);
double r100026 = r100022 + r100025;
double r100027 = r100022 / r100026;
double r100028 = c_p;
double r100029 = pow(r100027, r100028);
double r100030 = r100022 - r100027;
double r100031 = c_n;
double r100032 = pow(r100030, r100031);
double r100033 = r100029 * r100032;
double r100034 = t;
double r100035 = -r100034;
double r100036 = exp(r100035);
double r100037 = r100022 + r100036;
double r100038 = r100022 / r100037;
double r100039 = pow(r100038, r100028);
double r100040 = r100022 - r100038;
double r100041 = pow(r100040, r100031);
double r100042 = r100039 * r100041;
double r100043 = r100033 / r100042;
return r100043;
}
herbie shell --seed 2019303
(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))))