Average Error: 1.8 → 1.8
Time: 33.2s
Precision: 64
\[\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)}\]
\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;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.8

    \[\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)}\]
  2. Using strategy rm
  3. Applied add-log-exp1.8

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \color{blue}{\log \left(e^{\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)}\right)}\]
  4. Simplified1.8

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \log \color{blue}{\left(e^{\frac{1}{\sqrt{{\left(\frac{2}{\frac{Om}{\ell}}\right)}^{2} \cdot \left({\left(\sin ky\right)}^{2} + {\left(\sin kx\right)}^{2}\right) + 1}}}\right)}\right)}\]
  5. Final simplification1.8

    \[\leadsto \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)}\]

Reproduce

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))))))))))