Average Error: 1.5 → 1.5
Time: 14.4s
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(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}{\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}{\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 r29445 = 1.0;
        double r29446 = 2.0;
        double r29447 = r29445 / r29446;
        double r29448 = l;
        double r29449 = r29446 * r29448;
        double r29450 = Om;
        double r29451 = r29449 / r29450;
        double r29452 = pow(r29451, r29446);
        double r29453 = kx;
        double r29454 = sin(r29453);
        double r29455 = pow(r29454, r29446);
        double r29456 = ky;
        double r29457 = sin(r29456);
        double r29458 = pow(r29457, r29446);
        double r29459 = r29455 + r29458;
        double r29460 = r29452 * r29459;
        double r29461 = r29445 + r29460;
        double r29462 = sqrt(r29461);
        double r29463 = r29445 / r29462;
        double r29464 = r29445 + r29463;
        double r29465 = r29447 * r29464;
        double r29466 = sqrt(r29465);
        return r29466;
}

double f(double l, double Om, double kx, double ky) {
        double r29467 = 1.0;
        double r29468 = 2.0;
        double r29469 = r29467 / r29468;
        double r29470 = l;
        double r29471 = r29468 * r29470;
        double r29472 = Om;
        double r29473 = r29471 / r29472;
        double r29474 = pow(r29473, r29468);
        double r29475 = kx;
        double r29476 = sin(r29475);
        double r29477 = pow(r29476, r29468);
        double r29478 = ky;
        double r29479 = sin(r29478);
        double r29480 = pow(r29479, r29468);
        double r29481 = r29477 + r29480;
        double r29482 = r29474 * r29481;
        double r29483 = r29467 + r29482;
        double r29484 = sqrt(r29483);
        double r29485 = r29467 / r29484;
        double r29486 = r29467 + r29485;
        double r29487 = r29469 * r29486;
        double r29488 = sqrt(r29487);
        return r29488;
}

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

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

Reproduce

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