\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(\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 r29445 = 1.0;
double r29446 = 2.0;
double r29447 = r29445 / r29446;
double r29448 = l;
double r29449 = r29446 * r29448;
double r29450 = Om;
double r29451 = r29449 / r29450;
double r29452 = pow(r29451, r29446);
double r29453 = kx;
double r29454 = sin(r29453);
double r29455 = pow(r29454, r29446);
double r29456 = ky;
double r29457 = sin(r29456);
double r29458 = pow(r29457, r29446);
double r29459 = r29455 + r29458;
double r29460 = r29452 * r29459;
double r29461 = r29445 + r29460;
double r29462 = sqrt(r29461);
double r29463 = r29445 / r29462;
double r29464 = r29445 + r29463;
double r29465 = r29447 * r29464;
double r29466 = sqrt(r29465);
return r29466;
}
double f(double l, double Om, double kx, double ky) {
double r29467 = 1.0;
double r29468 = 2.0;
double r29469 = r29467 / r29468;
double r29470 = l;
double r29471 = r29468 * r29470;
double r29472 = Om;
double r29473 = r29471 / r29472;
double r29474 = pow(r29473, r29468);
double r29475 = kx;
double r29476 = sin(r29475);
double r29477 = pow(r29476, r29468);
double r29478 = ky;
double r29479 = sin(r29478);
double r29480 = pow(r29479, r29468);
double r29481 = r29477 + r29480;
double r29482 = r29474 * r29481;
double r29483 = r29467 + r29482;
double r29484 = sqrt(r29483);
double r29485 = r29467 / r29484;
double r29486 = r29467 + r29485;
double r29487 = r29469 * r29486;
double r29488 = sqrt(r29487);
return r29488;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.5
Final simplification1.5
herbie shell --seed 2019235
(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))))))))))