Average Error: 43.0 → 9.0
Time: 16.9s
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 -3.696744411039916917517605602907382612022 \cdot 10^{122}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot {x}^{2}}\right) - \sqrt{2} \cdot t\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\ \mathbf{elif}\;t \le 3.380741590772817149641192548059648402147 \cdot 10^{117}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \frac{\ell}{\frac{x}{\ell}}\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2} \cdot t + \left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + \frac{2}{{x}^{2}} \cdot \left(\frac{t}{\sqrt{2}} - \frac{t}{{\left(\sqrt{2}\right)}^{3}}\right)\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 -3.696744411039916917517605602907382612022 \cdot 10^{122}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot {x}^{2}}\right) - \sqrt{2} \cdot t\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\

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

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

\end{array}
double f(double x, double l, double t) {
        double r43930 = 2.0;
        double r43931 = sqrt(r43930);
        double r43932 = t;
        double r43933 = r43931 * r43932;
        double r43934 = x;
        double r43935 = 1.0;
        double r43936 = r43934 + r43935;
        double r43937 = r43934 - r43935;
        double r43938 = r43936 / r43937;
        double r43939 = l;
        double r43940 = r43939 * r43939;
        double r43941 = r43932 * r43932;
        double r43942 = r43930 * r43941;
        double r43943 = r43940 + r43942;
        double r43944 = r43938 * r43943;
        double r43945 = r43944 - r43940;
        double r43946 = sqrt(r43945);
        double r43947 = r43933 / r43946;
        return r43947;
}

double f(double x, double l, double t) {
        double r43948 = t;
        double r43949 = -3.696744411039917e+122;
        bool r43950 = r43948 <= r43949;
        double r43951 = 2.0;
        double r43952 = sqrt(r43951);
        double r43953 = r43952 * r43948;
        double r43954 = 3.0;
        double r43955 = pow(r43952, r43954);
        double r43956 = x;
        double r43957 = 2.0;
        double r43958 = pow(r43956, r43957);
        double r43959 = r43955 * r43958;
        double r43960 = r43948 / r43959;
        double r43961 = r43952 * r43958;
        double r43962 = r43948 / r43961;
        double r43963 = r43960 - r43962;
        double r43964 = r43951 * r43963;
        double r43965 = r43964 - r43953;
        double r43966 = r43952 * r43956;
        double r43967 = r43948 / r43966;
        double r43968 = r43951 * r43967;
        double r43969 = r43965 - r43968;
        double r43970 = r43953 / r43969;
        double r43971 = 3.380741590772817e+117;
        bool r43972 = r43948 <= r43971;
        double r43973 = 4.0;
        double r43974 = pow(r43948, r43957);
        double r43975 = r43974 / r43956;
        double r43976 = r43973 * r43975;
        double r43977 = l;
        double r43978 = r43956 / r43977;
        double r43979 = r43977 / r43978;
        double r43980 = r43974 + r43979;
        double r43981 = r43951 * r43980;
        double r43982 = r43976 + r43981;
        double r43983 = sqrt(r43982);
        double r43984 = r43953 / r43983;
        double r43985 = r43951 / r43958;
        double r43986 = r43948 / r43952;
        double r43987 = r43948 / r43955;
        double r43988 = r43986 - r43987;
        double r43989 = r43985 * r43988;
        double r43990 = r43968 + r43989;
        double r43991 = r43953 + r43990;
        double r43992 = r43953 / r43991;
        double r43993 = r43972 ? r43984 : r43992;
        double r43994 = r43950 ? r43970 : r43993;
        return r43994;
}

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 < -3.696744411039917e+122

    1. Initial program 54.6

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

      \[\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(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right)\right)}}\]
    3. Simplified2.8

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

    if -3.696744411039917e+122 < t < 3.380741590772817e+117

    1. Initial program 36.6

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

      \[\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. Simplified17.2

      \[\leadsto \frac{\sqrt{2} \cdot t}{\sqrt{\color{blue}{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \frac{{\ell}^{2}}{x}\right)}}}\]
    4. Using strategy rm
    5. Applied unpow217.2

      \[\leadsto \frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \frac{\color{blue}{\ell \cdot \ell}}{x}\right)}}\]
    6. Applied associate-/l*12.8

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

    if 3.380741590772817e+117 < t

    1. Initial program 53.6

      \[\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(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\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}{\sqrt{2} \cdot t + \left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + \frac{2}{{x}^{2}} \cdot \left(\frac{t}{\sqrt{2}} - \frac{t}{{\left(\sqrt{2}\right)}^{3}}\right)\right)}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification9.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -3.696744411039916917517605602907382612022 \cdot 10^{122}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot {x}^{2}}\right) - \sqrt{2} \cdot t\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\ \mathbf{elif}\;t \le 3.380741590772817149641192548059648402147 \cdot 10^{117}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \frac{\ell}{\frac{x}{\ell}}\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2} \cdot t + \left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + \frac{2}{{x}^{2}} \cdot \left(\frac{t}{\sqrt{2}} - \frac{t}{{\left(\sqrt{2}\right)}^{3}}\right)\right)}\\ \end{array}\]

Reproduce

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