Average Error: 47.6 → 47.6
Time: 5.5s
Precision: binary64
\[\frac{e \cdot \left(e^{\left(a + b\right) \cdot e} - 1\right)}{\left(e^{a \cdot e} - 1\right) \cdot \left(e^{b \cdot e} - 1\right)} - timeout\]
\[\frac{e \cdot \left(e^{\left(a + b\right) \cdot e} - 1\right)}{\left(e^{a \cdot e} - 1\right) \cdot \left(e^{b \cdot e} - 1\right)} - timeout\]
\frac{e \cdot \left(e^{\left(a + b\right) \cdot e} - 1\right)}{\left(e^{a \cdot e} - 1\right) \cdot \left(e^{b \cdot e} - 1\right)} - timeout
\frac{e \cdot \left(e^{\left(a + b\right) \cdot e} - 1\right)}{\left(e^{a \cdot e} - 1\right) \cdot \left(e^{b \cdot e} - 1\right)} - timeout
double code(double e, double a, double b, double timeout) {
	return ((double) (((double) (((double) (e * ((double) (((double) exp(((double) (((double) (a + b)) * e)))) - 1.0)))) / ((double) (((double) (((double) exp(((double) (a * e)))) - 1.0)) * ((double) (((double) exp(((double) (b * e)))) - 1.0)))))) - timeout));
}
double code(double e, double a, double b, double timeout) {
	return ((double) (((double) (((double) (e * ((double) (((double) exp(((double) (((double) (a + b)) * e)))) - 1.0)))) / ((double) (((double) (((double) exp(((double) (a * e)))) - 1.0)) * ((double) (((double) exp(((double) (b * e)))) - 1.0)))))) - timeout));
}

Error

Bits error versus e

Bits error versus a

Bits error versus b

Bits error versus timeout

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 47.6

    \[\frac{e \cdot \left(e^{\left(a + b\right) \cdot e} - 1\right)}{\left(e^{a \cdot e} - 1\right) \cdot \left(e^{b \cdot e} - 1\right)} - timeout\]
  2. Final simplification47.6

    \[\leadsto \frac{e \cdot \left(e^{\left(a + b\right) \cdot e} - 1\right)}{\left(e^{a \cdot e} - 1\right) \cdot \left(e^{b \cdot e} - 1\right)} - timeout\]

Reproduce

herbie shell --seed 2020152 
(FPCore (e a b timeout)
  :name "(- (/ (* e (- (exp (* (+ a b) e)) 1)) (* (- (exp (* a e)) 1) (- (exp (* b e)) 1))) timeout)"
  :precision binary64
  (- (/ (* e (- (exp (* (+ a b) e)) 1.0)) (* (- (exp (* a e)) 1.0) (- (exp (* b e)) 1.0))) timeout))