Average Error: 43.3 → 6.2
Time: 25.3s
Precision: binary64
Cost: 20356
\[\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} t_1 := \ell \cdot \frac{\ell}{x}\\ \mathbf{if}\;t \leq -26:\\ \;\;\;\;\frac{t \cdot \sqrt{2}}{\sqrt{\frac{x + 1}{x + -1}} \cdot \left(t \cdot \left(-\sqrt{2}\right)\right)}\\ \mathbf{elif}\;t \leq 1.02 \cdot 10^{-150}:\\ \;\;\;\;\frac{t}{\mathsf{hypot}\left(t, \sqrt{t_1}\right)}\\ \mathbf{elif}\;t \leq 10^{+127}:\\ \;\;\;\;\sqrt{2 \cdot \frac{\frac{t \cdot t}{2}}{\mathsf{fma}\left(t, t, t_1\right)}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1 - x}{-1 - x}}\\ \end{array} \]
(FPCore (x l t)
 :precision binary64
 (/
  (* (sqrt 2.0) t)
  (sqrt (- (* (/ (+ x 1.0) (- x 1.0)) (+ (* l l) (* 2.0 (* t t)))) (* l l)))))
(FPCore (x l t)
 :precision binary64
 (let* ((t_1 (* l (/ l x))))
   (if (<= t -26.0)
     (/
      (* t (sqrt 2.0))
      (* (sqrt (/ (+ x 1.0) (+ x -1.0))) (* t (- (sqrt 2.0)))))
     (if (<= t 1.02e-150)
       (/ t (hypot t (sqrt t_1)))
       (if (<= t 1e+127)
         (sqrt (* 2.0 (/ (/ (* t t) 2.0) (fma t t t_1))))
         (sqrt (/ (- 1.0 x) (- -1.0 x))))))))
double code(double x, double l, double t) {
	return (sqrt(2.0) * t) / sqrt(((((x + 1.0) / (x - 1.0)) * ((l * l) + (2.0 * (t * t)))) - (l * l)));
}
double code(double x, double l, double t) {
	double t_1 = l * (l / x);
	double tmp;
	if (t <= -26.0) {
		tmp = (t * sqrt(2.0)) / (sqrt(((x + 1.0) / (x + -1.0))) * (t * -sqrt(2.0)));
	} else if (t <= 1.02e-150) {
		tmp = t / hypot(t, sqrt(t_1));
	} else if (t <= 1e+127) {
		tmp = sqrt((2.0 * (((t * t) / 2.0) / fma(t, t, t_1))));
	} else {
		tmp = sqrt(((1.0 - x) / (-1.0 - x)));
	}
	return tmp;
}
function code(x, l, t)
	return Float64(Float64(sqrt(2.0) * t) / sqrt(Float64(Float64(Float64(Float64(x + 1.0) / Float64(x - 1.0)) * Float64(Float64(l * l) + Float64(2.0 * Float64(t * t)))) - Float64(l * l))))
end
function code(x, l, t)
	t_1 = Float64(l * Float64(l / x))
	tmp = 0.0
	if (t <= -26.0)
		tmp = Float64(Float64(t * sqrt(2.0)) / Float64(sqrt(Float64(Float64(x + 1.0) / Float64(x + -1.0))) * Float64(t * Float64(-sqrt(2.0)))));
	elseif (t <= 1.02e-150)
		tmp = Float64(t / hypot(t, sqrt(t_1)));
	elseif (t <= 1e+127)
		tmp = sqrt(Float64(2.0 * Float64(Float64(Float64(t * t) / 2.0) / fma(t, t, t_1))));
	else
		tmp = sqrt(Float64(Float64(1.0 - x) / Float64(-1.0 - x)));
	end
	return tmp
end
code[x_, l_, t_] := N[(N[(N[Sqrt[2.0], $MachinePrecision] * t), $MachinePrecision] / N[Sqrt[N[(N[(N[(N[(x + 1.0), $MachinePrecision] / N[(x - 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[(l * l), $MachinePrecision] + N[(2.0 * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(l * l), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
code[x_, l_, t_] := Block[{t$95$1 = N[(l * N[(l / x), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -26.0], N[(N[(t * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision] / N[(N[Sqrt[N[(N[(x + 1.0), $MachinePrecision] / N[(x + -1.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(t * (-N[Sqrt[2.0], $MachinePrecision])), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.02e-150], N[(t / N[Sqrt[t ^ 2 + N[Sqrt[t$95$1], $MachinePrecision] ^ 2], $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1e+127], N[Sqrt[N[(2.0 * N[(N[(N[(t * t), $MachinePrecision] / 2.0), $MachinePrecision] / N[(t * t + t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(N[(1.0 - x), $MachinePrecision] / N[(-1.0 - x), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]
\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}
t_1 := \ell \cdot \frac{\ell}{x}\\
\mathbf{if}\;t \leq -26:\\
\;\;\;\;\frac{t \cdot \sqrt{2}}{\sqrt{\frac{x + 1}{x + -1}} \cdot \left(t \cdot \left(-\sqrt{2}\right)\right)}\\

\mathbf{elif}\;t \leq 1.02 \cdot 10^{-150}:\\
\;\;\;\;\frac{t}{\mathsf{hypot}\left(t, \sqrt{t_1}\right)}\\

\mathbf{elif}\;t \leq 10^{+127}:\\
\;\;\;\;\sqrt{2 \cdot \frac{\frac{t \cdot t}{2}}{\mathsf{fma}\left(t, t, t_1\right)}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{1 - x}{-1 - x}}\\


\end{array}

Error

Derivation

  1. Split input into 4 regimes
  2. if t < -26

    1. Initial program 41.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 in t around -inf 5.2

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

      \[\leadsto \frac{\sqrt{2} \cdot t}{\color{blue}{-\left(t \cdot \sqrt{2}\right) \cdot \sqrt{\frac{x + 1}{-1 + x}}}} \]
      Proof
      (/.f64 (*.f64 (sqrt.f64 2) t) (neg.f64 (*.f64 (*.f64 t (sqrt.f64 2)) (sqrt.f64 (/.f64 (+.f64 x 1) (+.f64 -1 x)))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 (sqrt.f64 2) t) (neg.f64 (*.f64 (Rewrite=> *-commutative_binary64 (*.f64 (sqrt.f64 2) t)) (sqrt.f64 (/.f64 (+.f64 x 1) (+.f64 -1 x)))))): 0 points increase in error, 7 points decrease in error
      (/.f64 (*.f64 (sqrt.f64 2) t) (neg.f64 (*.f64 (*.f64 (sqrt.f64 2) t) (sqrt.f64 (/.f64 (+.f64 x 1) (Rewrite<= +-commutative_binary64 (+.f64 x -1))))))): 7 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 (sqrt.f64 2) t) (neg.f64 (*.f64 (*.f64 (sqrt.f64 2) t) (sqrt.f64 (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 1 x)) (+.f64 x -1)))))): 0 points increase in error, 7 points decrease in error
      (/.f64 (*.f64 (sqrt.f64 2) t) (neg.f64 (*.f64 (*.f64 (sqrt.f64 2) t) (sqrt.f64 (/.f64 (+.f64 1 x) (+.f64 x (Rewrite<= metadata-eval (neg.f64 1)))))))): 0 points increase in error, 7 points decrease in error
      (/.f64 (*.f64 (sqrt.f64 2) t) (neg.f64 (*.f64 (*.f64 (sqrt.f64 2) t) (sqrt.f64 (/.f64 (+.f64 1 x) (Rewrite<= sub-neg_binary64 (-.f64 x 1))))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 (sqrt.f64 2) t) (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 2) t) (sqrt.f64 (/.f64 (+.f64 1 x) (-.f64 x 1))))))): 7 points increase in error, 0 points decrease in error

    if -26 < t < 1.0199999999999999e-150

    1. Initial program 50.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. Simplified54.9

      \[\leadsto \color{blue}{\sqrt{2} \cdot \frac{t}{\sqrt{\mathsf{fma}\left(x + 1, \frac{\mathsf{fma}\left(2, t \cdot t, \ell \cdot \ell\right)}{x + -1}, -\ell \cdot \ell\right)}}} \]
      Proof
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (fma.f64 2 (*.f64 t t) (*.f64 l l)) (+.f64 x -1)) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 2 (*.f64 t t)) (*.f64 l l))) (+.f64 x -1)) (neg.f64 (*.f64 l l)))))): 16 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t)))) (+.f64 x -1)) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 1 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (+.f64 x (Rewrite<= metadata-eval (neg.f64 1)))) (neg.f64 (*.f64 l l)))))): 1 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (Rewrite<= sub-neg_binary64 (-.f64 x 1))) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (Rewrite<= *-lft-identity_binary64 (*.f64 1 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))))) (-.f64 x 1)) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 16 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (Rewrite<= associate-*r/_binary64 (*.f64 1 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)))) (neg.f64 (*.f64 l l)))))): 16 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (+.f64 x 1) (*.f64 1 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)))) (*.f64 l l)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite=> *-commutative_binary64 (*.f64 (*.f64 1 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1))) (+.f64 x 1))) (*.f64 l l))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite<= associate-*r*_binary64 (*.f64 1 (*.f64 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)) (+.f64 x 1)))) (*.f64 l l))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (*.f64 1 (Rewrite=> *-commutative_binary64 (*.f64 (+.f64 x 1) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1))))) (*.f64 l l))))): 0 points increase in error, 16 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite=> associate-*r*_binary64 (*.f64 (*.f64 1 (+.f64 x 1)) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)))) (*.f64 l l))))): 16 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (*.f64 (Rewrite=> *-lft-identity_binary64 (+.f64 x 1)) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1))) (*.f64 l l))))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (+.f64 x 1) (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t)))) (-.f64 x 1))) (*.f64 l l))))): 0 points increase in error, 16 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 (+.f64 x 1) (-.f64 x 1)) (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))))) (*.f64 l l))))): 0 points increase in error, 0 points decrease in error
      (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (sqrt.f64 2) t) (sqrt.f64 (-.f64 (*.f64 (/.f64 (+.f64 x 1) (-.f64 x 1)) (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t)))) (*.f64 l l))))): 16 points increase in error, 0 points decrease in error
    3. Taylor expanded in x around -inf 25.4

      \[\leadsto \sqrt{2} \cdot \frac{t}{\sqrt{\color{blue}{2 \cdot \frac{{\ell}^{2} + 2 \cdot {t}^{2}}{x} + 2 \cdot {t}^{2}}}} \]
    4. Simplified25.4

      \[\leadsto \sqrt{2} \cdot \frac{t}{\sqrt{\color{blue}{2 \cdot \left(\frac{\mathsf{fma}\left(2, t \cdot t, \ell \cdot \ell\right)}{x} + t \cdot t\right)}}} \]
      Proof
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (fma.f64 2 (*.f64 t t) (*.f64 l l)) x) (*.f64 t t)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (fma.f64 2 (Rewrite<= unpow2_binary64 (pow.f64 t 2)) (*.f64 l l)) x) (*.f64 t t)))))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (Rewrite=> fma-udef_binary64 (+.f64 (*.f64 2 (pow.f64 t 2)) (*.f64 l l))) x) (*.f64 t t)))))): 0 points increase in error, 7 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (+.f64 (*.f64 2 (pow.f64 t 2)) (Rewrite<= unpow2_binary64 (pow.f64 l 2))) x) (*.f64 t t)))))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (pow.f64 l 2) (*.f64 2 (pow.f64 t 2)))) x) (*.f64 t t)))))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (+.f64 (pow.f64 l 2) (*.f64 2 (pow.f64 t 2))) x) (Rewrite<= unpow2_binary64 (pow.f64 t 2))))))): 0 points increase in error, 7 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (Rewrite<= distribute-lft-out_binary64 (+.f64 (*.f64 2 (/.f64 (+.f64 (pow.f64 l 2) (*.f64 2 (pow.f64 t 2))) x)) (*.f64 2 (pow.f64 t 2))))))): 7 points increase in error, 0 points decrease in error
    5. Taylor expanded in t around 0 25.5

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

      \[\leadsto \sqrt{2} \cdot \frac{t}{\sqrt{2 \cdot \left(\color{blue}{\frac{\ell}{\frac{x}{\ell}}} + t \cdot t\right)}} \]
      Proof
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 l (/.f64 x l)) (*.f64 t t)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 l l) x)) (*.f64 t t)))))): 3 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 l 2)) x) (*.f64 t t)))))): 0 points increase in error, 3 points decrease in error
    7. Applied egg-rr8.5

      \[\leadsto \color{blue}{\frac{\frac{t \cdot \sqrt{2}}{\sqrt{2}}}{\mathsf{hypot}\left(t, \sqrt{\ell \cdot \frac{\ell}{x}}\right)}} \]
    8. Simplified8.4

      \[\leadsto \color{blue}{\frac{\frac{t}{1}}{\mathsf{hypot}\left(t, \sqrt{\ell \cdot \frac{\ell}{x}}\right)}} \]
      Proof
      (/.f64 (/.f64 t 1) (hypot.f64 t (sqrt.f64 (*.f64 l (/.f64 l x))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 t (Rewrite<= *-inverses_binary64 (/.f64 (sqrt.f64 2) (sqrt.f64 2)))) (hypot.f64 t (sqrt.f64 (*.f64 l (/.f64 l x))))): 0 points increase in error, 3 points decrease in error
      (/.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 t (sqrt.f64 2)) (sqrt.f64 2))) (hypot.f64 t (sqrt.f64 (*.f64 l (/.f64 l x))))): 0 points increase in error, 3 points decrease in error

    if 1.0199999999999999e-150 < t < 9.99999999999999955e126

    1. Initial program 26.2

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

      \[\leadsto \color{blue}{\sqrt{2} \cdot \frac{t}{\sqrt{\mathsf{fma}\left(x + 1, \frac{\mathsf{fma}\left(2, t \cdot t, \ell \cdot \ell\right)}{x + -1}, -\ell \cdot \ell\right)}}} \]
      Proof
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (fma.f64 2 (*.f64 t t) (*.f64 l l)) (+.f64 x -1)) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 2 (*.f64 t t)) (*.f64 l l))) (+.f64 x -1)) (neg.f64 (*.f64 l l)))))): 16 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t)))) (+.f64 x -1)) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 1 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (+.f64 x (Rewrite<= metadata-eval (neg.f64 1)))) (neg.f64 (*.f64 l l)))))): 1 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (Rewrite<= sub-neg_binary64 (-.f64 x 1))) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (Rewrite<= *-lft-identity_binary64 (*.f64 1 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))))) (-.f64 x 1)) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 16 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (Rewrite<= associate-*r/_binary64 (*.f64 1 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)))) (neg.f64 (*.f64 l l)))))): 16 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (+.f64 x 1) (*.f64 1 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)))) (*.f64 l l)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite=> *-commutative_binary64 (*.f64 (*.f64 1 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1))) (+.f64 x 1))) (*.f64 l l))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite<= associate-*r*_binary64 (*.f64 1 (*.f64 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)) (+.f64 x 1)))) (*.f64 l l))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (*.f64 1 (Rewrite=> *-commutative_binary64 (*.f64 (+.f64 x 1) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1))))) (*.f64 l l))))): 0 points increase in error, 16 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite=> associate-*r*_binary64 (*.f64 (*.f64 1 (+.f64 x 1)) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)))) (*.f64 l l))))): 16 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (*.f64 (Rewrite=> *-lft-identity_binary64 (+.f64 x 1)) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1))) (*.f64 l l))))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (+.f64 x 1) (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t)))) (-.f64 x 1))) (*.f64 l l))))): 0 points increase in error, 16 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 (+.f64 x 1) (-.f64 x 1)) (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))))) (*.f64 l l))))): 0 points increase in error, 0 points decrease in error
      (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (sqrt.f64 2) t) (sqrt.f64 (-.f64 (*.f64 (/.f64 (+.f64 x 1) (-.f64 x 1)) (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t)))) (*.f64 l l))))): 16 points increase in error, 0 points decrease in error
    3. Taylor expanded in x around -inf 10.7

      \[\leadsto \sqrt{2} \cdot \frac{t}{\sqrt{\color{blue}{2 \cdot \frac{{\ell}^{2} + 2 \cdot {t}^{2}}{x} + 2 \cdot {t}^{2}}}} \]
    4. Simplified10.7

      \[\leadsto \sqrt{2} \cdot \frac{t}{\sqrt{\color{blue}{2 \cdot \left(\frac{\mathsf{fma}\left(2, t \cdot t, \ell \cdot \ell\right)}{x} + t \cdot t\right)}}} \]
      Proof
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (fma.f64 2 (*.f64 t t) (*.f64 l l)) x) (*.f64 t t)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (fma.f64 2 (Rewrite<= unpow2_binary64 (pow.f64 t 2)) (*.f64 l l)) x) (*.f64 t t)))))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (Rewrite=> fma-udef_binary64 (+.f64 (*.f64 2 (pow.f64 t 2)) (*.f64 l l))) x) (*.f64 t t)))))): 0 points increase in error, 7 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (+.f64 (*.f64 2 (pow.f64 t 2)) (Rewrite<= unpow2_binary64 (pow.f64 l 2))) x) (*.f64 t t)))))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (pow.f64 l 2) (*.f64 2 (pow.f64 t 2)))) x) (*.f64 t t)))))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (+.f64 (pow.f64 l 2) (*.f64 2 (pow.f64 t 2))) x) (Rewrite<= unpow2_binary64 (pow.f64 t 2))))))): 0 points increase in error, 7 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (Rewrite<= distribute-lft-out_binary64 (+.f64 (*.f64 2 (/.f64 (+.f64 (pow.f64 l 2) (*.f64 2 (pow.f64 t 2))) x)) (*.f64 2 (pow.f64 t 2))))))): 7 points increase in error, 0 points decrease in error
    5. Taylor expanded in t around 0 11.2

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

      \[\leadsto \sqrt{2} \cdot \frac{t}{\sqrt{2 \cdot \left(\color{blue}{\frac{\ell}{\frac{x}{\ell}}} + t \cdot t\right)}} \]
      Proof
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 l (/.f64 x l)) (*.f64 t t)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 l l) x)) (*.f64 t t)))))): 3 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (*.f64 2 (+.f64 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 l 2)) x) (*.f64 t t)))))): 0 points increase in error, 3 points decrease in error
    7. Applied egg-rr7.8

      \[\leadsto \color{blue}{\sqrt{2 \cdot \frac{t \cdot t}{2 \cdot \mathsf{fma}\left(\ell, \frac{\ell}{x}, t \cdot t\right)}}} \]
    8. Simplified7.8

      \[\leadsto \color{blue}{\sqrt{2 \cdot \frac{\frac{t \cdot t}{2}}{\mathsf{fma}\left(t, t, \ell \cdot \frac{\ell}{x}\right)}}} \]
      Proof
      (/.f64 (/.f64 t 1) (hypot.f64 t (sqrt.f64 (*.f64 l (/.f64 l x))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 t (Rewrite<= *-inverses_binary64 (/.f64 (sqrt.f64 2) (sqrt.f64 2)))) (hypot.f64 t (sqrt.f64 (*.f64 l (/.f64 l x))))): 0 points increase in error, 3 points decrease in error
      (/.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 t (sqrt.f64 2)) (sqrt.f64 2))) (hypot.f64 t (sqrt.f64 (*.f64 l (/.f64 l x))))): 0 points increase in error, 3 points decrease in error

    if 9.99999999999999955e126 < t

    1. Initial program 55.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. Simplified55.7

      \[\leadsto \color{blue}{\sqrt{2} \cdot \frac{t}{\sqrt{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \mathsf{fma}\left(2, t \cdot t, \ell \cdot \ell\right), \ell \cdot \left(-\ell\right)\right)}}} \]
      Proof
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (fma.f64 2 (*.f64 t t) (*.f64 l l)) (+.f64 x -1)) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 2 (*.f64 t t)) (*.f64 l l))) (+.f64 x -1)) (neg.f64 (*.f64 l l)))))): 16 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t)))) (+.f64 x -1)) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 1 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (+.f64 x (Rewrite<= metadata-eval (neg.f64 1)))) (neg.f64 (*.f64 l l)))))): 1 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (Rewrite<= sub-neg_binary64 (-.f64 x 1))) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (/.f64 (Rewrite<= *-lft-identity_binary64 (*.f64 1 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))))) (-.f64 x 1)) (neg.f64 (*.f64 l l)))))): 0 points increase in error, 16 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (fma.f64 (+.f64 x 1) (Rewrite<= associate-*r/_binary64 (*.f64 1 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)))) (neg.f64 (*.f64 l l)))))): 16 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (+.f64 x 1) (*.f64 1 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)))) (*.f64 l l)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite=> *-commutative_binary64 (*.f64 (*.f64 1 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1))) (+.f64 x 1))) (*.f64 l l))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite<= associate-*r*_binary64 (*.f64 1 (*.f64 (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)) (+.f64 x 1)))) (*.f64 l l))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (*.f64 1 (Rewrite=> *-commutative_binary64 (*.f64 (+.f64 x 1) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1))))) (*.f64 l l))))): 0 points increase in error, 16 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite=> associate-*r*_binary64 (*.f64 (*.f64 1 (+.f64 x 1)) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1)))) (*.f64 l l))))): 16 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (*.f64 (Rewrite=> *-lft-identity_binary64 (+.f64 x 1)) (/.f64 (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))) (-.f64 x 1))) (*.f64 l l))))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (+.f64 x 1) (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t)))) (-.f64 x 1))) (*.f64 l l))))): 0 points increase in error, 16 points decrease in error
      (*.f64 (sqrt.f64 2) (/.f64 t (sqrt.f64 (-.f64 (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 (+.f64 x 1) (-.f64 x 1)) (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t))))) (*.f64 l l))))): 0 points increase in error, 0 points decrease in error
      (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (sqrt.f64 2) t) (sqrt.f64 (-.f64 (*.f64 (/.f64 (+.f64 x 1) (-.f64 x 1)) (+.f64 (*.f64 l l) (*.f64 2 (*.f64 t t)))) (*.f64 l l))))): 16 points increase in error, 0 points decrease in error
    3. Taylor expanded in t around inf 2.8

      \[\leadsto \color{blue}{\left(\sqrt{2} \cdot \sqrt{0.5}\right) \cdot \sqrt{\frac{x - 1}{1 + x}}} \]
    4. Simplified2.8

      \[\leadsto \color{blue}{\sqrt{2} \cdot \left(\sqrt{\frac{-1 + x}{x + 1}} \cdot \sqrt{0.5}\right)} \]
      Proof
      (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 (+.f64 -1 x) (+.f64 x 1))) (sqrt.f64 1/2))): 0 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 x -1)) (+.f64 x 1))) (sqrt.f64 1/2))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 (+.f64 x (Rewrite<= metadata-eval (neg.f64 1))) (+.f64 x 1))) (sqrt.f64 1/2))): 0 points increase in error, 7 points decrease in error
      (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 (Rewrite<= sub-neg_binary64 (-.f64 x 1)) (+.f64 x 1))) (sqrt.f64 1/2))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (/.f64 (-.f64 x 1) (Rewrite<= +-commutative_binary64 (+.f64 1 x)))) (sqrt.f64 1/2))): 7 points increase in error, 0 points decrease in error
      (*.f64 (sqrt.f64 2) (Rewrite<= *-commutative_binary64 (*.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 (-.f64 x 1) (+.f64 1 x)))))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (sqrt.f64 2) (sqrt.f64 1/2)) (sqrt.f64 (/.f64 (-.f64 x 1) (+.f64 1 x))))): 0 points increase in error, 7 points decrease in error
    5. Applied egg-rr1.9

      \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\sqrt{2 \cdot \frac{1 - x}{\frac{-1 - x}{0.5}}}\right)} - 1} \]
    6. Simplified1.8

      \[\leadsto \color{blue}{\sqrt{\frac{1 - x}{-1 - x}}} \]
      Proof
      (sqrt.f64 (/.f64 (-.f64 1 x) (-.f64 -1 x))): 0 points increase in error, 0 points decrease in error
      (sqrt.f64 (/.f64 (Rewrite<= *-rgt-identity_binary64 (*.f64 (-.f64 1 x) 1)) (-.f64 -1 x))): 9 points increase in error, 0 points decrease in error
      (sqrt.f64 (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 (-.f64 1 x) (-.f64 -1 x)) 1))): 0 points increase in error, 9 points decrease in error
      (sqrt.f64 (*.f64 (/.f64 (-.f64 1 x) (-.f64 -1 x)) (Rewrite<= metadata-eval (*.f64 1/2 2)))): 9 points increase in error, 0 points decrease in error
      (sqrt.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 (-.f64 1 x) (-.f64 -1 x)) 1/2) 2))): 9 points increase in error, 0 points decrease in error
      (sqrt.f64 (*.f64 (Rewrite<= associate-/r/_binary64 (/.f64 (-.f64 1 x) (/.f64 (-.f64 -1 x) 1/2))) 2)): 0 points increase in error, 0 points decrease in error
      (sqrt.f64 (Rewrite<= *-commutative_binary64 (*.f64 2 (/.f64 (-.f64 1 x) (/.f64 (-.f64 -1 x) 1/2))))): 0 points increase in error, 9 points decrease in error
      (Rewrite<= expm1-log1p_binary64 (expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 2 (/.f64 (-.f64 1 x) (/.f64 (-.f64 -1 x) 1/2))))))): 0 points increase in error, 9 points decrease in error
      (Rewrite<= expm1-def_binary64 (-.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 2 (/.f64 (-.f64 1 x) (/.f64 (-.f64 -1 x) 1/2)))))) 1)): 0 points increase in error, 9 points decrease in error
  3. Recombined 4 regimes into one program.
  4. Final simplification6.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -26:\\ \;\;\;\;\frac{t \cdot \sqrt{2}}{\sqrt{\frac{x + 1}{x + -1}} \cdot \left(t \cdot \left(-\sqrt{2}\right)\right)}\\ \mathbf{elif}\;t \leq 1.02 \cdot 10^{-150}:\\ \;\;\;\;\frac{t}{\mathsf{hypot}\left(t, \sqrt{\ell \cdot \frac{\ell}{x}}\right)}\\ \mathbf{elif}\;t \leq 10^{+127}:\\ \;\;\;\;\sqrt{2 \cdot \frac{\frac{t \cdot t}{2}}{\mathsf{fma}\left(t, t, \ell \cdot \frac{\ell}{x}\right)}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1 - x}{-1 - x}}\\ \end{array} \]

Alternatives

Alternative 1
Error6.3
Cost20356
\[\begin{array}{l} t_1 := \ell \cdot \frac{\ell}{x}\\ \mathbf{if}\;t \leq -85:\\ \;\;\;\;t \cdot \frac{\sqrt{2}}{\sqrt{\frac{x + 1}{x + -1}} \cdot \left(t \cdot \left(-\sqrt{2}\right)\right)}\\ \mathbf{elif}\;t \leq 1.02 \cdot 10^{-150}:\\ \;\;\;\;\frac{t}{\mathsf{hypot}\left(t, \sqrt{t_1}\right)}\\ \mathbf{elif}\;t \leq 4 \cdot 10^{+127}:\\ \;\;\;\;\sqrt{2 \cdot \frac{\frac{t \cdot t}{2}}{\mathsf{fma}\left(t, t, t_1\right)}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1 - x}{-1 - x}}\\ \end{array} \]
Alternative 2
Error6.3
Cost14156
\[\begin{array}{l} t_1 := \ell \cdot \frac{\ell}{x}\\ \mathbf{if}\;t \leq -190:\\ \;\;\;\;-1 + \frac{1}{x}\\ \mathbf{elif}\;t \leq 9.4 \cdot 10^{-151}:\\ \;\;\;\;\frac{t}{\mathsf{hypot}\left(t, \sqrt{t_1}\right)}\\ \mathbf{elif}\;t \leq 9.6 \cdot 10^{+126}:\\ \;\;\;\;\sqrt{2 \cdot \frac{\frac{t \cdot t}{2}}{\mathsf{fma}\left(t, t, t_1\right)}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1 - x}{-1 - x}}\\ \end{array} \]
Alternative 3
Error6.8
Cost13576
\[\begin{array}{l} \mathbf{if}\;t \leq -1:\\ \;\;\;\;-1 + \frac{1}{x}\\ \mathbf{elif}\;t \leq 1.16 \cdot 10^{-41}:\\ \;\;\;\;\frac{t}{\mathsf{hypot}\left(t, \sqrt{\ell \cdot \frac{\ell}{x}}\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1 - x}{-1 - x}}\\ \end{array} \]
Alternative 4
Error14.9
Cost7112
\[\begin{array}{l} \mathbf{if}\;t \leq -1.5 \cdot 10^{-216}:\\ \;\;\;\;-1 + \frac{1}{x}\\ \mathbf{elif}\;t \leq 9 \cdot 10^{-260}:\\ \;\;\;\;\sqrt{x} \cdot \frac{-t}{\ell}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1 - x}{-1 - x}}\\ \end{array} \]
Alternative 5
Error15.1
Cost7048
\[\begin{array}{l} \mathbf{if}\;t \leq -3.8 \cdot 10^{-214}:\\ \;\;\;\;-1 + \frac{1}{x}\\ \mathbf{elif}\;t \leq 1.08 \cdot 10^{-260}:\\ \;\;\;\;\sqrt{x} \cdot \frac{-t}{\ell}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{0.5}{x}}{x} + \left(1 - \frac{1}{x}\right)\\ \end{array} \]
Alternative 6
Error14.9
Cost6984
\[\begin{array}{l} \mathbf{if}\;t \leq -1.5 \cdot 10^{-260}:\\ \;\;\;\;-1 + \frac{1}{x}\\ \mathbf{elif}\;t \leq 8 \cdot 10^{-304}:\\ \;\;\;\;t \cdot \frac{\sqrt{x}}{\ell}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{0.5}{x}}{x} + \left(1 - \frac{1}{x}\right)\\ \end{array} \]
Alternative 7
Error15.2
Cost836
\[\begin{array}{l} \mathbf{if}\;t \leq -1 \cdot 10^{-309}:\\ \;\;\;\;-1 + \frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{0.5}{x}}{x} + \left(1 - \frac{1}{x}\right)\\ \end{array} \]
Alternative 8
Error15.5
Cost452
\[\begin{array}{l} \mathbf{if}\;t \leq -1 \cdot 10^{-309}:\\ \;\;\;\;-1 + \frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
Alternative 9
Error15.3
Cost452
\[\begin{array}{l} \mathbf{if}\;t \leq -1 \cdot 10^{-309}:\\ \;\;\;\;-1 + \frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;1 - \frac{1}{x}\\ \end{array} \]
Alternative 10
Error15.7
Cost196
\[\begin{array}{l} \mathbf{if}\;t \leq -1 \cdot 10^{-309}:\\ \;\;\;\;-1\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
Alternative 11
Error39.2
Cost64
\[-1 \]

Error

Reproduce

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