Average Error: 1.8 → 4.3
Time: 25.4s
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 -8.522909308188593 \cdot 10^{+103}:\\ \;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\ell \cdot \frac{2}{Om}, 2 \cdot \left(\ell \cdot \left(\frac{kx \cdot kx}{Om} + \frac{ky \cdot ky}{Om}\right)\right), 1\right)}} + \frac{1}{2}}\\ \mathbf{elif}\;\ell \le 6.514983512121752 \cdot 10^{+179}:\\ \;\;\;\;\sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\ell \cdot \frac{2}{Om}, \left(\left(\mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right) \cdot \left(\ell \cdot \frac{2}{Om}\right)\right)\right), 1\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\ell \cdot \frac{2}{Om}, 2 \cdot \left(\ell \cdot \left(\frac{kx \cdot kx}{Om} + \frac{ky \cdot ky}{Om}\right)\right), 1\right)}} + \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 -8.522909308188593 \cdot 10^{+103}:\\
\;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\ell \cdot \frac{2}{Om}, 2 \cdot \left(\ell \cdot \left(\frac{kx \cdot kx}{Om} + \frac{ky \cdot ky}{Om}\right)\right), 1\right)}} + \frac{1}{2}}\\

\mathbf{elif}\;\ell \le 6.514983512121752 \cdot 10^{+179}:\\
\;\;\;\;\sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\ell \cdot \frac{2}{Om}, \left(\left(\mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right) \cdot \left(\ell \cdot \frac{2}{Om}\right)\right)\right), 1\right)}}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\ell \cdot \frac{2}{Om}, 2 \cdot \left(\ell \cdot \left(\frac{kx \cdot kx}{Om} + \frac{ky \cdot ky}{Om}\right)\right), 1\right)}} + \frac{1}{2}}\\

\end{array}
double f(double l, double Om, double kx, double ky) {
        double r1513136 = 1.0;
        double r1513137 = 2.0;
        double r1513138 = r1513136 / r1513137;
        double r1513139 = l;
        double r1513140 = r1513137 * r1513139;
        double r1513141 = Om;
        double r1513142 = r1513140 / r1513141;
        double r1513143 = pow(r1513142, r1513137);
        double r1513144 = kx;
        double r1513145 = sin(r1513144);
        double r1513146 = pow(r1513145, r1513137);
        double r1513147 = ky;
        double r1513148 = sin(r1513147);
        double r1513149 = pow(r1513148, r1513137);
        double r1513150 = r1513146 + r1513149;
        double r1513151 = r1513143 * r1513150;
        double r1513152 = r1513136 + r1513151;
        double r1513153 = sqrt(r1513152);
        double r1513154 = r1513136 / r1513153;
        double r1513155 = r1513136 + r1513154;
        double r1513156 = r1513138 * r1513155;
        double r1513157 = sqrt(r1513156);
        return r1513157;
}

double f(double l, double Om, double kx, double ky) {
        double r1513158 = l;
        double r1513159 = -8.522909308188593e+103;
        bool r1513160 = r1513158 <= r1513159;
        double r1513161 = 0.5;
        double r1513162 = 2.0;
        double r1513163 = Om;
        double r1513164 = r1513162 / r1513163;
        double r1513165 = r1513158 * r1513164;
        double r1513166 = kx;
        double r1513167 = r1513166 * r1513166;
        double r1513168 = r1513167 / r1513163;
        double r1513169 = ky;
        double r1513170 = r1513169 * r1513169;
        double r1513171 = r1513170 / r1513163;
        double r1513172 = r1513168 + r1513171;
        double r1513173 = r1513158 * r1513172;
        double r1513174 = r1513162 * r1513173;
        double r1513175 = 1.0;
        double r1513176 = fma(r1513165, r1513174, r1513175);
        double r1513177 = sqrt(r1513176);
        double r1513178 = r1513161 / r1513177;
        double r1513179 = r1513178 + r1513161;
        double r1513180 = sqrt(r1513179);
        double r1513181 = 6.514983512121752e+179;
        bool r1513182 = r1513158 <= r1513181;
        double r1513183 = sin(r1513166);
        double r1513184 = sin(r1513169);
        double r1513185 = r1513184 * r1513184;
        double r1513186 = fma(r1513183, r1513183, r1513185);
        double r1513187 = r1513186 * r1513165;
        double r1513188 = /* ERROR: no posit support in C */;
        double r1513189 = /* ERROR: no posit support in C */;
        double r1513190 = fma(r1513165, r1513189, r1513175);
        double r1513191 = sqrt(r1513190);
        double r1513192 = r1513161 / r1513191;
        double r1513193 = r1513161 + r1513192;
        double r1513194 = sqrt(r1513193);
        double r1513195 = r1513182 ? r1513194 : r1513180;
        double r1513196 = r1513160 ? r1513180 : r1513195;
        return r1513196;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Derivation

  1. Split input into 2 regimes
  2. if l < -8.522909308188593e+103 or 6.514983512121752e+179 < l

    1. Initial program 2.9

      \[\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. Simplified2.9

      \[\leadsto \color{blue}{\sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\left(\frac{2}{Om} \cdot \ell\right) \cdot \left(\frac{2}{Om} \cdot \ell\right), \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-posit168.8

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

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

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

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

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

    if -8.522909308188593e+103 < l < 6.514983512121752e+179

    1. Initial program 1.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. Simplified1.3

      \[\leadsto \color{blue}{\sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\left(\frac{2}{Om} \cdot \ell\right) \cdot \left(\frac{2}{Om} \cdot \ell\right), \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-posit166.9

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

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

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

      \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\frac{2}{Om} \cdot \ell, \color{blue}{\left(\left(\mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right) \cdot \left(\frac{2}{Om} \cdot \ell\right)\right)\right)}, 1\right)}} + \frac{1}{2}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification4.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\ell \le -8.522909308188593 \cdot 10^{+103}:\\ \;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\ell \cdot \frac{2}{Om}, 2 \cdot \left(\ell \cdot \left(\frac{kx \cdot kx}{Om} + \frac{ky \cdot ky}{Om}\right)\right), 1\right)}} + \frac{1}{2}}\\ \mathbf{elif}\;\ell \le 6.514983512121752 \cdot 10^{+179}:\\ \;\;\;\;\sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\ell \cdot \frac{2}{Om}, \left(\left(\mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right) \cdot \left(\ell \cdot \frac{2}{Om}\right)\right)\right), 1\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\ell \cdot \frac{2}{Om}, 2 \cdot \left(\ell \cdot \left(\frac{kx \cdot kx}{Om} + \frac{ky \cdot ky}{Om}\right)\right), 1\right)}} + \frac{1}{2}}\\ \end{array}\]

Reproduce

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