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 r200236 = 1.0;
double r200237 = s;
double r200238 = -r200237;
double r200239 = exp(r200238);
double r200240 = r200236 + r200239;
double r200241 = r200236 / r200240;
double r200242 = c_p;
double r200243 = pow(r200241, r200242);
double r200244 = r200236 - r200241;
double r200245 = c_n;
double r200246 = pow(r200244, r200245);
double r200247 = r200243 * r200246;
double r200248 = t;
double r200249 = -r200248;
double r200250 = exp(r200249);
double r200251 = r200236 + r200250;
double r200252 = r200236 / r200251;
double r200253 = pow(r200252, r200242);
double r200254 = r200236 - r200252;
double r200255 = pow(r200254, r200245);
double r200256 = r200253 * r200255;
double r200257 = r200247 / r200256;
return r200257;
}
herbie shell --seed 2020065 +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))))