\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 r25693 = 1.0;
double r25694 = 2.0;
double r25695 = r25693 / r25694;
double r25696 = l;
double r25697 = r25694 * r25696;
double r25698 = Om;
double r25699 = r25697 / r25698;
double r25700 = pow(r25699, r25694);
double r25701 = kx;
double r25702 = sin(r25701);
double r25703 = pow(r25702, r25694);
double r25704 = ky;
double r25705 = sin(r25704);
double r25706 = pow(r25705, r25694);
double r25707 = r25703 + r25706;
double r25708 = r25700 * r25707;
double r25709 = r25693 + r25708;
double r25710 = sqrt(r25709);
double r25711 = r25693 / r25710;
double r25712 = r25693 + r25711;
double r25713 = r25695 * r25712;
double r25714 = sqrt(r25713);
return r25714;
}
double f(double l, double Om, double kx, double ky) {
double r25715 = 1.0;
double r25716 = 2.0;
double r25717 = r25715 / r25716;
double r25718 = l;
double r25719 = r25716 * r25718;
double r25720 = Om;
double r25721 = r25719 / r25720;
double r25722 = 2.0;
double r25723 = r25716 / r25722;
double r25724 = pow(r25721, r25723);
double r25725 = kx;
double r25726 = sin(r25725);
double r25727 = pow(r25726, r25716);
double r25728 = ky;
double r25729 = sin(r25728);
double r25730 = pow(r25729, r25716);
double r25731 = r25727 + r25730;
double r25732 = r25724 * r25731;
double r25733 = r25724 * r25732;
double r25734 = r25715 + r25733;
double r25735 = sqrt(r25734);
double r25736 = r25715 / r25735;
double r25737 = r25715 + r25736;
double r25738 = r25717 * r25737;
double r25739 = sqrt(r25738);
return r25739;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
rmApplied sqr-pow1.8
Applied associate-*l*1.4
Final simplification1.4
herbie shell --seed 2019298
(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))))))))))