c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\left(\left|\frac{\frac{\sqrt[3]{A}}{\sqrt[3]{\ell}}}{\sqrt[3]{V}}\right| \cdot c0\right) \cdot \sqrt{\frac{\frac{\left(\sqrt[3]{\sqrt[3]{A}} \cdot \sqrt[3]{\sqrt[3]{A}}\right) \cdot \sqrt[3]{\sqrt[3]{A}}}{\sqrt[3]{\ell}}}{\sqrt[3]{V}}}double f(double c0, double A, double V, double l) {
double r138436 = c0;
double r138437 = A;
double r138438 = V;
double r138439 = l;
double r138440 = r138438 * r138439;
double r138441 = r138437 / r138440;
double r138442 = sqrt(r138441);
double r138443 = r138436 * r138442;
return r138443;
}
double f(double c0, double A, double V, double l) {
double r138444 = A;
double r138445 = cbrt(r138444);
double r138446 = l;
double r138447 = cbrt(r138446);
double r138448 = r138445 / r138447;
double r138449 = V;
double r138450 = cbrt(r138449);
double r138451 = r138448 / r138450;
double r138452 = fabs(r138451);
double r138453 = c0;
double r138454 = r138452 * r138453;
double r138455 = cbrt(r138445);
double r138456 = r138455 * r138455;
double r138457 = r138456 * r138455;
double r138458 = r138457 / r138447;
double r138459 = r138458 / r138450;
double r138460 = sqrt(r138459);
double r138461 = r138454 * r138460;
return r138461;
}



Bits error versus c0



Bits error versus A



Bits error versus V



Bits error versus l
Results
Initial program 19.4
rmApplied add-cube-cbrt19.7
Applied times-frac18.3
rmApplied associate-*l/19.5
Simplified19.2
rmApplied add-cube-cbrt19.5
Applied add-cube-cbrt19.6
Applied add-cube-cbrt19.7
Applied times-frac19.7
Applied times-frac15.6
Applied sqrt-prod7.1
Applied associate-*r*7.1
Simplified1.2
rmApplied add-cube-cbrt1.3
Final simplification1.3
herbie shell --seed 2019325 +o rules:numerics
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
:precision binary64
(* c0 (sqrt (/ A (* V l)))))