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 r150136 = 1.0;
double r150137 = s;
double r150138 = -r150137;
double r150139 = exp(r150138);
double r150140 = r150136 + r150139;
double r150141 = r150136 / r150140;
double r150142 = c_p;
double r150143 = pow(r150141, r150142);
double r150144 = r150136 - r150141;
double r150145 = c_n;
double r150146 = pow(r150144, r150145);
double r150147 = r150143 * r150146;
double r150148 = t;
double r150149 = -r150148;
double r150150 = exp(r150149);
double r150151 = r150136 + r150150;
double r150152 = r150136 / r150151;
double r150153 = pow(r150152, r150142);
double r150154 = r150136 - r150152;
double r150155 = pow(r150154, r150145);
double r150156 = r150153 * r150155;
double r150157 = r150147 / r150156;
return r150157;
}
herbie shell --seed 2019195 +o rules:numerics
(FPCore (c_p c_n t s)
:name "Harley's example"
:pre (and (< 0.0 c_p) (< 0.0 c_n))
:herbie-target
(* (pow (/ (+ 1.0 (exp (- t))) (+ 1.0 (exp (- s)))) c_p) (pow (/ (+ 1.0 (exp t)) (+ 1.0 (exp s))) c_n))
(/ (* (pow (/ 1.0 (+ 1.0 (exp (- s)))) c_p) (pow (- 1.0 (/ 1.0 (+ 1.0 (exp (- s))))) c_n)) (* (pow (/ 1.0 (+ 1.0 (exp (- t)))) c_p) (pow (- 1.0 (/ 1.0 (+ 1.0 (exp (- t))))) c_n))))