Average Error: 1.5 → 1.2
Time: 31.8s
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{\frac{1}{2}}{\sqrt{\left(\frac{2 \cdot \ell}{Om} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \frac{2 \cdot \ell}{Om} + 1}} + \frac{1}{2}}\]
\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{\left(\frac{2 \cdot \ell}{Om} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \frac{2 \cdot \ell}{Om} + 1}} + \frac{1}{2}}
double f(double l, double Om, double kx, double ky) {
        double r1246335 = 1.0;
        double r1246336 = 2.0;
        double r1246337 = r1246335 / r1246336;
        double r1246338 = l;
        double r1246339 = r1246336 * r1246338;
        double r1246340 = Om;
        double r1246341 = r1246339 / r1246340;
        double r1246342 = pow(r1246341, r1246336);
        double r1246343 = kx;
        double r1246344 = sin(r1246343);
        double r1246345 = pow(r1246344, r1246336);
        double r1246346 = ky;
        double r1246347 = sin(r1246346);
        double r1246348 = pow(r1246347, r1246336);
        double r1246349 = r1246345 + r1246348;
        double r1246350 = r1246342 * r1246349;
        double r1246351 = r1246335 + r1246350;
        double r1246352 = sqrt(r1246351);
        double r1246353 = r1246335 / r1246352;
        double r1246354 = r1246335 + r1246353;
        double r1246355 = r1246337 * r1246354;
        double r1246356 = sqrt(r1246355);
        return r1246356;
}

double f(double l, double Om, double kx, double ky) {
        double r1246357 = 0.5;
        double r1246358 = 2.0;
        double r1246359 = l;
        double r1246360 = r1246358 * r1246359;
        double r1246361 = Om;
        double r1246362 = r1246360 / r1246361;
        double r1246363 = ky;
        double r1246364 = sin(r1246363);
        double r1246365 = r1246364 * r1246364;
        double r1246366 = kx;
        double r1246367 = sin(r1246366);
        double r1246368 = r1246367 * r1246367;
        double r1246369 = r1246365 + r1246368;
        double r1246370 = r1246362 * r1246369;
        double r1246371 = r1246370 * r1246362;
        double r1246372 = 1.0;
        double r1246373 = r1246371 + r1246372;
        double r1246374 = sqrt(r1246373);
        double r1246375 = r1246357 / r1246374;
        double r1246376 = r1246375 + r1246357;
        double r1246377 = sqrt(r1246376);
        return r1246377;
}

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.5

    \[\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. Simplified1.5

    \[\leadsto \color{blue}{\sqrt{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right) \cdot \left(\frac{\ell \cdot 2}{Om} \cdot \frac{\ell \cdot 2}{Om}\right) + 1}} + \frac{1}{2}}}\]
  3. Using strategy rm
  4. Applied associate-*r*1.2

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

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\left(\frac{2 \cdot \ell}{Om} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \frac{2 \cdot \ell}{Om} + 1}} + \frac{1}{2}}\]

Reproduce

herbie shell --seed 2019143 
(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))))))))))