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 r8015864 = 1.0;
double r8015865 = s;
double r8015866 = -r8015865;
double r8015867 = exp(r8015866);
double r8015868 = r8015864 + r8015867;
double r8015869 = r8015864 / r8015868;
double r8015870 = c_p;
double r8015871 = pow(r8015869, r8015870);
double r8015872 = r8015864 - r8015869;
double r8015873 = c_n;
double r8015874 = pow(r8015872, r8015873);
double r8015875 = r8015871 * r8015874;
double r8015876 = t;
double r8015877 = -r8015876;
double r8015878 = exp(r8015877);
double r8015879 = r8015864 + r8015878;
double r8015880 = r8015864 / r8015879;
double r8015881 = pow(r8015880, r8015870);
double r8015882 = r8015864 - r8015880;
double r8015883 = pow(r8015882, r8015873);
double r8015884 = r8015881 * r8015883;
double r8015885 = r8015875 / r8015884;
return r8015885;
}
herbie shell --seed 2019138 +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))))