Average Error: 1.5 → 1.7
Time: 1.6m
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{\sqrt{\frac{1}{2}}}{\frac{\sqrt{\log \left(e^{\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot 2\right) \cdot \left(\frac{\ell}{Om} \cdot 2\right), \mathsf{fma}\left(\sin ky, \sin ky, \sin kx \cdot \sin kx\right), 1\right)}\right)}}{\sqrt{\frac{1}{2}}}} + \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{\sqrt{\frac{1}{2}}}{\frac{\sqrt{\log \left(e^{\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot 2\right) \cdot \left(\frac{\ell}{Om} \cdot 2\right), \mathsf{fma}\left(\sin ky, \sin ky, \sin kx \cdot \sin kx\right), 1\right)}\right)}}{\sqrt{\frac{1}{2}}}} + \frac{1}{2}}
double f(double l, double Om, double kx, double ky) {
        double r2551704 = 1.0;
        double r2551705 = 2.0;
        double r2551706 = r2551704 / r2551705;
        double r2551707 = l;
        double r2551708 = r2551705 * r2551707;
        double r2551709 = Om;
        double r2551710 = r2551708 / r2551709;
        double r2551711 = pow(r2551710, r2551705);
        double r2551712 = kx;
        double r2551713 = sin(r2551712);
        double r2551714 = pow(r2551713, r2551705);
        double r2551715 = ky;
        double r2551716 = sin(r2551715);
        double r2551717 = pow(r2551716, r2551705);
        double r2551718 = r2551714 + r2551717;
        double r2551719 = r2551711 * r2551718;
        double r2551720 = r2551704 + r2551719;
        double r2551721 = sqrt(r2551720);
        double r2551722 = r2551704 / r2551721;
        double r2551723 = r2551704 + r2551722;
        double r2551724 = r2551706 * r2551723;
        double r2551725 = sqrt(r2551724);
        return r2551725;
}

double f(double l, double Om, double kx, double ky) {
        double r2551726 = 1.0;
        double r2551727 = 2.0;
        double r2551728 = r2551726 / r2551727;
        double r2551729 = sqrt(r2551728);
        double r2551730 = l;
        double r2551731 = Om;
        double r2551732 = r2551730 / r2551731;
        double r2551733 = r2551732 * r2551727;
        double r2551734 = r2551733 * r2551733;
        double r2551735 = ky;
        double r2551736 = sin(r2551735);
        double r2551737 = kx;
        double r2551738 = sin(r2551737);
        double r2551739 = r2551738 * r2551738;
        double r2551740 = fma(r2551736, r2551736, r2551739);
        double r2551741 = fma(r2551734, r2551740, r2551726);
        double r2551742 = exp(r2551741);
        double r2551743 = log(r2551742);
        double r2551744 = sqrt(r2551743);
        double r2551745 = r2551744 / r2551729;
        double r2551746 = r2551729 / r2551745;
        double r2551747 = r2551746 + r2551728;
        double r2551748 = sqrt(r2551747);
        return r2551748;
}

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

    \[\leadsto \sqrt{\frac{1}{2} + \frac{\color{blue}{\sqrt{\frac{1}{2}} \cdot \sqrt{\frac{1}{2}}}}{\sqrt{\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot 2\right) \cdot \left(\frac{\ell}{Om} \cdot 2\right), \mathsf{fma}\left(\sin ky, \sin ky, \sin kx \cdot \sin kx\right), 1\right)}}}\]
  5. Applied associate-/l*1.5

    \[\leadsto \sqrt{\frac{1}{2} + \color{blue}{\frac{\sqrt{\frac{1}{2}}}{\frac{\sqrt{\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot 2\right) \cdot \left(\frac{\ell}{Om} \cdot 2\right), \mathsf{fma}\left(\sin ky, \sin ky, \sin kx \cdot \sin kx\right), 1\right)}}{\sqrt{\frac{1}{2}}}}}}\]
  6. Using strategy rm
  7. Applied add-log-exp1.7

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

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

Reproduce

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