\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(\log \left(e^{\frac{1}{\sqrt{\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right) \cdot {\left(\frac{2}{\frac{Om}{\ell}}\right)}^{2} + 1}}}\right) + 1\right)}double f(double l, double Om, double kx, double ky) {
double r62132 = 1.0;
double r62133 = 2.0;
double r62134 = r62132 / r62133;
double r62135 = l;
double r62136 = r62133 * r62135;
double r62137 = Om;
double r62138 = r62136 / r62137;
double r62139 = pow(r62138, r62133);
double r62140 = kx;
double r62141 = sin(r62140);
double r62142 = pow(r62141, r62133);
double r62143 = ky;
double r62144 = sin(r62143);
double r62145 = pow(r62144, r62133);
double r62146 = r62142 + r62145;
double r62147 = r62139 * r62146;
double r62148 = r62132 + r62147;
double r62149 = sqrt(r62148);
double r62150 = r62132 / r62149;
double r62151 = r62132 + r62150;
double r62152 = r62134 * r62151;
double r62153 = sqrt(r62152);
return r62153;
}
double f(double l, double Om, double kx, double ky) {
double r62154 = 1.0;
double r62155 = 2.0;
double r62156 = r62154 / r62155;
double r62157 = kx;
double r62158 = sin(r62157);
double r62159 = pow(r62158, r62155);
double r62160 = ky;
double r62161 = sin(r62160);
double r62162 = pow(r62161, r62155);
double r62163 = r62159 + r62162;
double r62164 = Om;
double r62165 = l;
double r62166 = r62164 / r62165;
double r62167 = r62155 / r62166;
double r62168 = pow(r62167, r62155);
double r62169 = r62163 * r62168;
double r62170 = r62169 + r62154;
double r62171 = sqrt(r62170);
double r62172 = r62154 / r62171;
double r62173 = exp(r62172);
double r62174 = log(r62173);
double r62175 = r62174 + r62154;
double r62176 = r62156 * r62175;
double r62177 = sqrt(r62176);
return r62177;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
rmApplied add-log-exp1.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2019179
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))