\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{\frac{1}{2}}{\sqrt{\sqrt[3]{(4 \cdot \left(\frac{\ell \cdot \sin kx}{Om} \cdot \frac{\ell \cdot \sin kx}{Om} + \frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om}\right) + 1)_*} \cdot \sqrt[3]{(4 \cdot \left(\frac{\ell \cdot \sin kx}{Om} \cdot \frac{\ell \cdot \sin kx}{Om} + \frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om}\right) + 1)_*}} \cdot \sqrt{\sqrt[3]{(4 \cdot \left(\frac{\ell \cdot \sin kx}{Om} \cdot \frac{\ell \cdot \sin kx}{Om} + \frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om}\right) + 1)_*}}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r3483101 = 1.0;
double r3483102 = 2.0;
double r3483103 = r3483101 / r3483102;
double r3483104 = l;
double r3483105 = r3483102 * r3483104;
double r3483106 = Om;
double r3483107 = r3483105 / r3483106;
double r3483108 = pow(r3483107, r3483102);
double r3483109 = kx;
double r3483110 = sin(r3483109);
double r3483111 = pow(r3483110, r3483102);
double r3483112 = ky;
double r3483113 = sin(r3483112);
double r3483114 = pow(r3483113, r3483102);
double r3483115 = r3483111 + r3483114;
double r3483116 = r3483108 * r3483115;
double r3483117 = r3483101 + r3483116;
double r3483118 = sqrt(r3483117);
double r3483119 = r3483101 / r3483118;
double r3483120 = r3483101 + r3483119;
double r3483121 = r3483103 * r3483120;
double r3483122 = sqrt(r3483121);
return r3483122;
}
double f(double l, double Om, double kx, double ky) {
double r3483123 = 0.5;
double r3483124 = 4.0;
double r3483125 = l;
double r3483126 = kx;
double r3483127 = sin(r3483126);
double r3483128 = r3483125 * r3483127;
double r3483129 = Om;
double r3483130 = r3483128 / r3483129;
double r3483131 = r3483130 * r3483130;
double r3483132 = ky;
double r3483133 = sin(r3483132);
double r3483134 = r3483133 * r3483125;
double r3483135 = r3483134 / r3483129;
double r3483136 = r3483135 * r3483135;
double r3483137 = r3483131 + r3483136;
double r3483138 = 1.0;
double r3483139 = fma(r3483124, r3483137, r3483138);
double r3483140 = cbrt(r3483139);
double r3483141 = r3483140 * r3483140;
double r3483142 = sqrt(r3483141);
double r3483143 = sqrt(r3483140);
double r3483144 = r3483142 * r3483143;
double r3483145 = r3483123 / r3483144;
double r3483146 = r3483145 + r3483123;
double r3483147 = sqrt(r3483146);
return r3483147;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.6
Simplified1.6
Taylor expanded around -inf 16.9
Simplified0.6
rmApplied add-cube-cbrt0.6
Applied sqrt-prod0.6
Final simplification0.6
herbie shell --seed 2019112 +o rules:numerics
(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))))))))))