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 r6870300 = 1.0;
double r6870301 = s;
double r6870302 = -r6870301;
double r6870303 = exp(r6870302);
double r6870304 = r6870300 + r6870303;
double r6870305 = r6870300 / r6870304;
double r6870306 = c_p;
double r6870307 = pow(r6870305, r6870306);
double r6870308 = r6870300 - r6870305;
double r6870309 = c_n;
double r6870310 = pow(r6870308, r6870309);
double r6870311 = r6870307 * r6870310;
double r6870312 = t;
double r6870313 = -r6870312;
double r6870314 = exp(r6870313);
double r6870315 = r6870300 + r6870314;
double r6870316 = r6870300 / r6870315;
double r6870317 = pow(r6870316, r6870306);
double r6870318 = r6870300 - r6870316;
double r6870319 = pow(r6870318, r6870309);
double r6870320 = r6870317 * r6870319;
double r6870321 = r6870311 / r6870320;
return r6870321;
}
herbie shell --seed 2019133 +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))))