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 r9317053 = 1.0;
double r9317054 = s;
double r9317055 = -r9317054;
double r9317056 = exp(r9317055);
double r9317057 = r9317053 + r9317056;
double r9317058 = r9317053 / r9317057;
double r9317059 = c_p;
double r9317060 = pow(r9317058, r9317059);
double r9317061 = r9317053 - r9317058;
double r9317062 = c_n;
double r9317063 = pow(r9317061, r9317062);
double r9317064 = r9317060 * r9317063;
double r9317065 = t;
double r9317066 = -r9317065;
double r9317067 = exp(r9317066);
double r9317068 = r9317053 + r9317067;
double r9317069 = r9317053 / r9317068;
double r9317070 = pow(r9317069, r9317059);
double r9317071 = r9317053 - r9317069;
double r9317072 = pow(r9317071, r9317062);
double r9317073 = r9317070 * r9317072;
double r9317074 = r9317064 / r9317073;
return r9317074;
}
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))))