Average Error: 1.6 → 2.6
Time: 30.1s
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}\;\ell \le -5.595436898681083 \cdot 10^{-237}:\\ \;\;\;\;\sqrt{\frac{1}{2} + \left(\sqrt[3]{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \left(\left(\sin kx \cdot \sin kx\right)\right)\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}}} \cdot \sqrt[3]{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \left(\left(\sin kx \cdot \sin kx\right)\right)\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}}}\right) \cdot \sqrt[3]{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \left(\left(\sin kx \cdot \sin kx\right)\right)\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}}}}\\ \mathbf{elif}\;\ell \le 1.6529205245568764 \cdot 10^{+178}:\\ \;\;\;\;\sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\sqrt[3]{\left(\left(\left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) \cdot \left(\left(\frac{\ell + \ell}{Om} \cdot \sin kx\right)\right) + \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right)\right) + 1\right) \cdot \sqrt{1 + \left(\left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) + \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right)\right)}}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1}{2}}\\ \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}\;\ell \le -5.595436898681083 \cdot 10^{-237}:\\
\;\;\;\;\sqrt{\frac{1}{2} + \left(\sqrt[3]{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \left(\left(\sin kx \cdot \sin kx\right)\right)\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}}} \cdot \sqrt[3]{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \left(\left(\sin kx \cdot \sin kx\right)\right)\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}}}\right) \cdot \sqrt[3]{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \left(\left(\sin kx \cdot \sin kx\right)\right)\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}}}}\\

\mathbf{elif}\;\ell \le 1.6529205245568764 \cdot 10^{+178}:\\
\;\;\;\;\sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\sqrt[3]{\left(\left(\left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) \cdot \left(\left(\frac{\ell + \ell}{Om} \cdot \sin kx\right)\right) + \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right)\right) + 1\right) \cdot \sqrt{1 + \left(\left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) + \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right)\right)}}}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{1}{2}}\\

\end{array}
double f(double l, double Om, double kx, double ky) {
        double r1730793 = 1.0;
        double r1730794 = 2.0;
        double r1730795 = r1730793 / r1730794;
        double r1730796 = l;
        double r1730797 = r1730794 * r1730796;
        double r1730798 = Om;
        double r1730799 = r1730797 / r1730798;
        double r1730800 = pow(r1730799, r1730794);
        double r1730801 = kx;
        double r1730802 = sin(r1730801);
        double r1730803 = pow(r1730802, r1730794);
        double r1730804 = ky;
        double r1730805 = sin(r1730804);
        double r1730806 = pow(r1730805, r1730794);
        double r1730807 = r1730803 + r1730806;
        double r1730808 = r1730800 * r1730807;
        double r1730809 = r1730793 + r1730808;
        double r1730810 = sqrt(r1730809);
        double r1730811 = r1730793 / r1730810;
        double r1730812 = r1730793 + r1730811;
        double r1730813 = r1730795 * r1730812;
        double r1730814 = sqrt(r1730813);
        return r1730814;
}

double f(double l, double Om, double kx, double ky) {
        double r1730815 = l;
        double r1730816 = -5.595436898681083e-237;
        bool r1730817 = r1730815 <= r1730816;
        double r1730818 = 0.5;
        double r1730819 = ky;
        double r1730820 = sin(r1730819);
        double r1730821 = r1730820 * r1730820;
        double r1730822 = kx;
        double r1730823 = sin(r1730822);
        double r1730824 = r1730823 * r1730823;
        double r1730825 = /* ERROR: no posit support in C */;
        double r1730826 = /* ERROR: no posit support in C */;
        double r1730827 = r1730821 + r1730826;
        double r1730828 = r1730815 + r1730815;
        double r1730829 = Om;
        double r1730830 = r1730828 / r1730829;
        double r1730831 = r1730830 * r1730830;
        double r1730832 = r1730827 * r1730831;
        double r1730833 = 1.0;
        double r1730834 = r1730832 + r1730833;
        double r1730835 = sqrt(r1730834);
        double r1730836 = r1730818 / r1730835;
        double r1730837 = cbrt(r1730836);
        double r1730838 = r1730837 * r1730837;
        double r1730839 = r1730838 * r1730837;
        double r1730840 = r1730818 + r1730839;
        double r1730841 = sqrt(r1730840);
        double r1730842 = 1.6529205245568764e+178;
        bool r1730843 = r1730815 <= r1730842;
        double r1730844 = r1730830 * r1730823;
        double r1730845 = /* ERROR: no posit support in C */;
        double r1730846 = /* ERROR: no posit support in C */;
        double r1730847 = r1730844 * r1730846;
        double r1730848 = r1730830 * r1730820;
        double r1730849 = r1730848 * r1730848;
        double r1730850 = r1730847 + r1730849;
        double r1730851 = r1730850 + r1730833;
        double r1730852 = r1730844 * r1730844;
        double r1730853 = r1730852 + r1730849;
        double r1730854 = r1730833 + r1730853;
        double r1730855 = sqrt(r1730854);
        double r1730856 = r1730851 * r1730855;
        double r1730857 = cbrt(r1730856);
        double r1730858 = r1730818 / r1730857;
        double r1730859 = r1730818 + r1730858;
        double r1730860 = sqrt(r1730859);
        double r1730861 = sqrt(r1730818);
        double r1730862 = r1730843 ? r1730860 : r1730861;
        double r1730863 = r1730817 ? r1730841 : r1730862;
        return r1730863;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Derivation

  1. Split input into 3 regimes
  2. if l < -5.595436898681083e-237

    1. Initial program 1.6

      \[\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.6

      \[\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 + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}} + \frac{1}{2}}}\]
    3. Using strategy rm
    4. Applied insert-posit162.3

      \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \color{blue}{\left(\left(\sin kx \cdot \sin kx\right)\right)}\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}} + \frac{1}{2}}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt2.3

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

    if -5.595436898681083e-237 < l < 1.6529205245568764e+178

    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. Simplified1.1

      \[\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 + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}} + \frac{1}{2}}}\]
    3. Using strategy rm
    4. Applied add-cbrt-cube1.1

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

      \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt[3]{\color{blue}{\sqrt{1 + \left(\left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) + \left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin kx\right)\right)} \cdot \left(1 + \left(\left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) + \left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin kx\right)\right)\right)}}} + \frac{1}{2}}\]
    6. Using strategy rm
    7. Applied insert-posit161.8

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

    if 1.6529205245568764e+178 < l

    1. Initial program 3.3

      \[\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. Simplified3.3

      \[\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 + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}} + \frac{1}{2}}}\]
    3. Taylor expanded around 0 7.6

      \[\leadsto \sqrt{\color{blue}{0} + \frac{1}{2}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification2.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;\ell \le -5.595436898681083 \cdot 10^{-237}:\\ \;\;\;\;\sqrt{\frac{1}{2} + \left(\sqrt[3]{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \left(\left(\sin kx \cdot \sin kx\right)\right)\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}}} \cdot \sqrt[3]{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \left(\left(\sin kx \cdot \sin kx\right)\right)\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}}}\right) \cdot \sqrt[3]{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \left(\left(\sin kx \cdot \sin kx\right)\right)\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \frac{\ell + \ell}{Om}\right) + 1}}}}\\ \mathbf{elif}\;\ell \le 1.6529205245568764 \cdot 10^{+178}:\\ \;\;\;\;\sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\sqrt[3]{\left(\left(\left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) \cdot \left(\left(\frac{\ell + \ell}{Om} \cdot \sin kx\right)\right) + \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right)\right) + 1\right) \cdot \sqrt{1 + \left(\left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin kx\right) + \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell + \ell}{Om} \cdot \sin ky\right)\right)}}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1}{2}}\\ \end{array}\]

Reproduce

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