Average Error: 42.5 → 8.7
Time: 55.0s
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 -1.0708477180246655 \cdot 10^{+124}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{\frac{\frac{2}{\sqrt{2}}}{x}}{2} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x} - \sqrt{2} \cdot t}\\ \mathbf{elif}\;t \le 1.853799998927771 \cdot 10^{+116}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\left(2 + \frac{4}{x}\right) \cdot \left(t \cdot t\right) + \left(2 \cdot \frac{\ell}{x}\right) \cdot \ell}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{t}{\sqrt{2}} \cdot \left(\frac{2}{x} + \frac{\frac{2}{x}}{x}\right) + \left(\sqrt{2} \cdot t - \frac{1}{\sqrt{2}} \cdot \frac{t}{x \cdot x}\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 -1.0708477180246655 \cdot 10^{+124}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{\frac{\frac{2}{\sqrt{2}}}{x}}{2} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x} - \sqrt{2} \cdot t}\\

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

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

\end{array}
double f(double x, double l, double t) {
        double r3238923 = 2.0;
        double r3238924 = sqrt(r3238923);
        double r3238925 = t;
        double r3238926 = r3238924 * r3238925;
        double r3238927 = x;
        double r3238928 = 1.0;
        double r3238929 = r3238927 + r3238928;
        double r3238930 = r3238927 - r3238928;
        double r3238931 = r3238929 / r3238930;
        double r3238932 = l;
        double r3238933 = r3238932 * r3238932;
        double r3238934 = r3238925 * r3238925;
        double r3238935 = r3238923 * r3238934;
        double r3238936 = r3238933 + r3238935;
        double r3238937 = r3238931 * r3238936;
        double r3238938 = r3238937 - r3238933;
        double r3238939 = sqrt(r3238938);
        double r3238940 = r3238926 / r3238939;
        return r3238940;
}

double f(double x, double l, double t) {
        double r3238941 = t;
        double r3238942 = -1.0708477180246655e+124;
        bool r3238943 = r3238941 <= r3238942;
        double r3238944 = 2.0;
        double r3238945 = sqrt(r3238944);
        double r3238946 = r3238945 * r3238941;
        double r3238947 = r3238944 / r3238945;
        double r3238948 = x;
        double r3238949 = r3238947 / r3238948;
        double r3238950 = r3238949 / r3238944;
        double r3238951 = r3238950 - r3238947;
        double r3238952 = r3238941 / r3238948;
        double r3238953 = r3238951 * r3238952;
        double r3238954 = r3238953 - r3238946;
        double r3238955 = r3238946 / r3238954;
        double r3238956 = 1.853799998927771e+116;
        bool r3238957 = r3238941 <= r3238956;
        double r3238958 = 4.0;
        double r3238959 = r3238958 / r3238948;
        double r3238960 = r3238944 + r3238959;
        double r3238961 = r3238941 * r3238941;
        double r3238962 = r3238960 * r3238961;
        double r3238963 = l;
        double r3238964 = r3238963 / r3238948;
        double r3238965 = r3238944 * r3238964;
        double r3238966 = r3238965 * r3238963;
        double r3238967 = r3238962 + r3238966;
        double r3238968 = sqrt(r3238967);
        double r3238969 = r3238946 / r3238968;
        double r3238970 = r3238941 / r3238945;
        double r3238971 = r3238944 / r3238948;
        double r3238972 = r3238971 / r3238948;
        double r3238973 = r3238971 + r3238972;
        double r3238974 = r3238970 * r3238973;
        double r3238975 = 1.0;
        double r3238976 = r3238975 / r3238945;
        double r3238977 = r3238948 * r3238948;
        double r3238978 = r3238941 / r3238977;
        double r3238979 = r3238976 * r3238978;
        double r3238980 = r3238946 - r3238979;
        double r3238981 = r3238974 + r3238980;
        double r3238982 = r3238946 / r3238981;
        double r3238983 = r3238957 ? r3238969 : r3238982;
        double r3238984 = r3238943 ? r3238955 : r3238983;
        return r3238984;
}

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 < -1.0708477180246655e+124

    1. Initial program 55.4

      \[\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 55.7

      \[\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. Simplified54.0

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

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

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

    if -1.0708477180246655e+124 < t < 1.853799998927771e+116

    1. Initial program 35.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 16.7

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

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

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

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

    if 1.853799998927771e+116 < t

    1. Initial program 53.0

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.0708477180246655 \cdot 10^{+124}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{\frac{\frac{2}{\sqrt{2}}}{x}}{2} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x} - \sqrt{2} \cdot t}\\ \mathbf{elif}\;t \le 1.853799998927771 \cdot 10^{+116}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\left(2 + \frac{4}{x}\right) \cdot \left(t \cdot t\right) + \left(2 \cdot \frac{\ell}{x}\right) \cdot \ell}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{t}{\sqrt{2}} \cdot \left(\frac{2}{x} + \frac{\frac{2}{x}}{x}\right) + \left(\sqrt{2} \cdot t - \frac{1}{\sqrt{2}} \cdot \frac{t}{x \cdot x}\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019104 
(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)))))