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 r211140 = c0;
double r211141 = A;
double r211142 = V;
double r211143 = l;
double r211144 = r211142 * r211143;
double r211145 = r211141 / r211144;
double r211146 = sqrt(r211145);
double r211147 = r211140 * r211146;
return r211147;
}
double f(double c0, double A, double V, double l) {
double r211148 = A;
double r211149 = cbrt(r211148);
double r211150 = l;
double r211151 = cbrt(r211150);
double r211152 = r211149 / r211151;
double r211153 = V;
double r211154 = cbrt(r211153);
double r211155 = r211152 / r211154;
double r211156 = fabs(r211155);
double r211157 = c0;
double r211158 = r211156 * r211157;
double r211159 = cbrt(r211149);
double r211160 = r211159 * r211159;
double r211161 = r211160 * r211159;
double r211162 = r211161 / r211151;
double r211163 = r211162 / r211154;
double r211164 = sqrt(r211163);
double r211165 = r211158 * r211164;
return r211165;
}



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)))))