\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 + \left(\sqrt[3]{\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)}}} \cdot \sqrt[3]{\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) \cdot \left(\sqrt[3]{\frac{\sqrt{1}}{\sqrt{\sqrt[3]{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]{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]{\frac{\sqrt{1}}{\sqrt{\sqrt[3]{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 r50107 = 1.0;
double r50108 = 2.0;
double r50109 = r50107 / r50108;
double r50110 = l;
double r50111 = r50108 * r50110;
double r50112 = Om;
double r50113 = r50111 / r50112;
double r50114 = pow(r50113, r50108);
double r50115 = kx;
double r50116 = sin(r50115);
double r50117 = pow(r50116, r50108);
double r50118 = ky;
double r50119 = sin(r50118);
double r50120 = pow(r50119, r50108);
double r50121 = r50117 + r50120;
double r50122 = r50114 * r50121;
double r50123 = r50107 + r50122;
double r50124 = sqrt(r50123);
double r50125 = r50107 / r50124;
double r50126 = r50107 + r50125;
double r50127 = r50109 * r50126;
double r50128 = sqrt(r50127);
return r50128;
}
double f(double l, double Om, double kx, double ky) {
double r50129 = 1.0;
double r50130 = 2.0;
double r50131 = r50129 / r50130;
double r50132 = l;
double r50133 = r50130 * r50132;
double r50134 = Om;
double r50135 = r50133 / r50134;
double r50136 = pow(r50135, r50130);
double r50137 = kx;
double r50138 = sin(r50137);
double r50139 = pow(r50138, r50130);
double r50140 = ky;
double r50141 = sin(r50140);
double r50142 = pow(r50141, r50130);
double r50143 = r50139 + r50142;
double r50144 = r50136 * r50143;
double r50145 = r50129 + r50144;
double r50146 = sqrt(r50145);
double r50147 = r50129 / r50146;
double r50148 = cbrt(r50147);
double r50149 = r50148 * r50148;
double r50150 = sqrt(r50129);
double r50151 = cbrt(r50145);
double r50152 = r50151 * r50151;
double r50153 = sqrt(r50152);
double r50154 = r50150 / r50153;
double r50155 = cbrt(r50154);
double r50156 = sqrt(r50151);
double r50157 = r50150 / r50156;
double r50158 = cbrt(r50157);
double r50159 = r50155 * r50158;
double r50160 = r50149 * r50159;
double r50161 = r50129 + r50160;
double r50162 = r50131 * r50161;
double r50163 = sqrt(r50162);
return r50163;
}



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-cube-cbrt1.6
Applied sqrt-prod1.6
Applied add-sqr-sqrt1.6
Applied times-frac1.6
Applied cbrt-prod1.6
Final simplification1.6
herbie shell --seed 2019346
(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))))))))))