\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{1}{2}}{\log \left(e^{\sqrt{\mathsf{fma}\left(4, \left(\frac{\ell \cdot \sin kx}{Om} \cdot \frac{\ell \cdot \sin kx}{Om} + \frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om}\right), 1\right)}}\right)} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r2571709 = 1.0;
double r2571710 = 2.0;
double r2571711 = r2571709 / r2571710;
double r2571712 = l;
double r2571713 = r2571710 * r2571712;
double r2571714 = Om;
double r2571715 = r2571713 / r2571714;
double r2571716 = pow(r2571715, r2571710);
double r2571717 = kx;
double r2571718 = sin(r2571717);
double r2571719 = pow(r2571718, r2571710);
double r2571720 = ky;
double r2571721 = sin(r2571720);
double r2571722 = pow(r2571721, r2571710);
double r2571723 = r2571719 + r2571722;
double r2571724 = r2571716 * r2571723;
double r2571725 = r2571709 + r2571724;
double r2571726 = sqrt(r2571725);
double r2571727 = r2571709 / r2571726;
double r2571728 = r2571709 + r2571727;
double r2571729 = r2571711 * r2571728;
double r2571730 = sqrt(r2571729);
return r2571730;
}
double f(double l, double Om, double kx, double ky) {
double r2571731 = 0.5;
double r2571732 = 4.0;
double r2571733 = l;
double r2571734 = kx;
double r2571735 = sin(r2571734);
double r2571736 = r2571733 * r2571735;
double r2571737 = Om;
double r2571738 = r2571736 / r2571737;
double r2571739 = r2571738 * r2571738;
double r2571740 = ky;
double r2571741 = sin(r2571740);
double r2571742 = r2571741 * r2571733;
double r2571743 = r2571742 / r2571737;
double r2571744 = r2571743 * r2571743;
double r2571745 = r2571739 + r2571744;
double r2571746 = 1.0;
double r2571747 = fma(r2571732, r2571745, r2571746);
double r2571748 = sqrt(r2571747);
double r2571749 = exp(r2571748);
double r2571750 = log(r2571749);
double r2571751 = r2571731 / r2571750;
double r2571752 = r2571751 + r2571731;
double r2571753 = sqrt(r2571752);
return r2571753;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.7
Simplified1.7
Taylor expanded around -inf 16.3
Simplified0.6
rmApplied add-log-exp0.7
Final simplification0.7
herbie shell --seed 2019107 +o rules:numerics
(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))))))))))