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 r7295027 = 1.0;
double r7295028 = s;
double r7295029 = -r7295028;
double r7295030 = exp(r7295029);
double r7295031 = r7295027 + r7295030;
double r7295032 = r7295027 / r7295031;
double r7295033 = c_p;
double r7295034 = pow(r7295032, r7295033);
double r7295035 = r7295027 - r7295032;
double r7295036 = c_n;
double r7295037 = pow(r7295035, r7295036);
double r7295038 = r7295034 * r7295037;
double r7295039 = t;
double r7295040 = -r7295039;
double r7295041 = exp(r7295040);
double r7295042 = r7295027 + r7295041;
double r7295043 = r7295027 / r7295042;
double r7295044 = pow(r7295043, r7295033);
double r7295045 = r7295027 - r7295043;
double r7295046 = pow(r7295045, r7295036);
double r7295047 = r7295044 * r7295046;
double r7295048 = r7295038 / r7295047;
return r7295048;
}
herbie shell --seed 2019158 +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))))