\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{\sqrt{\frac{1}{2}} \cdot \frac{\sqrt{\frac{1}{2}}}{\sqrt{\left(\left(\ell \cdot \frac{2}{Om}\right) \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \left(\ell \cdot \frac{2}{Om}\right) + 1}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r3349149 = 1.0;
double r3349150 = 2.0;
double r3349151 = r3349149 / r3349150;
double r3349152 = l;
double r3349153 = r3349150 * r3349152;
double r3349154 = Om;
double r3349155 = r3349153 / r3349154;
double r3349156 = pow(r3349155, r3349150);
double r3349157 = kx;
double r3349158 = sin(r3349157);
double r3349159 = pow(r3349158, r3349150);
double r3349160 = ky;
double r3349161 = sin(r3349160);
double r3349162 = pow(r3349161, r3349150);
double r3349163 = r3349159 + r3349162;
double r3349164 = r3349156 * r3349163;
double r3349165 = r3349149 + r3349164;
double r3349166 = sqrt(r3349165);
double r3349167 = r3349149 / r3349166;
double r3349168 = r3349149 + r3349167;
double r3349169 = r3349151 * r3349168;
double r3349170 = sqrt(r3349169);
return r3349170;
}
double f(double l, double Om, double kx, double ky) {
double r3349171 = 1.0;
double r3349172 = 2.0;
double r3349173 = r3349171 / r3349172;
double r3349174 = sqrt(r3349173);
double r3349175 = l;
double r3349176 = Om;
double r3349177 = r3349172 / r3349176;
double r3349178 = r3349175 * r3349177;
double r3349179 = ky;
double r3349180 = sin(r3349179);
double r3349181 = r3349180 * r3349180;
double r3349182 = kx;
double r3349183 = sin(r3349182);
double r3349184 = r3349183 * r3349183;
double r3349185 = r3349181 + r3349184;
double r3349186 = r3349178 * r3349185;
double r3349187 = r3349186 * r3349178;
double r3349188 = r3349187 + r3349171;
double r3349189 = sqrt(r3349188);
double r3349190 = r3349174 / r3349189;
double r3349191 = r3349174 * r3349190;
double r3349192 = r3349191 + r3349173;
double r3349193 = sqrt(r3349192);
return r3349193;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.5
Simplified1.5
rmApplied associate-*r*1.4
rmApplied add-sqr-sqrt1.4
Applied associate-/l*1.4
rmApplied associate-/r/1.4
Final simplification1.4
herbie shell --seed 2019134
(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))))))))))