Average Error: 19.3 → 1.3
Time: 5.5s
Precision: binary64
\[\]
\[\]
double code(double c0, double A, double V, double l) {
	return ((double) (c0 * ((double) sqrt(((double) (A / ((double) (V * l))))))));
}
double code(double c0, double A, double V, double l) {
	return ((double) (((double) (((double) fabs(((double) (((double) cbrt(A)) / ((double) (((double) cbrt(l)) * ((double) cbrt(V)))))))) * c0)) * ((double) sqrt(((double) (((double) (((double) cbrt(A)) / ((double) cbrt(V)))) / ((double) (((double) cbrt(((double) cbrt(l)))) * ((double) (((double) cbrt(((double) cbrt(l)))) * ((double) cbrt(((double) cbrt(l))))))))))))));
}

Error

Bits error versus c0

Bits error versus A

Bits error versus V

Bits error versus l

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 19.3

    \[\]
  2. Using strategy rm
  3. Applied associate-/r*19.2

    \[\leadsto \]
  4. Using strategy rm
  5. Applied add-cube-cbrt19.6

    \[\leadsto \]
  6. Applied add-cube-cbrt19.7

    \[\leadsto \]
  7. Applied add-cube-cbrt19.8

    \[\leadsto \]
  8. Applied times-frac19.8

    \[\leadsto \]
  9. Applied times-frac15.7

    \[\leadsto \]
  10. Applied sqrt-prod7.2

    \[\leadsto \]
  11. Applied associate-*r*7.2

    \[\leadsto \]
  12. Simplified1.1

    \[\leadsto \]
  13. Using strategy rm
  14. Applied add-cube-cbrt1.3

    \[\leadsto \]
  15. Final simplification1.3

    \[\leadsto \]

Reproduce

herbie shell --seed 2020192 
(FPCore (c0 A V l)
  :name "Henrywood and Agarwal, Equation (3)"
  :precision binary64
  (* c0 (sqrt (/ A (* V l)))))