\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\log \left(e^{\sqrt{1 + {\left(\sqrt[3]{\frac{2 \cdot \ell}{Om}} \cdot \sqrt[3]{\frac{2 \cdot \ell}{Om}}\right)}^{2} \cdot \left({\left(\sqrt[3]{\frac{2 \cdot \ell}{Om}}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)\right)}}\right)}\right)}double f(double l, double Om, double kx, double ky) {
double r48204 = 1.0;
double r48205 = 2.0;
double r48206 = r48204 / r48205;
double r48207 = l;
double r48208 = r48205 * r48207;
double r48209 = Om;
double r48210 = r48208 / r48209;
double r48211 = pow(r48210, r48205);
double r48212 = kx;
double r48213 = sin(r48212);
double r48214 = pow(r48213, r48205);
double r48215 = ky;
double r48216 = sin(r48215);
double r48217 = pow(r48216, r48205);
double r48218 = r48214 + r48217;
double r48219 = r48211 * r48218;
double r48220 = r48204 + r48219;
double r48221 = sqrt(r48220);
double r48222 = r48204 / r48221;
double r48223 = r48204 + r48222;
double r48224 = r48206 * r48223;
double r48225 = sqrt(r48224);
return r48225;
}
double f(double l, double Om, double kx, double ky) {
double r48226 = 1.0;
double r48227 = 2.0;
double r48228 = r48226 / r48227;
double r48229 = l;
double r48230 = r48227 * r48229;
double r48231 = Om;
double r48232 = r48230 / r48231;
double r48233 = cbrt(r48232);
double r48234 = r48233 * r48233;
double r48235 = pow(r48234, r48227);
double r48236 = pow(r48233, r48227);
double r48237 = kx;
double r48238 = sin(r48237);
double r48239 = pow(r48238, r48227);
double r48240 = ky;
double r48241 = sin(r48240);
double r48242 = pow(r48241, r48227);
double r48243 = r48239 + r48242;
double r48244 = r48236 * r48243;
double r48245 = r48235 * r48244;
double r48246 = r48226 + r48245;
double r48247 = sqrt(r48246);
double r48248 = exp(r48247);
double r48249 = log(r48248);
double r48250 = r48226 / r48249;
double r48251 = r48226 + r48250;
double r48252 = r48228 * r48251;
double r48253 = sqrt(r48252);
return r48253;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
rmApplied add-cube-cbrt1.7
Applied unpow-prod-down1.7
Applied associate-*l*1.5
rmApplied add-log-exp1.6
Final simplification1.6
herbie shell --seed 2020056
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
:precision binary64
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))