Average Error: 42.5 → 9.1
Time: 41.7s
Precision: 64
\[\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;t \le -2.661507795721962 \cdot 10^{+93}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\left(\frac{t}{2 \cdot \sqrt{2}} - \frac{t}{\sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} - \sqrt{2} \cdot t\right) - \frac{t}{\sqrt{2}} \cdot \frac{2}{x}}\\ \mathbf{elif}\;t \le 4.088323180304518 \cdot 10^{+139}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \ell \cdot \frac{\ell}{x}\right) + \frac{4}{x} \cdot \left(t \cdot t\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{\sqrt{2}} - \frac{t}{2 \cdot \sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} + \left(\frac{t}{\sqrt{2}} \cdot \frac{2}{x} + \sqrt{2} \cdot t\right)}\\ \end{array}\]
\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;t \le -2.661507795721962 \cdot 10^{+93}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\left(\frac{t}{2 \cdot \sqrt{2}} - \frac{t}{\sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} - \sqrt{2} \cdot t\right) - \frac{t}{\sqrt{2}} \cdot \frac{2}{x}}\\

\mathbf{elif}\;t \le 4.088323180304518 \cdot 10^{+139}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \ell \cdot \frac{\ell}{x}\right) + \frac{4}{x} \cdot \left(t \cdot t\right)}}\\

\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{\sqrt{2}} - \frac{t}{2 \cdot \sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} + \left(\frac{t}{\sqrt{2}} \cdot \frac{2}{x} + \sqrt{2} \cdot t\right)}\\

\end{array}
double f(double x, double l, double t) {
        double r1234832 = 2.0;
        double r1234833 = sqrt(r1234832);
        double r1234834 = t;
        double r1234835 = r1234833 * r1234834;
        double r1234836 = x;
        double r1234837 = 1.0;
        double r1234838 = r1234836 + r1234837;
        double r1234839 = r1234836 - r1234837;
        double r1234840 = r1234838 / r1234839;
        double r1234841 = l;
        double r1234842 = r1234841 * r1234841;
        double r1234843 = r1234834 * r1234834;
        double r1234844 = r1234832 * r1234843;
        double r1234845 = r1234842 + r1234844;
        double r1234846 = r1234840 * r1234845;
        double r1234847 = r1234846 - r1234842;
        double r1234848 = sqrt(r1234847);
        double r1234849 = r1234835 / r1234848;
        return r1234849;
}

double f(double x, double l, double t) {
        double r1234850 = t;
        double r1234851 = -2.661507795721962e+93;
        bool r1234852 = r1234850 <= r1234851;
        double r1234853 = 2.0;
        double r1234854 = sqrt(r1234853);
        double r1234855 = r1234854 * r1234850;
        double r1234856 = r1234853 * r1234854;
        double r1234857 = r1234850 / r1234856;
        double r1234858 = r1234850 / r1234854;
        double r1234859 = r1234857 - r1234858;
        double r1234860 = x;
        double r1234861 = r1234853 / r1234860;
        double r1234862 = r1234861 / r1234860;
        double r1234863 = r1234859 * r1234862;
        double r1234864 = r1234863 - r1234855;
        double r1234865 = r1234858 * r1234861;
        double r1234866 = r1234864 - r1234865;
        double r1234867 = r1234855 / r1234866;
        double r1234868 = 4.088323180304518e+139;
        bool r1234869 = r1234850 <= r1234868;
        double r1234870 = r1234850 * r1234850;
        double r1234871 = l;
        double r1234872 = r1234871 / r1234860;
        double r1234873 = r1234871 * r1234872;
        double r1234874 = r1234870 + r1234873;
        double r1234875 = r1234853 * r1234874;
        double r1234876 = 4.0;
        double r1234877 = r1234876 / r1234860;
        double r1234878 = r1234877 * r1234870;
        double r1234879 = r1234875 + r1234878;
        double r1234880 = sqrt(r1234879);
        double r1234881 = r1234855 / r1234880;
        double r1234882 = r1234858 - r1234857;
        double r1234883 = r1234882 * r1234862;
        double r1234884 = r1234865 + r1234855;
        double r1234885 = r1234883 + r1234884;
        double r1234886 = r1234855 / r1234885;
        double r1234887 = r1234869 ? r1234881 : r1234886;
        double r1234888 = r1234852 ? r1234867 : r1234887;
        return r1234888;
}

Error

Bits error versus x

Bits error versus l

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if t < -2.661507795721962e+93

    1. Initial program 50.3

      \[\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\]
    2. Taylor expanded around -inf 3.1

      \[\leadsto \frac{\sqrt{2} \cdot t}{\color{blue}{2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \left(2 \cdot \frac{t}{\sqrt{2} \cdot {x}^{2}} + \left(t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)\right)}}\]
    3. Simplified3.1

      \[\leadsto \frac{\sqrt{2} \cdot t}{\color{blue}{\left(\frac{\frac{2}{x}}{x} \cdot \left(\frac{t}{2 \cdot \sqrt{2}} - \frac{t}{\sqrt{2}}\right) - \sqrt{2} \cdot t\right) - \frac{2}{x} \cdot \frac{t}{\sqrt{2}}}}\]

    if -2.661507795721962e+93 < t < 4.088323180304518e+139

    1. Initial program 35.8

      \[\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\]
    2. Taylor expanded around -inf 17.0

      \[\leadsto \frac{\sqrt{2} \cdot t}{\sqrt{\color{blue}{2 \cdot {t}^{2} + \left(2 \cdot \frac{{\ell}^{2}}{x} + 4 \cdot \frac{{t}^{2}}{x}\right)}}}\]
    3. Simplified12.9

      \[\leadsto \frac{\sqrt{2} \cdot t}{\sqrt{\color{blue}{\frac{4}{x} \cdot \left(t \cdot t\right) + 2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right)}}}\]
    4. Taylor expanded around -inf 17.0

      \[\leadsto \frac{\sqrt{2} \cdot t}{\sqrt{\frac{4}{x} \cdot \left(t \cdot t\right) + 2 \cdot \color{blue}{\left({t}^{2} + \frac{{\ell}^{2}}{x}\right)}}}\]
    5. Simplified12.9

      \[\leadsto \frac{\sqrt{2} \cdot t}{\sqrt{\frac{4}{x} \cdot \left(t \cdot t\right) + 2 \cdot \color{blue}{\left(\frac{\ell}{x} \cdot \ell + t \cdot t\right)}}}\]

    if 4.088323180304518e+139 < t

    1. Initial program 57.8

      \[\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\]
    2. Taylor expanded around inf 2.1

      \[\leadsto \frac{\sqrt{2} \cdot t}{\color{blue}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot {x}^{2}} + \left(t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)\right) - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}}}\]
    3. Simplified2.1

      \[\leadsto \frac{\sqrt{2} \cdot t}{\color{blue}{\frac{\frac{2}{x}}{x} \cdot \left(\frac{t}{\sqrt{2}} - \frac{t}{2 \cdot \sqrt{2}}\right) + \left(\sqrt{2} \cdot t + \frac{2}{x} \cdot \frac{t}{\sqrt{2}}\right)}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification9.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -2.661507795721962 \cdot 10^{+93}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\left(\frac{t}{2 \cdot \sqrt{2}} - \frac{t}{\sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} - \sqrt{2} \cdot t\right) - \frac{t}{\sqrt{2}} \cdot \frac{2}{x}}\\ \mathbf{elif}\;t \le 4.088323180304518 \cdot 10^{+139}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \ell \cdot \frac{\ell}{x}\right) + \frac{4}{x} \cdot \left(t \cdot t\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{\sqrt{2}} - \frac{t}{2 \cdot \sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} + \left(\frac{t}{\sqrt{2}} \cdot \frac{2}{x} + \sqrt{2} \cdot t\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019151 
(FPCore (x l t)
  :name "Toniolo and Linder, Equation (7)"
  (/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))