Average Error: 43.0 → 9.0
Time: 28.3s
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(\frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{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{\left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2 + 4 \cdot \frac{{t}^{2}}{x}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right) - \frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\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(\frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{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{\left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2 + 4 \cdot \frac{{t}^{2}}{x}}}\\

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

\end{array}
double f(double x, double l, double t) {
        double r44467 = 2.0;
        double r44468 = sqrt(r44467);
        double r44469 = t;
        double r44470 = r44468 * r44469;
        double r44471 = x;
        double r44472 = 1.0;
        double r44473 = r44471 + r44472;
        double r44474 = r44471 - r44472;
        double r44475 = r44473 / r44474;
        double r44476 = l;
        double r44477 = r44476 * r44476;
        double r44478 = r44469 * r44469;
        double r44479 = r44467 * r44478;
        double r44480 = r44477 + r44479;
        double r44481 = r44475 * r44480;
        double r44482 = r44481 - r44477;
        double r44483 = sqrt(r44482);
        double r44484 = r44470 / r44483;
        return r44484;
}

double f(double x, double l, double t) {
        double r44485 = t;
        double r44486 = -3.696744411039917e+122;
        bool r44487 = r44485 <= r44486;
        double r44488 = 2.0;
        double r44489 = sqrt(r44488);
        double r44490 = r44489 * r44485;
        double r44491 = x;
        double r44492 = 2.0;
        double r44493 = pow(r44491, r44492);
        double r44494 = r44485 / r44493;
        double r44495 = r44489 * r44488;
        double r44496 = r44488 / r44495;
        double r44497 = r44488 / r44489;
        double r44498 = r44496 - r44497;
        double r44499 = r44494 * r44498;
        double r44500 = r44499 - r44490;
        double r44501 = r44489 * r44491;
        double r44502 = r44485 / r44501;
        double r44503 = r44488 * r44502;
        double r44504 = r44500 - r44503;
        double r44505 = r44490 / r44504;
        double r44506 = 3.380741590772817e+117;
        bool r44507 = r44485 <= r44506;
        double r44508 = l;
        double r44509 = r44491 / r44508;
        double r44510 = r44508 / r44509;
        double r44511 = r44485 * r44485;
        double r44512 = r44510 + r44511;
        double r44513 = r44512 * r44488;
        double r44514 = 4.0;
        double r44515 = pow(r44485, r44492);
        double r44516 = r44515 / r44491;
        double r44517 = r44514 * r44516;
        double r44518 = r44513 + r44517;
        double r44519 = sqrt(r44518);
        double r44520 = r44490 / r44519;
        double r44521 = r44485 * r44489;
        double r44522 = r44503 + r44521;
        double r44523 = r44522 - r44499;
        double r44524 = r44490 / r44523;
        double r44525 = r44507 ? r44520 : r44524;
        double r44526 = r44487 ? r44505 : r44525;
        return r44526;
}

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(\frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{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 \cdot t + \frac{{\ell}^{2}}{x}\right)}}}\]
    4. Using strategy rm
    5. Applied sqr-pow17.2

      \[\leadsto \frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left(t \cdot t + \frac{\color{blue}{{\ell}^{\left(\frac{2}{2}\right)} \cdot {\ell}^{\left(\frac{2}{2}\right)}}}{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 \cdot t + \color{blue}{\frac{{\ell}^{\left(\frac{2}{2}\right)}}{\frac{x}{{\ell}^{\left(\frac{2}{2}\right)}}}}\right)}}\]
    7. Simplified12.8

      \[\leadsto \frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left(t \cdot t + \frac{{\ell}^{\left(\frac{2}{2}\right)}}{\color{blue}{\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}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right) - \frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\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(\frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{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{\left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2 + 4 \cdot \frac{{t}^{2}}{x}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right) - \frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\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)))))