\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}{\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)}double f(double l, double Om, double kx, double ky) {
double r31296 = 1.0;
double r31297 = 2.0;
double r31298 = r31296 / r31297;
double r31299 = l;
double r31300 = r31297 * r31299;
double r31301 = Om;
double r31302 = r31300 / r31301;
double r31303 = pow(r31302, r31297);
double r31304 = kx;
double r31305 = sin(r31304);
double r31306 = pow(r31305, r31297);
double r31307 = ky;
double r31308 = sin(r31307);
double r31309 = pow(r31308, r31297);
double r31310 = r31306 + r31309;
double r31311 = r31303 * r31310;
double r31312 = r31296 + r31311;
double r31313 = sqrt(r31312);
double r31314 = r31296 / r31313;
double r31315 = r31296 + r31314;
double r31316 = r31298 * r31315;
double r31317 = sqrt(r31316);
return r31317;
}
double f(double l, double Om, double kx, double ky) {
double r31318 = 1.0;
double r31319 = 2.0;
double r31320 = r31318 / r31319;
double r31321 = l;
double r31322 = r31319 * r31321;
double r31323 = Om;
double r31324 = r31322 / r31323;
double r31325 = cbrt(r31324);
double r31326 = r31325 * r31325;
double r31327 = pow(r31326, r31319);
double r31328 = pow(r31325, r31319);
double r31329 = kx;
double r31330 = sin(r31329);
double r31331 = pow(r31330, r31319);
double r31332 = ky;
double r31333 = sin(r31332);
double r31334 = pow(r31333, r31319);
double r31335 = r31331 + r31334;
double r31336 = r31328 * r31335;
double r31337 = r31327 * r31336;
double r31338 = r31318 + r31337;
double r31339 = sqrt(r31338);
double r31340 = r31318 / r31339;
double r31341 = r31318 + r31340;
double r31342 = r31320 * r31341;
double r31343 = sqrt(r31342);
return r31343;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-cube-cbrt1.6
Applied unpow-prod-down1.6
Applied associate-*l*1.4
Final simplification1.4
herbie shell --seed 2019294
(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))))))))))