\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{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}} \cdot \frac{1}{\sqrt{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}double f(double l, double Om, double kx, double ky) {
double r49149 = 1.0;
double r49150 = 2.0;
double r49151 = r49149 / r49150;
double r49152 = l;
double r49153 = r49150 * r49152;
double r49154 = Om;
double r49155 = r49153 / r49154;
double r49156 = pow(r49155, r49150);
double r49157 = kx;
double r49158 = sin(r49157);
double r49159 = pow(r49158, r49150);
double r49160 = ky;
double r49161 = sin(r49160);
double r49162 = pow(r49161, r49150);
double r49163 = r49159 + r49162;
double r49164 = r49156 * r49163;
double r49165 = r49149 + r49164;
double r49166 = sqrt(r49165);
double r49167 = r49149 / r49166;
double r49168 = r49149 + r49167;
double r49169 = r49151 * r49168;
double r49170 = sqrt(r49169);
return r49170;
}
double f(double l, double Om, double kx, double ky) {
double r49171 = 1.0;
double r49172 = 2.0;
double r49173 = r49171 / r49172;
double r49174 = 1.0;
double r49175 = l;
double r49176 = r49172 * r49175;
double r49177 = Om;
double r49178 = r49176 / r49177;
double r49179 = pow(r49178, r49172);
double r49180 = kx;
double r49181 = sin(r49180);
double r49182 = pow(r49181, r49172);
double r49183 = ky;
double r49184 = sin(r49183);
double r49185 = pow(r49184, r49172);
double r49186 = r49182 + r49185;
double r49187 = r49179 * r49186;
double r49188 = r49171 + r49187;
double r49189 = sqrt(r49188);
double r49190 = sqrt(r49189);
double r49191 = r49174 / r49190;
double r49192 = r49171 / r49190;
double r49193 = r49191 * r49192;
double r49194 = r49171 + r49193;
double r49195 = r49173 * r49194;
double r49196 = sqrt(r49195);
return r49196;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-sqr-sqrt1.6
Applied sqrt-prod1.6
Applied *-un-lft-identity1.6
Applied times-frac1.6
Final simplification1.6
herbie shell --seed 2020089 +o rules:numerics
(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))))))))))