\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 + \left(\sqrt[3]{\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)}}} \cdot \sqrt[3]{\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) \cdot \sqrt[3]{\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)}double f(double l, double Om, double kx, double ky) {
double r53431 = 1.0;
double r53432 = 2.0;
double r53433 = r53431 / r53432;
double r53434 = l;
double r53435 = r53432 * r53434;
double r53436 = Om;
double r53437 = r53435 / r53436;
double r53438 = pow(r53437, r53432);
double r53439 = kx;
double r53440 = sin(r53439);
double r53441 = pow(r53440, r53432);
double r53442 = ky;
double r53443 = sin(r53442);
double r53444 = pow(r53443, r53432);
double r53445 = r53441 + r53444;
double r53446 = r53438 * r53445;
double r53447 = r53431 + r53446;
double r53448 = sqrt(r53447);
double r53449 = r53431 / r53448;
double r53450 = r53431 + r53449;
double r53451 = r53433 * r53450;
double r53452 = sqrt(r53451);
return r53452;
}
double f(double l, double Om, double kx, double ky) {
double r53453 = 1.0;
double r53454 = 2.0;
double r53455 = r53453 / r53454;
double r53456 = l;
double r53457 = r53454 * r53456;
double r53458 = Om;
double r53459 = r53457 / r53458;
double r53460 = pow(r53459, r53454);
double r53461 = kx;
double r53462 = sin(r53461);
double r53463 = pow(r53462, r53454);
double r53464 = ky;
double r53465 = sin(r53464);
double r53466 = pow(r53465, r53454);
double r53467 = r53463 + r53466;
double r53468 = r53460 * r53467;
double r53469 = r53453 + r53468;
double r53470 = sqrt(r53469);
double r53471 = r53453 / r53470;
double r53472 = cbrt(r53471);
double r53473 = r53472 * r53472;
double r53474 = r53473 * r53472;
double r53475 = r53453 + r53474;
double r53476 = r53455 * r53475;
double r53477 = sqrt(r53476);
return r53477;
}



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