\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)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \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 r36501 = 1.0;
double r36502 = 2.0;
double r36503 = r36501 / r36502;
double r36504 = l;
double r36505 = r36502 * r36504;
double r36506 = Om;
double r36507 = r36505 / r36506;
double r36508 = pow(r36507, r36502);
double r36509 = kx;
double r36510 = sin(r36509);
double r36511 = pow(r36510, r36502);
double r36512 = ky;
double r36513 = sin(r36512);
double r36514 = pow(r36513, r36502);
double r36515 = r36511 + r36514;
double r36516 = r36508 * r36515;
double r36517 = r36501 + r36516;
double r36518 = sqrt(r36517);
double r36519 = r36501 / r36518;
double r36520 = r36501 + r36519;
double r36521 = r36503 * r36520;
double r36522 = sqrt(r36521);
return r36522;
}
double f(double l, double Om, double kx, double ky) {
double r36523 = 1.0;
double r36524 = 2.0;
double r36525 = r36523 / r36524;
double r36526 = l;
double r36527 = r36524 * r36526;
double r36528 = Om;
double r36529 = r36527 / r36528;
double r36530 = 2.0;
double r36531 = r36524 / r36530;
double r36532 = pow(r36529, r36531);
double r36533 = kx;
double r36534 = sin(r36533);
double r36535 = pow(r36534, r36524);
double r36536 = ky;
double r36537 = sin(r36536);
double r36538 = pow(r36537, r36524);
double r36539 = r36535 + r36538;
double r36540 = r36532 * r36539;
double r36541 = r36532 * r36540;
double r36542 = r36523 + r36541;
double r36543 = sqrt(r36542);
double r36544 = r36523 / r36543;
double r36545 = r36523 + r36544;
double r36546 = r36525 * r36545;
double r36547 = sqrt(r36546);
return r36547;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.1
rmApplied sqr-pow1.1
Applied associate-*l*0.8
Final simplification0.8
herbie shell --seed 2020059 +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))))))))))