Average Error: 38.0 → 38.0
Time: 9.5s
Precision: binary64
\[\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)}\]
\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))))));
}

Error

Bits error versus y

Bits error versus e

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 38.0

    \[\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)}\]
  2. Final simplification38.0

    \[\leadsto \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)}\]

Reproduce

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))))