\frac{y \cdot \left({e}^{\left(\left(a + b\right) \cdot y\right)} - 1\right)}{\left({e}^{\left(a \cdot y\right)} - 1\right) \cdot \left({e}^{\left(b \cdot y\right)} - 1\right)}\frac{y \cdot \left({e}^{\left(\left(a + b\right) \cdot y\right)} - 1\right)}{\left({e}^{\left(a \cdot y\right)} - 1\right) \cdot \left({e}^{\left(b \cdot y\right)} - 1\right)}double code(double y, double e, double a, double b) {
return ((double) (((double) (y * ((double) (((double) pow(e, ((double) (((double) (a + b)) * y)))) - 1.0)))) / ((double) (((double) (((double) pow(e, ((double) (a * y)))) - 1.0)) * ((double) (((double) pow(e, ((double) (b * y)))) - 1.0))))));
}
double code(double y, double e, double a, double b) {
return ((double) (((double) (y * ((double) (((double) pow(e, ((double) (((double) (a + b)) * y)))) - 1.0)))) / ((double) (((double) (((double) pow(e, ((double) (a * y)))) - 1.0)) * ((double) (((double) pow(e, ((double) (b * y)))) - 1.0))))));
}



Bits error versus y



Bits error versus e



Bits error versus a



Bits error versus b
Results
Initial program 38.0
Final simplification38.0
herbie shell --seed 2020152
(FPCore (y e a b)
:name "(/ (* y (- (pow e (* (+ a b) y)) 1)) (* (- (pow e (* a y)) 1) (- (pow e (* b y)) 1)))"
:precision binary64
(/ (* y (- (pow e (* (+ a b) y)) 1.0)) (* (- (pow e (* a y)) 1.0) (- (pow e (* b y)) 1.0))))