\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 \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 r37183 = 1.0;
double r37184 = 2.0;
double r37185 = r37183 / r37184;
double r37186 = l;
double r37187 = r37184 * r37186;
double r37188 = Om;
double r37189 = r37187 / r37188;
double r37190 = pow(r37189, r37184);
double r37191 = kx;
double r37192 = sin(r37191);
double r37193 = pow(r37192, r37184);
double r37194 = ky;
double r37195 = sin(r37194);
double r37196 = pow(r37195, r37184);
double r37197 = r37193 + r37196;
double r37198 = r37190 * r37197;
double r37199 = r37183 + r37198;
double r37200 = sqrt(r37199);
double r37201 = r37183 / r37200;
double r37202 = r37183 + r37201;
double r37203 = r37185 * r37202;
double r37204 = sqrt(r37203);
return r37204;
}
double f(double l, double Om, double kx, double ky) {
double r37205 = 1.0;
double r37206 = 2.0;
double r37207 = r37205 / r37206;
double r37208 = l;
double r37209 = r37206 * r37208;
double r37210 = Om;
double r37211 = r37209 / r37210;
double r37212 = pow(r37211, r37206);
double r37213 = kx;
double r37214 = sin(r37213);
double r37215 = pow(r37214, r37206);
double r37216 = ky;
double r37217 = sin(r37216);
double r37218 = pow(r37217, r37206);
double r37219 = r37215 + r37218;
double r37220 = r37212 * r37219;
double r37221 = r37205 + r37220;
double r37222 = sqrt(r37221);
double r37223 = sqrt(r37222);
double r37224 = r37223 * r37223;
double r37225 = r37205 / r37224;
double r37226 = r37205 + r37225;
double r37227 = r37207 * r37226;
double r37228 = sqrt(r37227);
return r37228;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
rmApplied add-sqr-sqrt1.7
Applied sqrt-prod1.7
Final simplification1.7
herbie shell --seed 2019212
(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))))))))))