\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{\left(1 + \frac{1}{\sqrt{\sqrt{\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right) \cdot {\left(\frac{2}{Om} \cdot \ell\right)}^{2} + 1}} \cdot \sqrt{\sqrt{\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right) \cdot {\left(\frac{2}{Om} \cdot \ell\right)}^{2} + 1}}}\right) \cdot \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r45615 = 1.0;
double r45616 = 2.0;
double r45617 = r45615 / r45616;
double r45618 = l;
double r45619 = r45616 * r45618;
double r45620 = Om;
double r45621 = r45619 / r45620;
double r45622 = pow(r45621, r45616);
double r45623 = kx;
double r45624 = sin(r45623);
double r45625 = pow(r45624, r45616);
double r45626 = ky;
double r45627 = sin(r45626);
double r45628 = pow(r45627, r45616);
double r45629 = r45625 + r45628;
double r45630 = r45622 * r45629;
double r45631 = r45615 + r45630;
double r45632 = sqrt(r45631);
double r45633 = r45615 / r45632;
double r45634 = r45615 + r45633;
double r45635 = r45617 * r45634;
double r45636 = sqrt(r45635);
return r45636;
}
double f(double l, double Om, double kx, double ky) {
double r45637 = 1.0;
double r45638 = kx;
double r45639 = sin(r45638);
double r45640 = 2.0;
double r45641 = pow(r45639, r45640);
double r45642 = ky;
double r45643 = sin(r45642);
double r45644 = pow(r45643, r45640);
double r45645 = r45641 + r45644;
double r45646 = Om;
double r45647 = r45640 / r45646;
double r45648 = l;
double r45649 = r45647 * r45648;
double r45650 = pow(r45649, r45640);
double r45651 = r45645 * r45650;
double r45652 = r45651 + r45637;
double r45653 = sqrt(r45652);
double r45654 = sqrt(r45653);
double r45655 = r45654 * r45654;
double r45656 = r45637 / r45655;
double r45657 = r45637 + r45656;
double r45658 = r45637 / r45640;
double r45659 = r45657 * r45658;
double r45660 = sqrt(r45659);
return r45660;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
Simplified1.8
rmApplied add-sqr-sqrt1.8
Applied sqrt-prod1.8
Simplified1.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2019194
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))