\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 r59397 = 1.0;
double r59398 = 2.0;
double r59399 = r59397 / r59398;
double r59400 = l;
double r59401 = r59398 * r59400;
double r59402 = Om;
double r59403 = r59401 / r59402;
double r59404 = pow(r59403, r59398);
double r59405 = kx;
double r59406 = sin(r59405);
double r59407 = pow(r59406, r59398);
double r59408 = ky;
double r59409 = sin(r59408);
double r59410 = pow(r59409, r59398);
double r59411 = r59407 + r59410;
double r59412 = r59404 * r59411;
double r59413 = r59397 + r59412;
double r59414 = sqrt(r59413);
double r59415 = r59397 / r59414;
double r59416 = r59397 + r59415;
double r59417 = r59399 * r59416;
double r59418 = sqrt(r59417);
return r59418;
}
double f(double l, double Om, double kx, double ky) {
double r59419 = 1.0;
double r59420 = 2.0;
double r59421 = r59419 / r59420;
double r59422 = l;
double r59423 = r59420 * r59422;
double r59424 = Om;
double r59425 = r59423 / r59424;
double r59426 = pow(r59425, r59420);
double r59427 = kx;
double r59428 = sin(r59427);
double r59429 = pow(r59428, r59420);
double r59430 = ky;
double r59431 = sin(r59430);
double r59432 = pow(r59431, r59420);
double r59433 = r59429 + r59432;
double r59434 = r59426 * r59433;
double r59435 = r59419 + r59434;
double r59436 = sqrt(r59435);
double r59437 = r59419 / r59436;
double r59438 = cbrt(r59437);
double r59439 = r59438 * r59438;
double r59440 = r59439 * r59438;
double r59441 = r59419 + r59440;
double r59442 = r59421 * r59441;
double r59443 = sqrt(r59442);
return r59443;
}



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