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 r7898824 = 1.0;
double r7898825 = s;
double r7898826 = -r7898825;
double r7898827 = exp(r7898826);
double r7898828 = r7898824 + r7898827;
double r7898829 = r7898824 / r7898828;
double r7898830 = c_p;
double r7898831 = pow(r7898829, r7898830);
double r7898832 = r7898824 - r7898829;
double r7898833 = c_n;
double r7898834 = pow(r7898832, r7898833);
double r7898835 = r7898831 * r7898834;
double r7898836 = t;
double r7898837 = -r7898836;
double r7898838 = exp(r7898837);
double r7898839 = r7898824 + r7898838;
double r7898840 = r7898824 / r7898839;
double r7898841 = pow(r7898840, r7898830);
double r7898842 = r7898824 - r7898840;
double r7898843 = pow(r7898842, r7898833);
double r7898844 = r7898841 * r7898843;
double r7898845 = r7898835 / r7898844;
return r7898845;
}
herbie shell --seed 2019163 +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))))