Average Error: 1.5 → 0.6
Time: 21.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)}\]
\[\sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om}, 1\right)}} + \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{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om}, 1\right)}} + \frac{1}{2}}
double f(double l, double Om, double kx, double ky) {
        double r553945 = 1.0;
        double r553946 = 2.0;
        double r553947 = r553945 / r553946;
        double r553948 = l;
        double r553949 = r553946 * r553948;
        double r553950 = Om;
        double r553951 = r553949 / r553950;
        double r553952 = pow(r553951, r553946);
        double r553953 = kx;
        double r553954 = sin(r553953);
        double r553955 = pow(r553954, r553946);
        double r553956 = ky;
        double r553957 = sin(r553956);
        double r553958 = pow(r553957, r553946);
        double r553959 = r553955 + r553958;
        double r553960 = r553952 * r553959;
        double r553961 = r553945 + r553960;
        double r553962 = sqrt(r553961);
        double r553963 = r553945 / r553962;
        double r553964 = r553945 + r553963;
        double r553965 = r553947 * r553964;
        double r553966 = sqrt(r553965);
        return r553966;
}

double f(double l, double Om, double kx, double ky) {
        double r553967 = 0.5;
        double r553968 = 4.0;
        double r553969 = kx;
        double r553970 = sin(r553969);
        double r553971 = Om;
        double r553972 = l;
        double r553973 = r553971 / r553972;
        double r553974 = r553970 / r553973;
        double r553975 = r553974 * r553974;
        double r553976 = ky;
        double r553977 = sin(r553976);
        double r553978 = r553977 * r553972;
        double r553979 = r553978 / r553971;
        double r553980 = r553979 * r553979;
        double r553981 = r553975 + r553980;
        double r553982 = 1.0;
        double r553983 = fma(r553968, r553981, r553982);
        double r553984 = sqrt(r553983);
        double r553985 = r553967 / r553984;
        double r553986 = r553985 + r553967;
        double r553987 = sqrt(r553986);
        return r553987;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

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{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}} + \frac{1}{2}}}\]
  3. Using strategy rm
  4. Applied insert-posit162.1

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \color{blue}{\left(\left(\sin ky \cdot \sin ky\right)\right)}\right), 1\right)}} + \frac{1}{2}}\]
  5. Taylor expanded around inf 16.7

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

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\color{blue}{\mathsf{fma}\left(4, \frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om} + \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}}, 1\right)}}} + \frac{1}{2}}\]
  7. Final simplification0.6

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

Reproduce

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