Average Error: 29.4 → 29.4
Time: 1.4s
Precision: binary64
\[incl \cdot 100 - \frac{incl \cdot 100}{100 + rate} \cdot rate\]
\[100 \cdot \left(incl - rate \cdot \frac{incl}{100 + rate}\right)\]
incl \cdot 100 - \frac{incl \cdot 100}{100 + rate} \cdot rate
100 \cdot \left(incl - rate \cdot \frac{incl}{100 + rate}\right)
double code(double incl, double rate) {
	return ((double) (((double) (incl * 100.0)) - ((double) (((double) (((double) (incl * 100.0)) / ((double) (100.0 + rate)))) * rate))));
}
double code(double incl, double rate) {
	return ((double) (100.0 * ((double) (incl - ((double) (rate * ((double) (incl / ((double) (100.0 + rate))))))))));
}

Error

Bits error versus incl

Bits error versus rate

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 29.4

    \[incl \cdot 100 - \frac{incl \cdot 100}{100 + rate} \cdot rate\]
  2. Simplified29.4

    \[\leadsto \color{blue}{100 \cdot \left(incl - rate \cdot \frac{incl}{100 + rate}\right)}\]
  3. Final simplification29.4

    \[\leadsto 100 \cdot \left(incl - rate \cdot \frac{incl}{100 + rate}\right)\]

Reproduce

herbie shell --seed 2020152 
(FPCore (incl rate)
  :name "(- (* incl 100) (* (/ (* incl 100) (+ 100 rate)) rate))"
  :precision binary64
  (- (* incl 100.0) (* (/ (* incl 100.0) (+ 100.0 rate)) rate)))