Average Error: 1.7 → 1.3
Time: 10.3s
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)}\]
\[\begin{array}{l} \mathbf{if}\;{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2} \le 6.255042022075511028897152922160877393 \cdot 10^{-314}:\\ \;\;\;\;\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + 0}}\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1}{2} \cdot \left(1 + \frac{\frac{1}{\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)}}}}{\left(\sqrt[3]{\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[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 \sqrt[3]{\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)}\\ \end{array}\]
\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)}
\begin{array}{l}
\mathbf{if}\;{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2} \le 6.255042022075511028897152922160877393 \cdot 10^{-314}:\\
\;\;\;\;\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + 0}}\right)}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{1}{2} \cdot \left(1 + \frac{\frac{1}{\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)}}}}{\left(\sqrt[3]{\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[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 \sqrt[3]{\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)}\\

\end{array}
double f(double l, double Om, double kx, double ky) {
        double r55580 = 1.0;
        double r55581 = 2.0;
        double r55582 = r55580 / r55581;
        double r55583 = l;
        double r55584 = r55581 * r55583;
        double r55585 = Om;
        double r55586 = r55584 / r55585;
        double r55587 = pow(r55586, r55581);
        double r55588 = kx;
        double r55589 = sin(r55588);
        double r55590 = pow(r55589, r55581);
        double r55591 = ky;
        double r55592 = sin(r55591);
        double r55593 = pow(r55592, r55581);
        double r55594 = r55590 + r55593;
        double r55595 = r55587 * r55594;
        double r55596 = r55580 + r55595;
        double r55597 = sqrt(r55596);
        double r55598 = r55580 / r55597;
        double r55599 = r55580 + r55598;
        double r55600 = r55582 * r55599;
        double r55601 = sqrt(r55600);
        return r55601;
}

double f(double l, double Om, double kx, double ky) {
        double r55602 = kx;
        double r55603 = sin(r55602);
        double r55604 = 2.0;
        double r55605 = pow(r55603, r55604);
        double r55606 = ky;
        double r55607 = sin(r55606);
        double r55608 = pow(r55607, r55604);
        double r55609 = r55605 + r55608;
        double r55610 = 6.2550420220755e-314;
        bool r55611 = r55609 <= r55610;
        double r55612 = 1.0;
        double r55613 = r55612 / r55604;
        double r55614 = 0.0;
        double r55615 = r55612 + r55614;
        double r55616 = sqrt(r55615);
        double r55617 = r55612 / r55616;
        double r55618 = r55612 + r55617;
        double r55619 = r55613 * r55618;
        double r55620 = sqrt(r55619);
        double r55621 = l;
        double r55622 = r55604 * r55621;
        double r55623 = Om;
        double r55624 = r55622 / r55623;
        double r55625 = pow(r55624, r55604);
        double r55626 = r55625 * r55609;
        double r55627 = r55612 + r55626;
        double r55628 = sqrt(r55627);
        double r55629 = cbrt(r55628);
        double r55630 = r55629 * r55629;
        double r55631 = r55612 / r55630;
        double r55632 = cbrt(r55629);
        double r55633 = r55632 * r55632;
        double r55634 = r55633 * r55632;
        double r55635 = r55631 / r55634;
        double r55636 = r55612 + r55635;
        double r55637 = r55613 * r55636;
        double r55638 = sqrt(r55637);
        double r55639 = r55611 ? r55620 : r55638;
        return r55639;
}

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. Split input into 2 regimes
  2. if (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)) < 6.2550420220755e-314

    1. Initial program 17.0

      \[\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. Taylor expanded around 0 11.0

      \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \color{blue}{0}}}\right)}\]

    if 6.2550420220755e-314 < (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))

    1. Initial program 0.7

      \[\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-cube-cbrt0.7

      \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\color{blue}{\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 \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)}\]
    4. Applied associate-/r*0.7

      \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \color{blue}{\frac{\frac{1}{\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)}}}}{\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)}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt0.7

      \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{\frac{1}{\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)}}}}{\color{blue}{\left(\sqrt[3]{\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[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 \sqrt[3]{\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)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2} \le 6.255042022075511028897152922160877393 \cdot 10^{-314}:\\ \;\;\;\;\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + 0}}\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1}{2} \cdot \left(1 + \frac{\frac{1}{\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)}}}}{\left(\sqrt[3]{\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[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 \sqrt[3]{\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)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019347 +o rules:numerics
(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))))))))))