\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({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}\right)}double f(double l, double Om, double kx, double ky) {
double r39187 = 1.0;
double r39188 = 2.0;
double r39189 = r39187 / r39188;
double r39190 = l;
double r39191 = r39188 * r39190;
double r39192 = Om;
double r39193 = r39191 / r39192;
double r39194 = pow(r39193, r39188);
double r39195 = kx;
double r39196 = sin(r39195);
double r39197 = pow(r39196, r39188);
double r39198 = ky;
double r39199 = sin(r39198);
double r39200 = pow(r39199, r39188);
double r39201 = r39197 + r39200;
double r39202 = r39194 * r39201;
double r39203 = r39187 + r39202;
double r39204 = sqrt(r39203);
double r39205 = r39187 / r39204;
double r39206 = r39187 + r39205;
double r39207 = r39189 * r39206;
double r39208 = sqrt(r39207);
return r39208;
}
double f(double l, double Om, double kx, double ky) {
double r39209 = 1.0;
double r39210 = 2.0;
double r39211 = r39209 / r39210;
double r39212 = l;
double r39213 = r39210 * r39212;
double r39214 = Om;
double r39215 = r39213 / r39214;
double r39216 = 2.0;
double r39217 = r39210 / r39216;
double r39218 = pow(r39215, r39217);
double r39219 = kx;
double r39220 = sin(r39219);
double r39221 = pow(r39220, r39210);
double r39222 = ky;
double r39223 = sin(r39222);
double r39224 = pow(r39223, r39210);
double r39225 = r39221 + r39224;
double r39226 = sqrt(r39225);
double r39227 = r39218 * r39226;
double r39228 = r39227 * r39227;
double r39229 = r39209 + r39228;
double r39230 = sqrt(r39229);
double r39231 = r39209 / r39230;
double r39232 = r39209 + r39231;
double r39233 = r39211 * r39232;
double r39234 = sqrt(r39233);
return r39234;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.0
rmApplied add-sqr-sqrt1.0
Applied sqr-pow1.0
Applied unswap-sqr0.7
Final simplification0.7
herbie shell --seed 2020062 +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))))))))))