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 r133474 = 1.0;
double r133475 = s;
double r133476 = -r133475;
double r133477 = exp(r133476);
double r133478 = r133474 + r133477;
double r133479 = r133474 / r133478;
double r133480 = c_p;
double r133481 = pow(r133479, r133480);
double r133482 = r133474 - r133479;
double r133483 = c_n;
double r133484 = pow(r133482, r133483);
double r133485 = r133481 * r133484;
double r133486 = t;
double r133487 = -r133486;
double r133488 = exp(r133487);
double r133489 = r133474 + r133488;
double r133490 = r133474 / r133489;
double r133491 = pow(r133490, r133480);
double r133492 = r133474 - r133490;
double r133493 = pow(r133492, r133483);
double r133494 = r133491 * r133493;
double r133495 = r133485 / r133494;
return r133495;
}
herbie shell --seed 2019303
(FPCore (c_p c_n t s)
:name "Harley's example"
:precision binary64
:pre (and (< 0.0 c_p) (< 0.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))))