\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}{\left(\sqrt[3]{\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[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right) \cdot \sqrt[3]{\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 r49026 = 1.0;
double r49027 = 2.0;
double r49028 = r49026 / r49027;
double r49029 = l;
double r49030 = r49027 * r49029;
double r49031 = Om;
double r49032 = r49030 / r49031;
double r49033 = pow(r49032, r49027);
double r49034 = kx;
double r49035 = sin(r49034);
double r49036 = pow(r49035, r49027);
double r49037 = ky;
double r49038 = sin(r49037);
double r49039 = pow(r49038, r49027);
double r49040 = r49036 + r49039;
double r49041 = r49033 * r49040;
double r49042 = r49026 + r49041;
double r49043 = sqrt(r49042);
double r49044 = r49026 / r49043;
double r49045 = r49026 + r49044;
double r49046 = r49028 * r49045;
double r49047 = sqrt(r49046);
return r49047;
}
double f(double l, double Om, double kx, double ky) {
double r49048 = 1.0;
double r49049 = 2.0;
double r49050 = r49048 / r49049;
double r49051 = l;
double r49052 = r49049 * r49051;
double r49053 = Om;
double r49054 = r49052 / r49053;
double r49055 = pow(r49054, r49049);
double r49056 = kx;
double r49057 = sin(r49056);
double r49058 = pow(r49057, r49049);
double r49059 = ky;
double r49060 = sin(r49059);
double r49061 = pow(r49060, r49049);
double r49062 = r49058 + r49061;
double r49063 = r49055 * r49062;
double r49064 = r49048 + r49063;
double r49065 = sqrt(r49064);
double r49066 = cbrt(r49065);
double r49067 = r49066 * r49066;
double r49068 = r49067 * r49066;
double r49069 = r49048 / r49068;
double r49070 = r49048 + r49069;
double r49071 = r49050 * r49070;
double r49072 = sqrt(r49071);
return r49072;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
rmApplied add-cube-cbrt1.8
Final simplification1.8
herbie shell --seed 2019344 +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))))))))))