\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 \left(\sqrt{\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{\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)}\right)}double f(double l, double Om, double kx, double ky) {
double r55065 = 1.0;
double r55066 = 2.0;
double r55067 = r55065 / r55066;
double r55068 = l;
double r55069 = r55066 * r55068;
double r55070 = Om;
double r55071 = r55069 / r55070;
double r55072 = pow(r55071, r55066);
double r55073 = kx;
double r55074 = sin(r55073);
double r55075 = pow(r55074, r55066);
double r55076 = ky;
double r55077 = sin(r55076);
double r55078 = pow(r55077, r55066);
double r55079 = r55075 + r55078;
double r55080 = r55072 * r55079;
double r55081 = r55065 + r55080;
double r55082 = sqrt(r55081);
double r55083 = r55065 / r55082;
double r55084 = r55065 + r55083;
double r55085 = r55067 * r55084;
double r55086 = sqrt(r55085);
return r55086;
}
double f(double l, double Om, double kx, double ky) {
double r55087 = 1.0;
double r55088 = 2.0;
double r55089 = r55087 / r55088;
double r55090 = l;
double r55091 = r55088 * r55090;
double r55092 = Om;
double r55093 = r55091 / r55092;
double r55094 = pow(r55093, r55088);
double r55095 = kx;
double r55096 = sin(r55095);
double r55097 = pow(r55096, r55088);
double r55098 = ky;
double r55099 = sin(r55098);
double r55100 = pow(r55099, r55088);
double r55101 = r55097 + r55100;
double r55102 = r55094 * r55101;
double r55103 = r55087 + r55102;
double r55104 = sqrt(r55103);
double r55105 = cbrt(r55104);
double r55106 = r55105 * r55105;
double r55107 = sqrt(r55105);
double r55108 = r55107 * r55107;
double r55109 = r55106 * r55108;
double r55110 = r55087 / r55109;
double r55111 = r55087 + r55110;
double r55112 = r55089 * r55111;
double r55113 = sqrt(r55112);
return r55113;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-cube-cbrt1.6
rmApplied add-sqr-sqrt1.6
Final simplification1.6
herbie shell --seed 2020033
(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))))))))))