Average Error: 6.5 → 6.5
Time: 973.0ms
Precision: binary64
\[\frac{\left(\frac{a \cdot soh}{10^{3}} \cdot 100\right) \cdot efficiency}{10^{3}}\]
\[\frac{\left(\frac{a \cdot soh}{10^{3}} \cdot 100\right) \cdot efficiency}{10^{3}}\]
\frac{\left(\frac{a \cdot soh}{10^{3}} \cdot 100\right) \cdot efficiency}{10^{3}}
\frac{\left(\frac{a \cdot soh}{10^{3}} \cdot 100\right) \cdot efficiency}{10^{3}}
double code(double a, double soh, double efficiency) {
	return ((double) (((double) (((double) (((double) (((double) (a * soh)) / 1000.0)) * 100.0)) * efficiency)) / 1000.0));
}
double code(double a, double soh, double efficiency) {
	return ((double) (((double) (((double) (((double) (((double) (a * soh)) / 1000.0)) * 100.0)) * efficiency)) / 1000.0));
}

Error

Bits error versus a

Bits error versus soh

Bits error versus efficiency

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 6.5

    \[\frac{\left(\frac{a \cdot soh}{10^{3}} \cdot 100\right) \cdot efficiency}{10^{3}}\]
  2. Final simplification6.5

    \[\leadsto \frac{\left(\frac{a \cdot soh}{10^{3}} \cdot 100\right) \cdot efficiency}{10^{3}}\]

Reproduce

herbie shell --seed 2020152 
(FPCore (a soh efficiency)
  :name "(/ (* (* (/ (* a soh) 1000) 100) efficiency) 1000)"
  :precision binary64
  (/ (* (* (/ (* a soh) 1000.0) 100.0) efficiency) 1000.0))