Average Error: 1.1 → 0.8
Time: 3.5m
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 + e^{\mathsf{fma}\left(\log \left(\frac{2 \cdot \ell}{Om}\right), 2, \log \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)\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 + e^{\mathsf{fma}\left(\log \left(\frac{2 \cdot \ell}{Om}\right), 2, \log \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 r36593 = 1.0;
        double r36594 = 2.0;
        double r36595 = r36593 / r36594;
        double r36596 = l;
        double r36597 = r36594 * r36596;
        double r36598 = Om;
        double r36599 = r36597 / r36598;
        double r36600 = pow(r36599, r36594);
        double r36601 = kx;
        double r36602 = sin(r36601);
        double r36603 = pow(r36602, r36594);
        double r36604 = ky;
        double r36605 = sin(r36604);
        double r36606 = pow(r36605, r36594);
        double r36607 = r36603 + r36606;
        double r36608 = r36600 * r36607;
        double r36609 = r36593 + r36608;
        double r36610 = sqrt(r36609);
        double r36611 = r36593 / r36610;
        double r36612 = r36593 + r36611;
        double r36613 = r36595 * r36612;
        double r36614 = sqrt(r36613);
        return r36614;
}

double f(double l, double Om, double kx, double ky) {
        double r36615 = 1.0;
        double r36616 = 2.0;
        double r36617 = r36615 / r36616;
        double r36618 = l;
        double r36619 = r36616 * r36618;
        double r36620 = Om;
        double r36621 = r36619 / r36620;
        double r36622 = log(r36621);
        double r36623 = kx;
        double r36624 = sin(r36623);
        double r36625 = pow(r36624, r36616);
        double r36626 = ky;
        double r36627 = sin(r36626);
        double r36628 = pow(r36627, r36616);
        double r36629 = r36625 + r36628;
        double r36630 = log(r36629);
        double r36631 = fma(r36622, r36616, r36630);
        double r36632 = exp(r36631);
        double r36633 = r36615 + r36632;
        double r36634 = sqrt(r36633);
        double r36635 = r36615 / r36634;
        double r36636 = r36615 + r36635;
        double r36637 = r36617 * r36636;
        double r36638 = sqrt(r36637);
        return r36638;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Derivation

  1. Initial program 1.1

    \[\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-exp-log1.1

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \color{blue}{e^{\log \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}}\right)}\]
  4. Applied add-exp-log32.1

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{\color{blue}{e^{\log Om}}}\right)}^{2} \cdot e^{\log \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}\]
  5. Applied add-exp-log32.1

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \color{blue}{e^{\log \ell}}}{e^{\log Om}}\right)}^{2} \cdot e^{\log \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}\]
  6. Applied add-exp-log32.1

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{\color{blue}{e^{\log 2}} \cdot e^{\log \ell}}{e^{\log Om}}\right)}^{2} \cdot e^{\log \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}\]
  7. Applied prod-exp32.1

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

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\color{blue}{\left(e^{\left(\log 2 + \log \ell\right) - \log Om}\right)}}^{2} \cdot e^{\log \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}\]
  9. Applied pow-exp32.1

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \color{blue}{e^{\left(\left(\log 2 + \log \ell\right) - \log Om\right) \cdot 2}} \cdot e^{\log \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}\]
  10. Applied prod-exp31.9

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

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

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + e^{\mathsf{fma}\left(\log \left(\frac{2 \cdot \ell}{Om}\right), 2, \log \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)\right)}}}\right)}\]

Reproduce

herbie shell --seed 2020046 +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))))))))))