c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\left(\left|\frac{\frac{\sqrt[3]{A}}{\sqrt[3]{V}}}{\sqrt[3]{\ell}}\right| \cdot c0\right) \cdot \sqrt{\frac{\frac{\sqrt[3]{A}}{\sqrt[3]{V}}}{\left(\sqrt[3]{\sqrt[3]{\ell}} \cdot \sqrt[3]{\sqrt[3]{\ell}}\right) \cdot \sqrt[3]{\sqrt[3]{\ell}}}}double f(double c0, double A, double V, double l) {
double r291178 = c0;
double r291179 = A;
double r291180 = V;
double r291181 = l;
double r291182 = r291180 * r291181;
double r291183 = r291179 / r291182;
double r291184 = sqrt(r291183);
double r291185 = r291178 * r291184;
return r291185;
}
double f(double c0, double A, double V, double l) {
double r291186 = A;
double r291187 = cbrt(r291186);
double r291188 = V;
double r291189 = cbrt(r291188);
double r291190 = r291187 / r291189;
double r291191 = l;
double r291192 = cbrt(r291191);
double r291193 = r291190 / r291192;
double r291194 = fabs(r291193);
double r291195 = c0;
double r291196 = r291194 * r291195;
double r291197 = cbrt(r291192);
double r291198 = r291197 * r291197;
double r291199 = r291198 * r291197;
double r291200 = r291190 / r291199;
double r291201 = sqrt(r291200);
double r291202 = r291196 * r291201;
return r291202;
}



Bits error versus c0



Bits error versus A



Bits error versus V



Bits error versus l
Results
Initial program 19.2
rmApplied associate-/r*18.9
rmApplied add-cube-cbrt19.2
Applied add-cube-cbrt19.4
Applied add-cube-cbrt19.4
Applied times-frac19.4
Applied times-frac15.1
Applied sqrt-prod6.8
Applied associate-*r*6.8
Simplified1.2
rmApplied add-cube-cbrt1.3
Final simplification1.3
herbie shell --seed 2020036 +o rules:numerics
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
:precision binary64
(* c0 (sqrt (/ A (* V l)))))