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 r9009879 = 1.0;
double r9009880 = s;
double r9009881 = -r9009880;
double r9009882 = exp(r9009881);
double r9009883 = r9009879 + r9009882;
double r9009884 = r9009879 / r9009883;
double r9009885 = c_p;
double r9009886 = pow(r9009884, r9009885);
double r9009887 = r9009879 - r9009884;
double r9009888 = c_n;
double r9009889 = pow(r9009887, r9009888);
double r9009890 = r9009886 * r9009889;
double r9009891 = t;
double r9009892 = -r9009891;
double r9009893 = exp(r9009892);
double r9009894 = r9009879 + r9009893;
double r9009895 = r9009879 / r9009894;
double r9009896 = pow(r9009895, r9009885);
double r9009897 = r9009879 - r9009895;
double r9009898 = pow(r9009897, r9009888);
double r9009899 = r9009896 * r9009898;
double r9009900 = r9009890 / r9009899;
return r9009900;
}
herbie shell --seed 2019135 +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))))