Average Error: 15.0 → 0.9
Time: 3.6s
Precision: binary64
\[\]
\[\]
double code(double g, double a) {
	return ((double) cbrt(((double) (g / ((double) (2.0 * a))))));
}
double code(double g, double a) {
	return ((double) (((double) (((double) cbrt(((double) (1.0 / 2.0)))) * ((double) cbrt(g)))) * ((double) cbrt(((double) (1.0 / a))))));
}

Error

Bits error versus g

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 15.0

    \[\]
  2. Using strategy rm
  3. Applied div-inv15.0

    \[\leadsto \]
  4. Applied cbrt-prod0.9

    \[\leadsto \]
  5. Using strategy rm
  6. Applied *-un-lft-identity0.9

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

    \[\leadsto \]
  8. Applied cbrt-prod0.9

    \[\leadsto \]
  9. Applied associate-*r*0.9

    \[\leadsto \]
  10. Simplified0.9

    \[\leadsto \]
  11. Final simplification0.9

    \[\leadsto \]

Reproduce

herbie shell --seed 2020179 
(FPCore (g a)
  :name "2-ancestry mixing, zero discriminant"
  :precision binary64
  (cbrt (/ g (* 2.0 a))))