\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 r43573 = 1.0;
double r43574 = 2.0;
double r43575 = r43573 / r43574;
double r43576 = l;
double r43577 = r43574 * r43576;
double r43578 = Om;
double r43579 = r43577 / r43578;
double r43580 = pow(r43579, r43574);
double r43581 = kx;
double r43582 = sin(r43581);
double r43583 = pow(r43582, r43574);
double r43584 = ky;
double r43585 = sin(r43584);
double r43586 = pow(r43585, r43574);
double r43587 = r43583 + r43586;
double r43588 = r43580 * r43587;
double r43589 = r43573 + r43588;
double r43590 = sqrt(r43589);
double r43591 = r43573 / r43590;
double r43592 = r43573 + r43591;
double r43593 = r43575 * r43592;
double r43594 = sqrt(r43593);
return r43594;
}
double f(double l, double Om, double kx, double ky) {
double r43595 = 1.0;
double r43596 = 2.0;
double r43597 = r43595 / r43596;
double r43598 = l;
double r43599 = r43596 * r43598;
double r43600 = Om;
double r43601 = r43599 / r43600;
double r43602 = 2.0;
double r43603 = r43596 / r43602;
double r43604 = pow(r43601, r43603);
double r43605 = kx;
double r43606 = sin(r43605);
double r43607 = pow(r43606, r43596);
double r43608 = ky;
double r43609 = sin(r43608);
double r43610 = pow(r43609, r43596);
double r43611 = r43607 + r43610;
double r43612 = r43604 * r43611;
double r43613 = r43604 * r43612;
double r43614 = r43595 + r43613;
double r43615 = sqrt(r43614);
double r43616 = r43595 / r43615;
double r43617 = r43595 + r43616;
double r43618 = r43597 * r43617;
double r43619 = sqrt(r43618);
return r43619;
}



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 2020046
(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))))))))))