Average Error: 43.1 → 9.2
Time: 28.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.397305156304466012482107522690315080951 \cdot 10^{105}:\\ \;\;\;\;\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) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\ \mathbf{elif}\;t \le 3.16626920683862038527006405926439879237 \cdot 10^{113}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \frac{\ell}{\frac{x}{\ell}}\right) + 4 \cdot \frac{{t}^{2}}{x}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\ \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.397305156304466012482107522690315080951 \cdot 10^{105}:\\
\;\;\;\;\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) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\

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

\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\

\end{array}
double f(double x, double l, double t) {
        double r47462 = 2.0;
        double r47463 = sqrt(r47462);
        double r47464 = t;
        double r47465 = r47463 * r47464;
        double r47466 = x;
        double r47467 = 1.0;
        double r47468 = r47466 + r47467;
        double r47469 = r47466 - r47467;
        double r47470 = r47468 / r47469;
        double r47471 = l;
        double r47472 = r47471 * r47471;
        double r47473 = r47464 * r47464;
        double r47474 = r47462 * r47473;
        double r47475 = r47472 + r47474;
        double r47476 = r47470 * r47475;
        double r47477 = r47476 - r47472;
        double r47478 = sqrt(r47477);
        double r47479 = r47465 / r47478;
        return r47479;
}

double f(double x, double l, double t) {
        double r47480 = t;
        double r47481 = -1.397305156304466e+105;
        bool r47482 = r47480 <= r47481;
        double r47483 = 2.0;
        double r47484 = sqrt(r47483);
        double r47485 = r47484 * r47480;
        double r47486 = 3.0;
        double r47487 = pow(r47484, r47486);
        double r47488 = x;
        double r47489 = 2.0;
        double r47490 = pow(r47488, r47489);
        double r47491 = r47487 * r47490;
        double r47492 = r47480 / r47491;
        double r47493 = r47484 * r47490;
        double r47494 = r47480 / r47493;
        double r47495 = r47492 - r47494;
        double r47496 = r47483 * r47495;
        double r47497 = r47484 * r47488;
        double r47498 = r47480 / r47497;
        double r47499 = r47483 * r47498;
        double r47500 = r47496 - r47499;
        double r47501 = r47480 * r47484;
        double r47502 = r47500 - r47501;
        double r47503 = r47485 / r47502;
        double r47504 = 3.1662692068386204e+113;
        bool r47505 = r47480 <= r47504;
        double r47506 = r47480 * r47480;
        double r47507 = l;
        double r47508 = r47488 / r47507;
        double r47509 = r47507 / r47508;
        double r47510 = r47506 + r47509;
        double r47511 = r47483 * r47510;
        double r47512 = 4.0;
        double r47513 = pow(r47480, r47489);
        double r47514 = r47513 / r47488;
        double r47515 = r47512 * r47514;
        double r47516 = r47511 + r47515;
        double r47517 = sqrt(r47516);
        double r47518 = r47485 / r47517;
        double r47519 = r47501 + r47499;
        double r47520 = r47485 / r47519;
        double r47521 = r47505 ? r47518 : r47520;
        double r47522 = r47482 ? r47503 : r47521;
        return r47522;
}

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.397305156304466e+105

    1. Initial program 50.9

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

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

      \[\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) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}}\]

    if -1.397305156304466e+105 < t < 3.1662692068386204e+113

    1. Initial program 37.7

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

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

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

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

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

    if 3.1662692068386204e+113 < t

    1. Initial program 52.7

      \[\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 52.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. Simplified52.7

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.397305156304466012482107522690315080951 \cdot 10^{105}:\\ \;\;\;\;\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) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\ \mathbf{elif}\;t \le 3.16626920683862038527006405926439879237 \cdot 10^{113}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \frac{\ell}{\frac{x}{\ell}}\right) + 4 \cdot \frac{{t}^{2}}{x}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\ \end{array}\]

Reproduce

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