\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}{\left(\sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}} \cdot \sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right) \cdot \sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}double f(double l, double Om, double kx, double ky) {
double r67372 = 1.0;
double r67373 = 2.0;
double r67374 = r67372 / r67373;
double r67375 = l;
double r67376 = r67373 * r67375;
double r67377 = Om;
double r67378 = r67376 / r67377;
double r67379 = pow(r67378, r67373);
double r67380 = kx;
double r67381 = sin(r67380);
double r67382 = pow(r67381, r67373);
double r67383 = ky;
double r67384 = sin(r67383);
double r67385 = pow(r67384, r67373);
double r67386 = r67382 + r67385;
double r67387 = r67379 * r67386;
double r67388 = r67372 + r67387;
double r67389 = sqrt(r67388);
double r67390 = r67372 / r67389;
double r67391 = r67372 + r67390;
double r67392 = r67374 * r67391;
double r67393 = sqrt(r67392);
return r67393;
}
double f(double l, double Om, double kx, double ky) {
double r67394 = 1.0;
double r67395 = 2.0;
double r67396 = r67394 / r67395;
double r67397 = l;
double r67398 = r67395 * r67397;
double r67399 = Om;
double r67400 = r67398 / r67399;
double r67401 = pow(r67400, r67395);
double r67402 = kx;
double r67403 = sin(r67402);
double r67404 = pow(r67403, r67395);
double r67405 = ky;
double r67406 = sin(r67405);
double r67407 = pow(r67406, r67395);
double r67408 = r67404 + r67407;
double r67409 = r67401 * r67408;
double r67410 = r67394 + r67409;
double r67411 = sqrt(r67410);
double r67412 = cbrt(r67411);
double r67413 = r67412 * r67412;
double r67414 = r67413 * r67412;
double r67415 = r67394 / r67414;
double r67416 = r67394 + r67415;
double r67417 = r67396 * r67416;
double r67418 = sqrt(r67417);
return r67418;
}



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
Final simplification1.6
herbie shell --seed 2020024 +o rules:numerics
(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))))))))))