\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{\frac{\frac{1}{2}}{\sqrt{\sqrt{\left(\frac{2 \cdot \ell}{Om} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \frac{2 \cdot \ell}{Om} + 1}}}}{\sqrt{\sqrt{\left(\frac{2 \cdot \ell}{Om} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \frac{2 \cdot \ell}{Om} + 1}}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r786607 = 1.0;
double r786608 = 2.0;
double r786609 = r786607 / r786608;
double r786610 = l;
double r786611 = r786608 * r786610;
double r786612 = Om;
double r786613 = r786611 / r786612;
double r786614 = pow(r786613, r786608);
double r786615 = kx;
double r786616 = sin(r786615);
double r786617 = pow(r786616, r786608);
double r786618 = ky;
double r786619 = sin(r786618);
double r786620 = pow(r786619, r786608);
double r786621 = r786617 + r786620;
double r786622 = r786614 * r786621;
double r786623 = r786607 + r786622;
double r786624 = sqrt(r786623);
double r786625 = r786607 / r786624;
double r786626 = r786607 + r786625;
double r786627 = r786609 * r786626;
double r786628 = sqrt(r786627);
return r786628;
}
double f(double l, double Om, double kx, double ky) {
double r786629 = 0.5;
double r786630 = 2.0;
double r786631 = l;
double r786632 = r786630 * r786631;
double r786633 = Om;
double r786634 = r786632 / r786633;
double r786635 = ky;
double r786636 = sin(r786635);
double r786637 = r786636 * r786636;
double r786638 = kx;
double r786639 = sin(r786638);
double r786640 = r786639 * r786639;
double r786641 = r786637 + r786640;
double r786642 = r786634 * r786641;
double r786643 = r786642 * r786634;
double r786644 = 1.0;
double r786645 = r786643 + r786644;
double r786646 = sqrt(r786645);
double r786647 = sqrt(r786646);
double r786648 = r786629 / r786647;
double r786649 = r786648 / r786647;
double r786650 = r786649 + r786629;
double r786651 = sqrt(r786650);
return r786651;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
Simplified1.7
rmApplied associate-*r*1.4
rmApplied add-sqr-sqrt1.4
Applied associate-/r*1.4
Final simplification1.4
herbie shell --seed 2019152
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))