xlohi (overflows)

Percentage Accurate: 3.1% → 42.6%
Time: 14.8s
Alternatives: 7
Speedup: 7.0×

Specification

?
\[lo < -1 \cdot 10^{+308} \land hi > 10^{+308}\]
\[\begin{array}{l} \\ \frac{x - lo}{hi - lo} \end{array} \]
(FPCore (lo hi x) :precision binary64 (/ (- x lo) (- hi lo)))
double code(double lo, double hi, double x) {
	return (x - lo) / (hi - lo);
}
real(8) function code(lo, hi, x)
    real(8), intent (in) :: lo
    real(8), intent (in) :: hi
    real(8), intent (in) :: x
    code = (x - lo) / (hi - lo)
end function
public static double code(double lo, double hi, double x) {
	return (x - lo) / (hi - lo);
}
def code(lo, hi, x):
	return (x - lo) / (hi - lo)
function code(lo, hi, x)
	return Float64(Float64(x - lo) / Float64(hi - lo))
end
function tmp = code(lo, hi, x)
	tmp = (x - lo) / (hi - lo);
end
code[lo_, hi_, x_] := N[(N[(x - lo), $MachinePrecision] / N[(hi - lo), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{x - lo}{hi - lo}
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 7 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 3.1% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{x - lo}{hi - lo} \end{array} \]
(FPCore (lo hi x) :precision binary64 (/ (- x lo) (- hi lo)))
double code(double lo, double hi, double x) {
	return (x - lo) / (hi - lo);
}
real(8) function code(lo, hi, x)
    real(8), intent (in) :: lo
    real(8), intent (in) :: hi
    real(8), intent (in) :: x
    code = (x - lo) / (hi - lo)
end function
public static double code(double lo, double hi, double x) {
	return (x - lo) / (hi - lo);
}
def code(lo, hi, x):
	return (x - lo) / (hi - lo)
function code(lo, hi, x)
	return Float64(Float64(x - lo) / Float64(hi - lo))
end
function tmp = code(lo, hi, x)
	tmp = (x - lo) / (hi - lo);
end
code[lo_, hi_, x_] := N[(N[(x - lo), $MachinePrecision] / N[(hi - lo), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{x - lo}{hi - lo}
\end{array}

Alternative 1: 42.6% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{lo \cdot lo}{hi}\\ t_1 := \frac{hi - x}{t_0}\\ t_2 := \frac{hi + x}{lo}\\ 1 + \frac{\mathsf{fma}\left(t_2, t_2 + \frac{x - hi}{t_0}, {t_1}^{2}\right) \cdot \left(t_2 + t_1\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({t_2}^{2} + \frac{hi}{lo} \cdot \left(t_2 \cdot \frac{x - hi}{lo}\right)\right)} \end{array} \end{array} \]
(FPCore (lo hi x)
 :precision binary64
 (let* ((t_0 (/ (* lo lo) hi)) (t_1 (/ (- hi x) t_0)) (t_2 (/ (+ hi x) lo)))
   (+
    1.0
    (/
     (* (fma t_2 (+ t_2 (/ (- x hi) t_0)) (pow t_1 2.0)) (+ t_2 t_1))
     (+
      (pow (/ (- hi x) (* lo (/ lo hi))) 2.0)
      (+ (pow t_2 2.0) (* (/ hi lo) (* t_2 (/ (- x hi) lo)))))))))
double code(double lo, double hi, double x) {
	double t_0 = (lo * lo) / hi;
	double t_1 = (hi - x) / t_0;
	double t_2 = (hi + x) / lo;
	return 1.0 + ((fma(t_2, (t_2 + ((x - hi) / t_0)), pow(t_1, 2.0)) * (t_2 + t_1)) / (pow(((hi - x) / (lo * (lo / hi))), 2.0) + (pow(t_2, 2.0) + ((hi / lo) * (t_2 * ((x - hi) / lo))))));
}
function code(lo, hi, x)
	t_0 = Float64(Float64(lo * lo) / hi)
	t_1 = Float64(Float64(hi - x) / t_0)
	t_2 = Float64(Float64(hi + x) / lo)
	return Float64(1.0 + Float64(Float64(fma(t_2, Float64(t_2 + Float64(Float64(x - hi) / t_0)), (t_1 ^ 2.0)) * Float64(t_2 + t_1)) / Float64((Float64(Float64(hi - x) / Float64(lo * Float64(lo / hi))) ^ 2.0) + Float64((t_2 ^ 2.0) + Float64(Float64(hi / lo) * Float64(t_2 * Float64(Float64(x - hi) / lo)))))))
end
code[lo_, hi_, x_] := Block[{t$95$0 = N[(N[(lo * lo), $MachinePrecision] / hi), $MachinePrecision]}, Block[{t$95$1 = N[(N[(hi - x), $MachinePrecision] / t$95$0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(hi + x), $MachinePrecision] / lo), $MachinePrecision]}, N[(1.0 + N[(N[(N[(t$95$2 * N[(t$95$2 + N[(N[(x - hi), $MachinePrecision] / t$95$0), $MachinePrecision]), $MachinePrecision] + N[Power[t$95$1, 2.0], $MachinePrecision]), $MachinePrecision] * N[(t$95$2 + t$95$1), $MachinePrecision]), $MachinePrecision] / N[(N[Power[N[(N[(hi - x), $MachinePrecision] / N[(lo * N[(lo / hi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[(N[Power[t$95$2, 2.0], $MachinePrecision] + N[(N[(hi / lo), $MachinePrecision] * N[(t$95$2 * N[(N[(x - hi), $MachinePrecision] / lo), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{lo \cdot lo}{hi}\\
t_1 := \frac{hi - x}{t_0}\\
t_2 := \frac{hi + x}{lo}\\
1 + \frac{\mathsf{fma}\left(t_2, t_2 + \frac{x - hi}{t_0}, {t_1}^{2}\right) \cdot \left(t_2 + t_1\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({t_2}^{2} + \frac{hi}{lo} \cdot \left(t_2 \cdot \frac{x - hi}{lo}\right)\right)}
\end{array}
\end{array}
Derivation
  1. Initial program 3.1%

    \[\frac{x - lo}{hi - lo} \]
  2. Taylor expanded in lo around inf 0.0%

    \[\leadsto \color{blue}{\left(1 + \left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right)\right) - -1 \cdot \frac{hi}{lo}} \]
  3. Step-by-step derivation
    1. associate--l+0.0%

      \[\leadsto \color{blue}{1 + \left(\left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right) - -1 \cdot \frac{hi}{lo}\right)} \]
    2. +-commutative0.0%

      \[\leadsto 1 + \left(\color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \frac{x}{lo}\right)} - -1 \cdot \frac{hi}{lo}\right) \]
    3. associate--l+0.0%

      \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \left(-1 \cdot \frac{x}{lo} - -1 \cdot \frac{hi}{lo}\right)\right)} \]
    4. distribute-lft-out--0.0%

      \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{-1 \cdot \left(\frac{x}{lo} - \frac{hi}{lo}\right)}\right) \]
    5. div-sub0.0%

      \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \color{blue}{\frac{x - hi}{lo}}\right) \]
    6. mul-1-neg0.0%

      \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{\left(-\frac{x - hi}{lo}\right)}\right) \]
    7. sub-neg0.0%

      \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} - \frac{x - hi}{lo}\right)} \]
    8. unpow20.0%

      \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{\color{blue}{lo \cdot lo}} - \frac{x - hi}{lo}\right) \]
    9. times-frac18.9%

      \[\leadsto 1 + \left(\color{blue}{\frac{hi}{lo} \cdot \frac{-1 \cdot x - -1 \cdot hi}{lo}} - \frac{x - hi}{lo}\right) \]
    10. distribute-lft-out--18.9%

      \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{\color{blue}{-1 \cdot \left(x - hi\right)}}{lo} - \frac{x - hi}{lo}\right) \]
    11. associate-*r/18.9%

      \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \color{blue}{\left(-1 \cdot \frac{x - hi}{lo}\right)} - \frac{x - hi}{lo}\right) \]
    12. fma-neg18.9%

      \[\leadsto 1 + \color{blue}{\mathsf{fma}\left(\frac{hi}{lo}, -1 \cdot \frac{x - hi}{lo}, -\frac{x - hi}{lo}\right)} \]
  4. Simplified18.9%

    \[\leadsto \color{blue}{1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \frac{hi - x}{lo}\right)} \]
  5. Step-by-step derivation
    1. clear-num18.9%

      \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \color{blue}{\frac{1}{\frac{lo}{hi - x}}}\right) \]
    2. inv-pow18.9%

      \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \color{blue}{{\left(\frac{lo}{hi - x}\right)}^{-1}}\right) \]
    3. sub-neg18.9%

      \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{\color{blue}{hi + \left(-x\right)}}\right)}^{-1}\right) \]
    4. add-sqr-sqrt9.5%

      \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{\sqrt{-x} \cdot \sqrt{-x}}}\right)}^{-1}\right) \]
    5. sqrt-unprod13.4%

      \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{\sqrt{\left(-x\right) \cdot \left(-x\right)}}}\right)}^{-1}\right) \]
    6. sqr-neg13.4%

      \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \sqrt{\color{blue}{x \cdot x}}}\right)}^{-1}\right) \]
    7. sqrt-unprod9.3%

      \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{\sqrt{x} \cdot \sqrt{x}}}\right)}^{-1}\right) \]
    8. add-sqr-sqrt18.9%

      \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{x}}\right)}^{-1}\right) \]
  6. Applied egg-rr18.9%

    \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \color{blue}{{\left(\frac{lo}{hi + x}\right)}^{-1}}\right) \]
  7. Step-by-step derivation
    1. fma-udef18.9%

      \[\leadsto 1 + \color{blue}{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + {\left(\frac{lo}{hi + x}\right)}^{-1}\right)} \]
    2. unpow-118.9%

      \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + \color{blue}{\frac{1}{\frac{lo}{hi + x}}}\right) \]
    3. clear-num18.9%

      \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + \color{blue}{\frac{hi + x}{lo}}\right) \]
    4. flip3-+18.9%

      \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)}} \]
    5. pow218.9%

      \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{\color{blue}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}} + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    6. clear-num18.9%

      \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left(\color{blue}{\frac{1}{\frac{lo}{hi + x}}} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    7. unpow-118.9%

      \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left(\color{blue}{{\left(\frac{lo}{hi + x}\right)}^{-1}} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    8. clear-num18.9%

      \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-1} \cdot \color{blue}{\frac{1}{\frac{lo}{hi + x}}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    9. unpow-118.9%

      \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-1} \cdot \color{blue}{{\left(\frac{lo}{hi + x}\right)}^{-1}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    10. pow-prod-up18.9%

      \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left(\color{blue}{{\left(\frac{lo}{hi + x}\right)}^{\left(-1 + -1\right)}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    11. metadata-eval18.9%

      \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{\color{blue}{-2}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
  8. Applied egg-rr18.9%

    \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)}} \]
  9. Step-by-step derivation
    1. times-frac0.0%

      \[\leadsto 1 + \frac{{\color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{lo \cdot lo}\right)}}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    2. *-commutative0.0%

      \[\leadsto 1 + \frac{{\left(\frac{\color{blue}{\left(hi - x\right) \cdot hi}}{lo \cdot lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    3. associate-/l*21.1%

      \[\leadsto 1 + \frac{{\color{blue}{\left(\frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    4. associate-*r/19.4%

      \[\leadsto 1 + \frac{{\left(\frac{hi - x}{\color{blue}{lo \cdot \frac{lo}{hi}}}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    5. +-commutative19.4%

      \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{\color{blue}{x + hi}}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    6. times-frac0.0%

      \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{lo \cdot lo}\right)}}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    7. *-commutative0.0%

      \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\left(\frac{\color{blue}{\left(hi - x\right) \cdot hi}}{lo \cdot lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    8. associate-/l*39.3%

      \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\color{blue}{\left(\frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    9. associate-*r/39.4%

      \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\left(\frac{hi - x}{\color{blue}{lo \cdot \frac{lo}{hi}}}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
  10. Simplified39.4%

    \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)}} \]
  11. Step-by-step derivation
    1. sum-cubes39.4%

      \[\leadsto 1 + \frac{\color{blue}{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{x + hi}{lo} \cdot \frac{x + hi}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{x + hi}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{x + hi}{lo}\right)}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
    2. +-commutative39.4%

      \[\leadsto 1 + \frac{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{\color{blue}{hi + x}}{lo} \cdot \frac{x + hi}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{x + hi}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{x + hi}{lo}\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
    3. +-commutative39.4%

      \[\leadsto 1 + \frac{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{hi + x}{lo} \cdot \frac{\color{blue}{hi + x}}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{x + hi}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{x + hi}{lo}\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
    4. +-commutative39.4%

      \[\leadsto 1 + \frac{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{\color{blue}{hi + x}}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{x + hi}{lo}\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
    5. +-commutative39.4%

      \[\leadsto 1 + \frac{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi + x}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{\color{blue}{hi + x}}{lo}\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
  12. Applied egg-rr39.4%

    \[\leadsto 1 + \frac{\color{blue}{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi + x}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{hi + x}{lo}\right)}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
  13. Step-by-step derivation
    1. Simplified41.1%

      \[\leadsto 1 + \frac{\color{blue}{\mathsf{fma}\left(\frac{hi + x}{lo}, \frac{hi + x}{lo} - \frac{hi - x}{\frac{lo \cdot lo}{hi}}, {\left(\frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}^{2}\right) \cdot \left(\frac{hi + x}{lo} + \frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
    2. Final simplification41.1%

      \[\leadsto 1 + \frac{\mathsf{fma}\left(\frac{hi + x}{lo}, \frac{hi + x}{lo} + \frac{x - hi}{\frac{lo \cdot lo}{hi}}, {\left(\frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}^{2}\right) \cdot \left(\frac{hi + x}{lo} + \frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{hi + x}{lo}\right)}^{2} + \frac{hi}{lo} \cdot \left(\frac{hi + x}{lo} \cdot \frac{x - hi}{lo}\right)\right)} \]

    Alternative 2: 42.6% accurate, 0.0× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{hi + x}{lo}\\ 1 + \frac{{t_0}^{3}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({t_0}^{2} + \frac{hi}{lo} \cdot \left(t_0 \cdot \frac{x - hi}{lo}\right)\right)} \end{array} \end{array} \]
    (FPCore (lo hi x)
     :precision binary64
     (let* ((t_0 (/ (+ hi x) lo)))
       (+
        1.0
        (/
         (pow t_0 3.0)
         (+
          (pow (/ (- hi x) (* lo (/ lo hi))) 2.0)
          (+ (pow t_0 2.0) (* (/ hi lo) (* t_0 (/ (- x hi) lo)))))))))
    double code(double lo, double hi, double x) {
    	double t_0 = (hi + x) / lo;
    	return 1.0 + (pow(t_0, 3.0) / (pow(((hi - x) / (lo * (lo / hi))), 2.0) + (pow(t_0, 2.0) + ((hi / lo) * (t_0 * ((x - hi) / lo))))));
    }
    
    real(8) function code(lo, hi, x)
        real(8), intent (in) :: lo
        real(8), intent (in) :: hi
        real(8), intent (in) :: x
        real(8) :: t_0
        t_0 = (hi + x) / lo
        code = 1.0d0 + ((t_0 ** 3.0d0) / ((((hi - x) / (lo * (lo / hi))) ** 2.0d0) + ((t_0 ** 2.0d0) + ((hi / lo) * (t_0 * ((x - hi) / lo))))))
    end function
    
    public static double code(double lo, double hi, double x) {
    	double t_0 = (hi + x) / lo;
    	return 1.0 + (Math.pow(t_0, 3.0) / (Math.pow(((hi - x) / (lo * (lo / hi))), 2.0) + (Math.pow(t_0, 2.0) + ((hi / lo) * (t_0 * ((x - hi) / lo))))));
    }
    
    def code(lo, hi, x):
    	t_0 = (hi + x) / lo
    	return 1.0 + (math.pow(t_0, 3.0) / (math.pow(((hi - x) / (lo * (lo / hi))), 2.0) + (math.pow(t_0, 2.0) + ((hi / lo) * (t_0 * ((x - hi) / lo))))))
    
    function code(lo, hi, x)
    	t_0 = Float64(Float64(hi + x) / lo)
    	return Float64(1.0 + Float64((t_0 ^ 3.0) / Float64((Float64(Float64(hi - x) / Float64(lo * Float64(lo / hi))) ^ 2.0) + Float64((t_0 ^ 2.0) + Float64(Float64(hi / lo) * Float64(t_0 * Float64(Float64(x - hi) / lo)))))))
    end
    
    function tmp = code(lo, hi, x)
    	t_0 = (hi + x) / lo;
    	tmp = 1.0 + ((t_0 ^ 3.0) / ((((hi - x) / (lo * (lo / hi))) ^ 2.0) + ((t_0 ^ 2.0) + ((hi / lo) * (t_0 * ((x - hi) / lo))))));
    end
    
    code[lo_, hi_, x_] := Block[{t$95$0 = N[(N[(hi + x), $MachinePrecision] / lo), $MachinePrecision]}, N[(1.0 + N[(N[Power[t$95$0, 3.0], $MachinePrecision] / N[(N[Power[N[(N[(hi - x), $MachinePrecision] / N[(lo * N[(lo / hi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[(N[Power[t$95$0, 2.0], $MachinePrecision] + N[(N[(hi / lo), $MachinePrecision] * N[(t$95$0 * N[(N[(x - hi), $MachinePrecision] / lo), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_0 := \frac{hi + x}{lo}\\
    1 + \frac{{t_0}^{3}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({t_0}^{2} + \frac{hi}{lo} \cdot \left(t_0 \cdot \frac{x - hi}{lo}\right)\right)}
    \end{array}
    \end{array}
    
    Derivation
    1. Initial program 3.1%

      \[\frac{x - lo}{hi - lo} \]
    2. Taylor expanded in lo around inf 0.0%

      \[\leadsto \color{blue}{\left(1 + \left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right)\right) - -1 \cdot \frac{hi}{lo}} \]
    3. Step-by-step derivation
      1. associate--l+0.0%

        \[\leadsto \color{blue}{1 + \left(\left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right) - -1 \cdot \frac{hi}{lo}\right)} \]
      2. +-commutative0.0%

        \[\leadsto 1 + \left(\color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \frac{x}{lo}\right)} - -1 \cdot \frac{hi}{lo}\right) \]
      3. associate--l+0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \left(-1 \cdot \frac{x}{lo} - -1 \cdot \frac{hi}{lo}\right)\right)} \]
      4. distribute-lft-out--0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{-1 \cdot \left(\frac{x}{lo} - \frac{hi}{lo}\right)}\right) \]
      5. div-sub0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \color{blue}{\frac{x - hi}{lo}}\right) \]
      6. mul-1-neg0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{\left(-\frac{x - hi}{lo}\right)}\right) \]
      7. sub-neg0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} - \frac{x - hi}{lo}\right)} \]
      8. unpow20.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{\color{blue}{lo \cdot lo}} - \frac{x - hi}{lo}\right) \]
      9. times-frac18.9%

        \[\leadsto 1 + \left(\color{blue}{\frac{hi}{lo} \cdot \frac{-1 \cdot x - -1 \cdot hi}{lo}} - \frac{x - hi}{lo}\right) \]
      10. distribute-lft-out--18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{\color{blue}{-1 \cdot \left(x - hi\right)}}{lo} - \frac{x - hi}{lo}\right) \]
      11. associate-*r/18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \color{blue}{\left(-1 \cdot \frac{x - hi}{lo}\right)} - \frac{x - hi}{lo}\right) \]
      12. fma-neg18.9%

        \[\leadsto 1 + \color{blue}{\mathsf{fma}\left(\frac{hi}{lo}, -1 \cdot \frac{x - hi}{lo}, -\frac{x - hi}{lo}\right)} \]
    4. Simplified18.9%

      \[\leadsto \color{blue}{1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \frac{hi - x}{lo}\right)} \]
    5. Step-by-step derivation
      1. clear-num18.9%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \color{blue}{\frac{1}{\frac{lo}{hi - x}}}\right) \]
      2. inv-pow18.9%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \color{blue}{{\left(\frac{lo}{hi - x}\right)}^{-1}}\right) \]
      3. sub-neg18.9%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{\color{blue}{hi + \left(-x\right)}}\right)}^{-1}\right) \]
      4. add-sqr-sqrt9.5%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{\sqrt{-x} \cdot \sqrt{-x}}}\right)}^{-1}\right) \]
      5. sqrt-unprod13.4%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{\sqrt{\left(-x\right) \cdot \left(-x\right)}}}\right)}^{-1}\right) \]
      6. sqr-neg13.4%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \sqrt{\color{blue}{x \cdot x}}}\right)}^{-1}\right) \]
      7. sqrt-unprod9.3%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{\sqrt{x} \cdot \sqrt{x}}}\right)}^{-1}\right) \]
      8. add-sqr-sqrt18.9%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{x}}\right)}^{-1}\right) \]
    6. Applied egg-rr18.9%

      \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \color{blue}{{\left(\frac{lo}{hi + x}\right)}^{-1}}\right) \]
    7. Step-by-step derivation
      1. fma-udef18.9%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + {\left(\frac{lo}{hi + x}\right)}^{-1}\right)} \]
      2. unpow-118.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + \color{blue}{\frac{1}{\frac{lo}{hi + x}}}\right) \]
      3. clear-num18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + \color{blue}{\frac{hi + x}{lo}}\right) \]
      4. flip3-+18.9%

        \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)}} \]
      5. pow218.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{\color{blue}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}} + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      6. clear-num18.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left(\color{blue}{\frac{1}{\frac{lo}{hi + x}}} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      7. unpow-118.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left(\color{blue}{{\left(\frac{lo}{hi + x}\right)}^{-1}} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      8. clear-num18.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-1} \cdot \color{blue}{\frac{1}{\frac{lo}{hi + x}}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      9. unpow-118.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-1} \cdot \color{blue}{{\left(\frac{lo}{hi + x}\right)}^{-1}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      10. pow-prod-up18.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left(\color{blue}{{\left(\frac{lo}{hi + x}\right)}^{\left(-1 + -1\right)}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      11. metadata-eval18.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{\color{blue}{-2}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    8. Applied egg-rr18.9%

      \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)}} \]
    9. Step-by-step derivation
      1. times-frac0.0%

        \[\leadsto 1 + \frac{{\color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{lo \cdot lo}\right)}}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      2. *-commutative0.0%

        \[\leadsto 1 + \frac{{\left(\frac{\color{blue}{\left(hi - x\right) \cdot hi}}{lo \cdot lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      3. associate-/l*21.1%

        \[\leadsto 1 + \frac{{\color{blue}{\left(\frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      4. associate-*r/19.4%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{\color{blue}{lo \cdot \frac{lo}{hi}}}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      5. +-commutative19.4%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{\color{blue}{x + hi}}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      6. times-frac0.0%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{lo \cdot lo}\right)}}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      7. *-commutative0.0%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\left(\frac{\color{blue}{\left(hi - x\right) \cdot hi}}{lo \cdot lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      8. associate-/l*39.3%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\color{blue}{\left(\frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      9. associate-*r/39.4%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\left(\frac{hi - x}{\color{blue}{lo \cdot \frac{lo}{hi}}}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    10. Simplified39.4%

      \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)}} \]
    11. Taylor expanded in lo around inf 0.0%

      \[\leadsto 1 + \frac{\color{blue}{\frac{{\left(hi + x\right)}^{3}}{{lo}^{3}}}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
    12. Step-by-step derivation
      1. cube-div41.1%

        \[\leadsto 1 + \frac{\color{blue}{{\left(\frac{hi + x}{lo}\right)}^{3}}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
    13. Simplified41.1%

      \[\leadsto 1 + \frac{\color{blue}{{\left(\frac{hi + x}{lo}\right)}^{3}}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
    14. Final simplification41.1%

      \[\leadsto 1 + \frac{{\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{hi + x}{lo}\right)}^{2} + \frac{hi}{lo} \cdot \left(\frac{hi + x}{lo} \cdot \frac{x - hi}{lo}\right)\right)} \]

    Alternative 3: 41.0% accurate, 0.0× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{hi + x}{lo}\\ t_1 := lo \cdot \frac{lo}{hi}\\ t_2 := \frac{x - hi}{t_1}\\ 1 + \frac{\left(t_2 \cdot t_2 + \left(t_0 \cdot t_0 + t_0 \cdot t_2\right)\right) \cdot \left(t_0 - t_2\right)}{{\left(\frac{hi - x}{t_1}\right)}^{2} + \left({t_0}^{2} + \frac{hi}{lo} \cdot \left(t_0 \cdot \frac{x - hi}{lo}\right)\right)} \end{array} \end{array} \]
    (FPCore (lo hi x)
     :precision binary64
     (let* ((t_0 (/ (+ hi x) lo)) (t_1 (* lo (/ lo hi))) (t_2 (/ (- x hi) t_1)))
       (+
        1.0
        (/
         (* (+ (* t_2 t_2) (+ (* t_0 t_0) (* t_0 t_2))) (- t_0 t_2))
         (+
          (pow (/ (- hi x) t_1) 2.0)
          (+ (pow t_0 2.0) (* (/ hi lo) (* t_0 (/ (- x hi) lo)))))))))
    double code(double lo, double hi, double x) {
    	double t_0 = (hi + x) / lo;
    	double t_1 = lo * (lo / hi);
    	double t_2 = (x - hi) / t_1;
    	return 1.0 + ((((t_2 * t_2) + ((t_0 * t_0) + (t_0 * t_2))) * (t_0 - t_2)) / (pow(((hi - x) / t_1), 2.0) + (pow(t_0, 2.0) + ((hi / lo) * (t_0 * ((x - hi) / lo))))));
    }
    
    real(8) function code(lo, hi, x)
        real(8), intent (in) :: lo
        real(8), intent (in) :: hi
        real(8), intent (in) :: x
        real(8) :: t_0
        real(8) :: t_1
        real(8) :: t_2
        t_0 = (hi + x) / lo
        t_1 = lo * (lo / hi)
        t_2 = (x - hi) / t_1
        code = 1.0d0 + ((((t_2 * t_2) + ((t_0 * t_0) + (t_0 * t_2))) * (t_0 - t_2)) / ((((hi - x) / t_1) ** 2.0d0) + ((t_0 ** 2.0d0) + ((hi / lo) * (t_0 * ((x - hi) / lo))))))
    end function
    
    public static double code(double lo, double hi, double x) {
    	double t_0 = (hi + x) / lo;
    	double t_1 = lo * (lo / hi);
    	double t_2 = (x - hi) / t_1;
    	return 1.0 + ((((t_2 * t_2) + ((t_0 * t_0) + (t_0 * t_2))) * (t_0 - t_2)) / (Math.pow(((hi - x) / t_1), 2.0) + (Math.pow(t_0, 2.0) + ((hi / lo) * (t_0 * ((x - hi) / lo))))));
    }
    
    def code(lo, hi, x):
    	t_0 = (hi + x) / lo
    	t_1 = lo * (lo / hi)
    	t_2 = (x - hi) / t_1
    	return 1.0 + ((((t_2 * t_2) + ((t_0 * t_0) + (t_0 * t_2))) * (t_0 - t_2)) / (math.pow(((hi - x) / t_1), 2.0) + (math.pow(t_0, 2.0) + ((hi / lo) * (t_0 * ((x - hi) / lo))))))
    
    function code(lo, hi, x)
    	t_0 = Float64(Float64(hi + x) / lo)
    	t_1 = Float64(lo * Float64(lo / hi))
    	t_2 = Float64(Float64(x - hi) / t_1)
    	return Float64(1.0 + Float64(Float64(Float64(Float64(t_2 * t_2) + Float64(Float64(t_0 * t_0) + Float64(t_0 * t_2))) * Float64(t_0 - t_2)) / Float64((Float64(Float64(hi - x) / t_1) ^ 2.0) + Float64((t_0 ^ 2.0) + Float64(Float64(hi / lo) * Float64(t_0 * Float64(Float64(x - hi) / lo)))))))
    end
    
    function tmp = code(lo, hi, x)
    	t_0 = (hi + x) / lo;
    	t_1 = lo * (lo / hi);
    	t_2 = (x - hi) / t_1;
    	tmp = 1.0 + ((((t_2 * t_2) + ((t_0 * t_0) + (t_0 * t_2))) * (t_0 - t_2)) / ((((hi - x) / t_1) ^ 2.0) + ((t_0 ^ 2.0) + ((hi / lo) * (t_0 * ((x - hi) / lo))))));
    end
    
    code[lo_, hi_, x_] := Block[{t$95$0 = N[(N[(hi + x), $MachinePrecision] / lo), $MachinePrecision]}, Block[{t$95$1 = N[(lo * N[(lo / hi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x - hi), $MachinePrecision] / t$95$1), $MachinePrecision]}, N[(1.0 + N[(N[(N[(N[(t$95$2 * t$95$2), $MachinePrecision] + N[(N[(t$95$0 * t$95$0), $MachinePrecision] + N[(t$95$0 * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$0 - t$95$2), $MachinePrecision]), $MachinePrecision] / N[(N[Power[N[(N[(hi - x), $MachinePrecision] / t$95$1), $MachinePrecision], 2.0], $MachinePrecision] + N[(N[Power[t$95$0, 2.0], $MachinePrecision] + N[(N[(hi / lo), $MachinePrecision] * N[(t$95$0 * N[(N[(x - hi), $MachinePrecision] / lo), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_0 := \frac{hi + x}{lo}\\
    t_1 := lo \cdot \frac{lo}{hi}\\
    t_2 := \frac{x - hi}{t_1}\\
    1 + \frac{\left(t_2 \cdot t_2 + \left(t_0 \cdot t_0 + t_0 \cdot t_2\right)\right) \cdot \left(t_0 - t_2\right)}{{\left(\frac{hi - x}{t_1}\right)}^{2} + \left({t_0}^{2} + \frac{hi}{lo} \cdot \left(t_0 \cdot \frac{x - hi}{lo}\right)\right)}
    \end{array}
    \end{array}
    
    Derivation
    1. Initial program 3.1%

      \[\frac{x - lo}{hi - lo} \]
    2. Taylor expanded in lo around inf 0.0%

      \[\leadsto \color{blue}{\left(1 + \left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right)\right) - -1 \cdot \frac{hi}{lo}} \]
    3. Step-by-step derivation
      1. associate--l+0.0%

        \[\leadsto \color{blue}{1 + \left(\left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right) - -1 \cdot \frac{hi}{lo}\right)} \]
      2. +-commutative0.0%

        \[\leadsto 1 + \left(\color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \frac{x}{lo}\right)} - -1 \cdot \frac{hi}{lo}\right) \]
      3. associate--l+0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \left(-1 \cdot \frac{x}{lo} - -1 \cdot \frac{hi}{lo}\right)\right)} \]
      4. distribute-lft-out--0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{-1 \cdot \left(\frac{x}{lo} - \frac{hi}{lo}\right)}\right) \]
      5. div-sub0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \color{blue}{\frac{x - hi}{lo}}\right) \]
      6. mul-1-neg0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{\left(-\frac{x - hi}{lo}\right)}\right) \]
      7. sub-neg0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} - \frac{x - hi}{lo}\right)} \]
      8. unpow20.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{\color{blue}{lo \cdot lo}} - \frac{x - hi}{lo}\right) \]
      9. times-frac18.9%

        \[\leadsto 1 + \left(\color{blue}{\frac{hi}{lo} \cdot \frac{-1 \cdot x - -1 \cdot hi}{lo}} - \frac{x - hi}{lo}\right) \]
      10. distribute-lft-out--18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{\color{blue}{-1 \cdot \left(x - hi\right)}}{lo} - \frac{x - hi}{lo}\right) \]
      11. associate-*r/18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \color{blue}{\left(-1 \cdot \frac{x - hi}{lo}\right)} - \frac{x - hi}{lo}\right) \]
      12. fma-neg18.9%

        \[\leadsto 1 + \color{blue}{\mathsf{fma}\left(\frac{hi}{lo}, -1 \cdot \frac{x - hi}{lo}, -\frac{x - hi}{lo}\right)} \]
    4. Simplified18.9%

      \[\leadsto \color{blue}{1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \frac{hi - x}{lo}\right)} \]
    5. Step-by-step derivation
      1. clear-num18.9%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \color{blue}{\frac{1}{\frac{lo}{hi - x}}}\right) \]
      2. inv-pow18.9%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \color{blue}{{\left(\frac{lo}{hi - x}\right)}^{-1}}\right) \]
      3. sub-neg18.9%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{\color{blue}{hi + \left(-x\right)}}\right)}^{-1}\right) \]
      4. add-sqr-sqrt9.5%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{\sqrt{-x} \cdot \sqrt{-x}}}\right)}^{-1}\right) \]
      5. sqrt-unprod13.4%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{\sqrt{\left(-x\right) \cdot \left(-x\right)}}}\right)}^{-1}\right) \]
      6. sqr-neg13.4%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \sqrt{\color{blue}{x \cdot x}}}\right)}^{-1}\right) \]
      7. sqrt-unprod9.3%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{\sqrt{x} \cdot \sqrt{x}}}\right)}^{-1}\right) \]
      8. add-sqr-sqrt18.9%

        \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, {\left(\frac{lo}{hi + \color{blue}{x}}\right)}^{-1}\right) \]
    6. Applied egg-rr18.9%

      \[\leadsto 1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \color{blue}{{\left(\frac{lo}{hi + x}\right)}^{-1}}\right) \]
    7. Step-by-step derivation
      1. fma-udef18.9%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + {\left(\frac{lo}{hi + x}\right)}^{-1}\right)} \]
      2. unpow-118.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + \color{blue}{\frac{1}{\frac{lo}{hi + x}}}\right) \]
      3. clear-num18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + \color{blue}{\frac{hi + x}{lo}}\right) \]
      4. flip3-+18.9%

        \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)}} \]
      5. pow218.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{\color{blue}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}} + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      6. clear-num18.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left(\color{blue}{\frac{1}{\frac{lo}{hi + x}}} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      7. unpow-118.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left(\color{blue}{{\left(\frac{lo}{hi + x}\right)}^{-1}} \cdot \frac{hi + x}{lo} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      8. clear-num18.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-1} \cdot \color{blue}{\frac{1}{\frac{lo}{hi + x}}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      9. unpow-118.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-1} \cdot \color{blue}{{\left(\frac{lo}{hi + x}\right)}^{-1}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      10. pow-prod-up18.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left(\color{blue}{{\left(\frac{lo}{hi + x}\right)}^{\left(-1 + -1\right)}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      11. metadata-eval18.9%

        \[\leadsto 1 + \frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{\color{blue}{-2}} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    8. Applied egg-rr18.9%

      \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)}} \]
    9. Step-by-step derivation
      1. times-frac0.0%

        \[\leadsto 1 + \frac{{\color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{lo \cdot lo}\right)}}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      2. *-commutative0.0%

        \[\leadsto 1 + \frac{{\left(\frac{\color{blue}{\left(hi - x\right) \cdot hi}}{lo \cdot lo}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      3. associate-/l*21.1%

        \[\leadsto 1 + \frac{{\color{blue}{\left(\frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      4. associate-*r/19.4%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{\color{blue}{lo \cdot \frac{lo}{hi}}}\right)}^{3} + {\left(\frac{hi + x}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      5. +-commutative19.4%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{\color{blue}{x + hi}}{lo}\right)}^{3}}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      6. times-frac0.0%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{lo \cdot lo}\right)}}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      7. *-commutative0.0%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\left(\frac{\color{blue}{\left(hi - x\right) \cdot hi}}{lo \cdot lo}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      8. associate-/l*39.3%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\color{blue}{\left(\frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
      9. associate-*r/39.4%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\left(\frac{hi - x}{\color{blue}{lo \cdot \frac{lo}{hi}}}\right)}^{2} + \left({\left(\frac{lo}{hi + x}\right)}^{-2} - \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \frac{hi + x}{lo}\right)} \]
    10. Simplified39.4%

      \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{3} + {\left(\frac{x + hi}{lo}\right)}^{3}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)}} \]
    11. Step-by-step derivation
      1. sum-cubes39.4%

        \[\leadsto 1 + \frac{\color{blue}{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{x + hi}{lo} \cdot \frac{x + hi}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{x + hi}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{x + hi}{lo}\right)}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
      2. +-commutative39.4%

        \[\leadsto 1 + \frac{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{\color{blue}{hi + x}}{lo} \cdot \frac{x + hi}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{x + hi}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{x + hi}{lo}\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
      3. +-commutative39.4%

        \[\leadsto 1 + \frac{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{hi + x}{lo} \cdot \frac{\color{blue}{hi + x}}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{x + hi}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{x + hi}{lo}\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
      4. +-commutative39.4%

        \[\leadsto 1 + \frac{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{\color{blue}{hi + x}}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{x + hi}{lo}\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
      5. +-commutative39.4%

        \[\leadsto 1 + \frac{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi + x}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{\color{blue}{hi + x}}{lo}\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
    12. Applied egg-rr39.4%

      \[\leadsto 1 + \frac{\color{blue}{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi - x}{lo \cdot \frac{lo}{hi}} + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} - \frac{hi - x}{lo \cdot \frac{lo}{hi}} \cdot \frac{hi + x}{lo}\right)\right) \cdot \left(\frac{hi - x}{lo \cdot \frac{lo}{hi}} + \frac{hi + x}{lo}\right)}}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{x + hi}{lo}\right)}^{2} - \frac{hi}{lo} \cdot \left(\frac{hi - x}{lo} \cdot \frac{x + hi}{lo}\right)\right)} \]
    13. Final simplification39.4%

      \[\leadsto 1 + \frac{\left(\frac{x - hi}{lo \cdot \frac{lo}{hi}} \cdot \frac{x - hi}{lo \cdot \frac{lo}{hi}} + \left(\frac{hi + x}{lo} \cdot \frac{hi + x}{lo} + \frac{hi + x}{lo} \cdot \frac{x - hi}{lo \cdot \frac{lo}{hi}}\right)\right) \cdot \left(\frac{hi + x}{lo} - \frac{x - hi}{lo \cdot \frac{lo}{hi}}\right)}{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} + \left({\left(\frac{hi + x}{lo}\right)}^{2} + \frac{hi}{lo} \cdot \left(\frac{hi + x}{lo} \cdot \frac{x - hi}{lo}\right)\right)} \]

    Alternative 4: 22.7% accurate, 0.0× speedup?

    \[\begin{array}{l} \\ 1 + lo \cdot \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{x - \left(hi + \frac{hi}{lo} \cdot \left(x - hi\right)\right)} \end{array} \]
    (FPCore (lo hi x)
     :precision binary64
     (+
      1.0
      (*
       lo
       (/
        (- (pow (/ (- hi x) (* lo (/ lo hi))) 2.0) (pow (/ (- hi x) lo) 2.0))
        (- x (+ hi (* (/ hi lo) (- x hi))))))))
    double code(double lo, double hi, double x) {
    	return 1.0 + (lo * ((pow(((hi - x) / (lo * (lo / hi))), 2.0) - pow(((hi - x) / lo), 2.0)) / (x - (hi + ((hi / lo) * (x - hi))))));
    }
    
    real(8) function code(lo, hi, x)
        real(8), intent (in) :: lo
        real(8), intent (in) :: hi
        real(8), intent (in) :: x
        code = 1.0d0 + (lo * (((((hi - x) / (lo * (lo / hi))) ** 2.0d0) - (((hi - x) / lo) ** 2.0d0)) / (x - (hi + ((hi / lo) * (x - hi))))))
    end function
    
    public static double code(double lo, double hi, double x) {
    	return 1.0 + (lo * ((Math.pow(((hi - x) / (lo * (lo / hi))), 2.0) - Math.pow(((hi - x) / lo), 2.0)) / (x - (hi + ((hi / lo) * (x - hi))))));
    }
    
    def code(lo, hi, x):
    	return 1.0 + (lo * ((math.pow(((hi - x) / (lo * (lo / hi))), 2.0) - math.pow(((hi - x) / lo), 2.0)) / (x - (hi + ((hi / lo) * (x - hi))))))
    
    function code(lo, hi, x)
    	return Float64(1.0 + Float64(lo * Float64(Float64((Float64(Float64(hi - x) / Float64(lo * Float64(lo / hi))) ^ 2.0) - (Float64(Float64(hi - x) / lo) ^ 2.0)) / Float64(x - Float64(hi + Float64(Float64(hi / lo) * Float64(x - hi)))))))
    end
    
    function tmp = code(lo, hi, x)
    	tmp = 1.0 + (lo * (((((hi - x) / (lo * (lo / hi))) ^ 2.0) - (((hi - x) / lo) ^ 2.0)) / (x - (hi + ((hi / lo) * (x - hi))))));
    end
    
    code[lo_, hi_, x_] := N[(1.0 + N[(lo * N[(N[(N[Power[N[(N[(hi - x), $MachinePrecision] / N[(lo * N[(lo / hi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] - N[Power[N[(N[(hi - x), $MachinePrecision] / lo), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[(x - N[(hi + N[(N[(hi / lo), $MachinePrecision] * N[(x - hi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
    
    \begin{array}{l}
    
    \\
    1 + lo \cdot \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{x - \left(hi + \frac{hi}{lo} \cdot \left(x - hi\right)\right)}
    \end{array}
    
    Derivation
    1. Initial program 3.1%

      \[\frac{x - lo}{hi - lo} \]
    2. Taylor expanded in lo around inf 0.0%

      \[\leadsto \color{blue}{\left(1 + \left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right)\right) - -1 \cdot \frac{hi}{lo}} \]
    3. Step-by-step derivation
      1. associate--l+0.0%

        \[\leadsto \color{blue}{1 + \left(\left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right) - -1 \cdot \frac{hi}{lo}\right)} \]
      2. +-commutative0.0%

        \[\leadsto 1 + \left(\color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \frac{x}{lo}\right)} - -1 \cdot \frac{hi}{lo}\right) \]
      3. associate--l+0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \left(-1 \cdot \frac{x}{lo} - -1 \cdot \frac{hi}{lo}\right)\right)} \]
      4. distribute-lft-out--0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{-1 \cdot \left(\frac{x}{lo} - \frac{hi}{lo}\right)}\right) \]
      5. div-sub0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \color{blue}{\frac{x - hi}{lo}}\right) \]
      6. mul-1-neg0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{\left(-\frac{x - hi}{lo}\right)}\right) \]
      7. sub-neg0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} - \frac{x - hi}{lo}\right)} \]
      8. unpow20.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{\color{blue}{lo \cdot lo}} - \frac{x - hi}{lo}\right) \]
      9. times-frac18.9%

        \[\leadsto 1 + \left(\color{blue}{\frac{hi}{lo} \cdot \frac{-1 \cdot x - -1 \cdot hi}{lo}} - \frac{x - hi}{lo}\right) \]
      10. distribute-lft-out--18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{\color{blue}{-1 \cdot \left(x - hi\right)}}{lo} - \frac{x - hi}{lo}\right) \]
      11. associate-*r/18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \color{blue}{\left(-1 \cdot \frac{x - hi}{lo}\right)} - \frac{x - hi}{lo}\right) \]
      12. fma-neg18.9%

        \[\leadsto 1 + \color{blue}{\mathsf{fma}\left(\frac{hi}{lo}, -1 \cdot \frac{x - hi}{lo}, -\frac{x - hi}{lo}\right)} \]
    4. Simplified18.9%

      \[\leadsto \color{blue}{1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \frac{hi - x}{lo}\right)} \]
    5. Taylor expanded in lo around 0 0.0%

      \[\leadsto 1 + \color{blue}{\left(\left(\frac{hi}{lo} + \frac{hi \cdot \left(hi - x\right)}{{lo}^{2}}\right) - \frac{x}{lo}\right)} \]
    6. Step-by-step derivation
      1. +-commutative0.0%

        \[\leadsto 1 + \left(\color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{{lo}^{2}} + \frac{hi}{lo}\right)} - \frac{x}{lo}\right) \]
      2. associate--l+0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{{lo}^{2}} + \left(\frac{hi}{lo} - \frac{x}{lo}\right)\right)} \]
      3. unpow20.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(hi - x\right)}{\color{blue}{lo \cdot lo}} + \left(\frac{hi}{lo} - \frac{x}{lo}\right)\right) \]
      4. times-frac18.9%

        \[\leadsto 1 + \left(\color{blue}{\frac{hi}{lo} \cdot \frac{hi - x}{lo}} + \left(\frac{hi}{lo} - \frac{x}{lo}\right)\right) \]
      5. div-sub18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + \color{blue}{\frac{hi - x}{lo}}\right) \]
    7. Simplified18.9%

      \[\leadsto 1 + \color{blue}{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + \frac{hi - x}{lo}\right)} \]
    8. Step-by-step derivation
      1. flip-+18.9%

        \[\leadsto 1 + \color{blue}{\frac{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) - \frac{hi - x}{lo} \cdot \frac{hi - x}{lo}}{\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}}} \]
      2. div-sub18.9%

        \[\leadsto 1 + \color{blue}{\left(\frac{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}{\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}} - \frac{\frac{hi - x}{lo} \cdot \frac{hi - x}{lo}}{\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}}\right)} \]
      3. pow218.9%

        \[\leadsto 1 + \left(\frac{\color{blue}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}}}{\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}} - \frac{\frac{hi - x}{lo} \cdot \frac{hi - x}{lo}}{\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}}\right) \]
      4. associate-*r/38.3%

        \[\leadsto 1 + \left(\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}}{\color{blue}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right)}{lo}} - \frac{hi - x}{lo}} - \frac{\frac{hi - x}{lo} \cdot \frac{hi - x}{lo}}{\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}}\right) \]
      5. sub-div95.3%

        \[\leadsto 1 + \left(\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}}{\color{blue}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}}} - \frac{\frac{hi - x}{lo} \cdot \frac{hi - x}{lo}}{\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}}\right) \]
      6. pow295.3%

        \[\leadsto 1 + \left(\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}} - \frac{\color{blue}{{\left(\frac{hi - x}{lo}\right)}^{2}}}{\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}}\right) \]
      7. associate-*r/76.0%

        \[\leadsto 1 + \left(\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}} - \frac{{\left(\frac{hi - x}{lo}\right)}^{2}}{\color{blue}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right)}{lo}} - \frac{hi - x}{lo}}\right) \]
      8. sub-div18.8%

        \[\leadsto 1 + \left(\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}} - \frac{{\left(\frac{hi - x}{lo}\right)}^{2}}{\color{blue}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}}}\right) \]
    9. Applied egg-rr18.8%

      \[\leadsto 1 + \color{blue}{\left(\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}} - \frac{{\left(\frac{hi - x}{lo}\right)}^{2}}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}}\right)} \]
    10. Step-by-step derivation
      1. div-sub18.8%

        \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}}} \]
      2. associate-/r/18.8%

        \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)} \cdot lo} \]
      3. times-frac0.0%

        \[\leadsto 1 + \frac{{\color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{lo \cdot lo}\right)}}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)} \cdot lo \]
      4. *-commutative0.0%

        \[\leadsto 1 + \frac{{\left(\frac{\color{blue}{\left(hi - x\right) \cdot hi}}{lo \cdot lo}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)} \cdot lo \]
      5. associate-/l*22.7%

        \[\leadsto 1 + \frac{{\color{blue}{\left(\frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)} \cdot lo \]
      6. associate-*r/22.4%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{\color{blue}{lo \cdot \frac{lo}{hi}}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)} \cdot lo \]
      7. associate--r-22.1%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{\color{blue}{\left(\frac{hi}{lo} \cdot \left(hi - x\right) - hi\right) + x}} \cdot lo \]
      8. *-commutative22.1%

        \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{\left(\color{blue}{\left(hi - x\right) \cdot \frac{hi}{lo}} - hi\right) + x} \cdot lo \]
    11. Simplified22.1%

      \[\leadsto 1 + \color{blue}{\frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{\left(\left(hi - x\right) \cdot \frac{hi}{lo} - hi\right) + x} \cdot lo} \]
    12. Final simplification22.1%

      \[\leadsto 1 + lo \cdot \frac{{\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{x - \left(hi + \frac{hi}{lo} \cdot \left(x - hi\right)\right)} \]

    Alternative 5: 22.8% accurate, 0.0× speedup?

    \[\begin{array}{l} \\ 1 + \frac{{\left(\frac{hi - x}{lo}\right)}^{2} - {\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2}}{\frac{\left(hi + \frac{hi}{lo} \cdot \left(x - hi\right)\right) - x}{lo}} \end{array} \]
    (FPCore (lo hi x)
     :precision binary64
     (+
      1.0
      (/
       (- (pow (/ (- hi x) lo) 2.0) (pow (/ (- hi x) (* lo (/ lo hi))) 2.0))
       (/ (- (+ hi (* (/ hi lo) (- x hi))) x) lo))))
    double code(double lo, double hi, double x) {
    	return 1.0 + ((pow(((hi - x) / lo), 2.0) - pow(((hi - x) / (lo * (lo / hi))), 2.0)) / (((hi + ((hi / lo) * (x - hi))) - x) / lo));
    }
    
    real(8) function code(lo, hi, x)
        real(8), intent (in) :: lo
        real(8), intent (in) :: hi
        real(8), intent (in) :: x
        code = 1.0d0 + (((((hi - x) / lo) ** 2.0d0) - (((hi - x) / (lo * (lo / hi))) ** 2.0d0)) / (((hi + ((hi / lo) * (x - hi))) - x) / lo))
    end function
    
    public static double code(double lo, double hi, double x) {
    	return 1.0 + ((Math.pow(((hi - x) / lo), 2.0) - Math.pow(((hi - x) / (lo * (lo / hi))), 2.0)) / (((hi + ((hi / lo) * (x - hi))) - x) / lo));
    }
    
    def code(lo, hi, x):
    	return 1.0 + ((math.pow(((hi - x) / lo), 2.0) - math.pow(((hi - x) / (lo * (lo / hi))), 2.0)) / (((hi + ((hi / lo) * (x - hi))) - x) / lo))
    
    function code(lo, hi, x)
    	return Float64(1.0 + Float64(Float64((Float64(Float64(hi - x) / lo) ^ 2.0) - (Float64(Float64(hi - x) / Float64(lo * Float64(lo / hi))) ^ 2.0)) / Float64(Float64(Float64(hi + Float64(Float64(hi / lo) * Float64(x - hi))) - x) / lo)))
    end
    
    function tmp = code(lo, hi, x)
    	tmp = 1.0 + (((((hi - x) / lo) ^ 2.0) - (((hi - x) / (lo * (lo / hi))) ^ 2.0)) / (((hi + ((hi / lo) * (x - hi))) - x) / lo));
    end
    
    code[lo_, hi_, x_] := N[(1.0 + N[(N[(N[Power[N[(N[(hi - x), $MachinePrecision] / lo), $MachinePrecision], 2.0], $MachinePrecision] - N[Power[N[(N[(hi - x), $MachinePrecision] / N[(lo * N[(lo / hi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[(N[(N[(hi + N[(N[(hi / lo), $MachinePrecision] * N[(x - hi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / lo), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
    
    \begin{array}{l}
    
    \\
    1 + \frac{{\left(\frac{hi - x}{lo}\right)}^{2} - {\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2}}{\frac{\left(hi + \frac{hi}{lo} \cdot \left(x - hi\right)\right) - x}{lo}}
    \end{array}
    
    Derivation
    1. Initial program 3.1%

      \[\frac{x - lo}{hi - lo} \]
    2. Taylor expanded in lo around inf 0.0%

      \[\leadsto \color{blue}{\left(1 + \left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right)\right) - -1 \cdot \frac{hi}{lo}} \]
    3. Step-by-step derivation
      1. associate--l+0.0%

        \[\leadsto \color{blue}{1 + \left(\left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right) - -1 \cdot \frac{hi}{lo}\right)} \]
      2. +-commutative0.0%

        \[\leadsto 1 + \left(\color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \frac{x}{lo}\right)} - -1 \cdot \frac{hi}{lo}\right) \]
      3. associate--l+0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \left(-1 \cdot \frac{x}{lo} - -1 \cdot \frac{hi}{lo}\right)\right)} \]
      4. distribute-lft-out--0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{-1 \cdot \left(\frac{x}{lo} - \frac{hi}{lo}\right)}\right) \]
      5. div-sub0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \color{blue}{\frac{x - hi}{lo}}\right) \]
      6. mul-1-neg0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{\left(-\frac{x - hi}{lo}\right)}\right) \]
      7. sub-neg0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} - \frac{x - hi}{lo}\right)} \]
      8. unpow20.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{\color{blue}{lo \cdot lo}} - \frac{x - hi}{lo}\right) \]
      9. times-frac18.9%

        \[\leadsto 1 + \left(\color{blue}{\frac{hi}{lo} \cdot \frac{-1 \cdot x - -1 \cdot hi}{lo}} - \frac{x - hi}{lo}\right) \]
      10. distribute-lft-out--18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{\color{blue}{-1 \cdot \left(x - hi\right)}}{lo} - \frac{x - hi}{lo}\right) \]
      11. associate-*r/18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \color{blue}{\left(-1 \cdot \frac{x - hi}{lo}\right)} - \frac{x - hi}{lo}\right) \]
      12. fma-neg18.9%

        \[\leadsto 1 + \color{blue}{\mathsf{fma}\left(\frac{hi}{lo}, -1 \cdot \frac{x - hi}{lo}, -\frac{x - hi}{lo}\right)} \]
    4. Simplified18.9%

      \[\leadsto \color{blue}{1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \frac{hi - x}{lo}\right)} \]
    5. Taylor expanded in lo around 0 0.0%

      \[\leadsto 1 + \color{blue}{\left(\left(\frac{hi}{lo} + \frac{hi \cdot \left(hi - x\right)}{{lo}^{2}}\right) - \frac{x}{lo}\right)} \]
    6. Step-by-step derivation
      1. +-commutative0.0%

        \[\leadsto 1 + \left(\color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{{lo}^{2}} + \frac{hi}{lo}\right)} - \frac{x}{lo}\right) \]
      2. associate--l+0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{{lo}^{2}} + \left(\frac{hi}{lo} - \frac{x}{lo}\right)\right)} \]
      3. unpow20.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(hi - x\right)}{\color{blue}{lo \cdot lo}} + \left(\frac{hi}{lo} - \frac{x}{lo}\right)\right) \]
      4. times-frac18.9%

        \[\leadsto 1 + \left(\color{blue}{\frac{hi}{lo} \cdot \frac{hi - x}{lo}} + \left(\frac{hi}{lo} - \frac{x}{lo}\right)\right) \]
      5. div-sub18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + \color{blue}{\frac{hi - x}{lo}}\right) \]
    7. Simplified18.9%

      \[\leadsto 1 + \color{blue}{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} + \frac{hi - x}{lo}\right)} \]
    8. Step-by-step derivation
      1. flip-+18.9%

        \[\leadsto 1 + \color{blue}{\frac{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) - \frac{hi - x}{lo} \cdot \frac{hi - x}{lo}}{\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}}} \]
      2. frac-2neg18.9%

        \[\leadsto 1 + \color{blue}{\frac{-\left(\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) \cdot \left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right) - \frac{hi - x}{lo} \cdot \frac{hi - x}{lo}\right)}{-\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}\right)}} \]
      3. pow218.9%

        \[\leadsto 1 + \frac{-\left(\color{blue}{{\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2}} - \frac{hi - x}{lo} \cdot \frac{hi - x}{lo}\right)}{-\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}\right)} \]
      4. pow218.9%

        \[\leadsto 1 + \frac{-\left({\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} - \color{blue}{{\left(\frac{hi - x}{lo}\right)}^{2}}\right)}{-\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo} - \frac{hi - x}{lo}\right)} \]
      5. associate-*r/19.1%

        \[\leadsto 1 + \frac{-\left({\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{-\left(\color{blue}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right)}{lo}} - \frac{hi - x}{lo}\right)} \]
      6. sub-div18.8%

        \[\leadsto 1 + \frac{-\left({\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{-\color{blue}{\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}}} \]
    9. Applied egg-rr18.8%

      \[\leadsto 1 + \color{blue}{\frac{-\left({\left(\frac{hi}{lo} \cdot \frac{hi - x}{lo}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{-\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}}} \]
    10. Step-by-step derivation
      1. times-frac0.0%

        \[\leadsto 1 + \frac{-\left({\color{blue}{\left(\frac{hi \cdot \left(hi - x\right)}{lo \cdot lo}\right)}}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{-\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}} \]
      2. *-commutative0.0%

        \[\leadsto 1 + \frac{-\left({\left(\frac{\color{blue}{\left(hi - x\right) \cdot hi}}{lo \cdot lo}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{-\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}} \]
      3. associate-/l*22.8%

        \[\leadsto 1 + \frac{-\left({\color{blue}{\left(\frac{hi - x}{\frac{lo \cdot lo}{hi}}\right)}}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{-\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}} \]
      4. associate-*r/22.5%

        \[\leadsto 1 + \frac{-\left({\left(\frac{hi - x}{\color{blue}{lo \cdot \frac{lo}{hi}}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{-\frac{\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)}{lo}} \]
      5. distribute-neg-frac22.5%

        \[\leadsto 1 + \frac{-\left({\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{\color{blue}{\frac{-\left(\frac{hi}{lo} \cdot \left(hi - x\right) - \left(hi - x\right)\right)}{lo}}} \]
      6. associate--r-22.2%

        \[\leadsto 1 + \frac{-\left({\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{\frac{-\color{blue}{\left(\left(\frac{hi}{lo} \cdot \left(hi - x\right) - hi\right) + x\right)}}{lo}} \]
      7. *-commutative22.2%

        \[\leadsto 1 + \frac{-\left({\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{\frac{-\left(\left(\color{blue}{\left(hi - x\right) \cdot \frac{hi}{lo}} - hi\right) + x\right)}{lo}} \]
    11. Simplified22.2%

      \[\leadsto 1 + \color{blue}{\frac{-\left({\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}\right)}{\frac{-\left(\left(\left(hi - x\right) \cdot \frac{hi}{lo} - hi\right) + x\right)}{lo}}} \]
    12. Final simplification22.2%

      \[\leadsto 1 + \frac{{\left(\frac{hi - x}{lo}\right)}^{2} - {\left(\frac{hi - x}{lo \cdot \frac{lo}{hi}}\right)}^{2}}{\frac{\left(hi + \frac{hi}{lo} \cdot \left(x - hi\right)\right) - x}{lo}} \]

    Alternative 6: 19.5% accurate, 0.8× speedup?

    \[\begin{array}{l} \\ \frac{hi + x}{lo} \cdot \frac{hi}{lo} \end{array} \]
    (FPCore (lo hi x) :precision binary64 (* (/ (+ hi x) lo) (/ hi lo)))
    double code(double lo, double hi, double x) {
    	return ((hi + x) / lo) * (hi / lo);
    }
    
    real(8) function code(lo, hi, x)
        real(8), intent (in) :: lo
        real(8), intent (in) :: hi
        real(8), intent (in) :: x
        code = ((hi + x) / lo) * (hi / lo)
    end function
    
    public static double code(double lo, double hi, double x) {
    	return ((hi + x) / lo) * (hi / lo);
    }
    
    def code(lo, hi, x):
    	return ((hi + x) / lo) * (hi / lo)
    
    function code(lo, hi, x)
    	return Float64(Float64(Float64(hi + x) / lo) * Float64(hi / lo))
    end
    
    function tmp = code(lo, hi, x)
    	tmp = ((hi + x) / lo) * (hi / lo);
    end
    
    code[lo_, hi_, x_] := N[(N[(N[(hi + x), $MachinePrecision] / lo), $MachinePrecision] * N[(hi / lo), $MachinePrecision]), $MachinePrecision]
    
    \begin{array}{l}
    
    \\
    \frac{hi + x}{lo} \cdot \frac{hi}{lo}
    \end{array}
    
    Derivation
    1. Initial program 3.1%

      \[\frac{x - lo}{hi - lo} \]
    2. Taylor expanded in lo around inf 0.0%

      \[\leadsto \color{blue}{\left(1 + \left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right)\right) - -1 \cdot \frac{hi}{lo}} \]
    3. Step-by-step derivation
      1. associate--l+0.0%

        \[\leadsto \color{blue}{1 + \left(\left(-1 \cdot \frac{x}{lo} + \frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}}\right) - -1 \cdot \frac{hi}{lo}\right)} \]
      2. +-commutative0.0%

        \[\leadsto 1 + \left(\color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \frac{x}{lo}\right)} - -1 \cdot \frac{hi}{lo}\right) \]
      3. associate--l+0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \left(-1 \cdot \frac{x}{lo} - -1 \cdot \frac{hi}{lo}\right)\right)} \]
      4. distribute-lft-out--0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{-1 \cdot \left(\frac{x}{lo} - \frac{hi}{lo}\right)}\right) \]
      5. div-sub0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + -1 \cdot \color{blue}{\frac{x - hi}{lo}}\right) \]
      6. mul-1-neg0.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + \color{blue}{\left(-\frac{x - hi}{lo}\right)}\right) \]
      7. sub-neg0.0%

        \[\leadsto 1 + \color{blue}{\left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} - \frac{x - hi}{lo}\right)} \]
      8. unpow20.0%

        \[\leadsto 1 + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{\color{blue}{lo \cdot lo}} - \frac{x - hi}{lo}\right) \]
      9. times-frac18.9%

        \[\leadsto 1 + \left(\color{blue}{\frac{hi}{lo} \cdot \frac{-1 \cdot x - -1 \cdot hi}{lo}} - \frac{x - hi}{lo}\right) \]
      10. distribute-lft-out--18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \frac{\color{blue}{-1 \cdot \left(x - hi\right)}}{lo} - \frac{x - hi}{lo}\right) \]
      11. associate-*r/18.9%

        \[\leadsto 1 + \left(\frac{hi}{lo} \cdot \color{blue}{\left(-1 \cdot \frac{x - hi}{lo}\right)} - \frac{x - hi}{lo}\right) \]
      12. fma-neg18.9%

        \[\leadsto 1 + \color{blue}{\mathsf{fma}\left(\frac{hi}{lo}, -1 \cdot \frac{x - hi}{lo}, -\frac{x - hi}{lo}\right)} \]
    4. Simplified18.9%

      \[\leadsto \color{blue}{1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \frac{hi - x}{lo}\right)} \]
    5. Step-by-step derivation
      1. expm1-log1p-u18.9%

        \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \frac{hi - x}{lo}\right)\right)\right)} \]
      2. expm1-udef18.9%

        \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(1 + \mathsf{fma}\left(\frac{hi}{lo}, \frac{hi - x}{lo}, \frac{hi - x}{lo}\right)\right)} - 1} \]
    6. Applied egg-rr18.8%

      \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\mathsf{fma}\left(\frac{hi}{lo}, \frac{hi + x}{lo}, \frac{hi + x}{lo}\right) + 1\right)} - 1} \]
    7. Step-by-step derivation
      1. expm1-def18.8%

        \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\mathsf{fma}\left(\frac{hi}{lo}, \frac{hi + x}{lo}, \frac{hi + x}{lo}\right) + 1\right)\right)} \]
      2. expm1-log1p18.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{hi}{lo}, \frac{hi + x}{lo}, \frac{hi + x}{lo}\right) + 1} \]
      3. fma-def18.8%

        \[\leadsto \color{blue}{\left(\frac{hi}{lo} \cdot \frac{hi + x}{lo} + \frac{hi + x}{lo}\right)} + 1 \]
      4. distribute-lft1-in18.9%

        \[\leadsto \color{blue}{\left(\frac{hi}{lo} + 1\right) \cdot \frac{hi + x}{lo}} + 1 \]
      5. +-commutative18.9%

        \[\leadsto \color{blue}{\left(1 + \frac{hi}{lo}\right)} \cdot \frac{hi + x}{lo} + 1 \]
      6. +-commutative18.9%

        \[\leadsto \left(1 + \frac{hi}{lo}\right) \cdot \frac{\color{blue}{x + hi}}{lo} + 1 \]
      7. fma-def18.9%

        \[\leadsto \color{blue}{\mathsf{fma}\left(1 + \frac{hi}{lo}, \frac{x + hi}{lo}, 1\right)} \]
    8. Simplified18.9%

      \[\leadsto \color{blue}{\mathsf{fma}\left(1 + \frac{hi}{lo}, \frac{x + hi}{lo}, 1\right)} \]
    9. Taylor expanded in hi around -inf 0.0%

      \[\leadsto \color{blue}{-1 \cdot \left(hi \cdot \left(-1 \cdot \frac{x}{{lo}^{2}} - \frac{1}{lo}\right)\right) + \frac{{hi}^{2}}{{lo}^{2}}} \]
    10. Step-by-step derivation
      1. +-commutative0.0%

        \[\leadsto \color{blue}{\frac{{hi}^{2}}{{lo}^{2}} + -1 \cdot \left(hi \cdot \left(-1 \cdot \frac{x}{{lo}^{2}} - \frac{1}{lo}\right)\right)} \]
      2. mul-1-neg0.0%

        \[\leadsto \frac{{hi}^{2}}{{lo}^{2}} + \color{blue}{\left(-hi \cdot \left(-1 \cdot \frac{x}{{lo}^{2}} - \frac{1}{lo}\right)\right)} \]
      3. unsub-neg0.0%

        \[\leadsto \color{blue}{\frac{{hi}^{2}}{{lo}^{2}} - hi \cdot \left(-1 \cdot \frac{x}{{lo}^{2}} - \frac{1}{lo}\right)} \]
      4. unpow20.0%

        \[\leadsto \frac{\color{blue}{hi \cdot hi}}{{lo}^{2}} - hi \cdot \left(-1 \cdot \frac{x}{{lo}^{2}} - \frac{1}{lo}\right) \]
      5. unpow20.0%

        \[\leadsto \frac{hi \cdot hi}{\color{blue}{lo \cdot lo}} - hi \cdot \left(-1 \cdot \frac{x}{{lo}^{2}} - \frac{1}{lo}\right) \]
      6. times-frac9.9%

        \[\leadsto \color{blue}{\frac{hi}{lo} \cdot \frac{hi}{lo}} - hi \cdot \left(-1 \cdot \frac{x}{{lo}^{2}} - \frac{1}{lo}\right) \]
      7. unpow29.9%

        \[\leadsto \color{blue}{{\left(\frac{hi}{lo}\right)}^{2}} - hi \cdot \left(-1 \cdot \frac{x}{{lo}^{2}} - \frac{1}{lo}\right) \]
      8. unpow29.9%

        \[\leadsto {\left(\frac{hi}{lo}\right)}^{2} - hi \cdot \left(-1 \cdot \frac{x}{\color{blue}{lo \cdot lo}} - \frac{1}{lo}\right) \]
      9. associate-*r/9.9%

        \[\leadsto {\left(\frac{hi}{lo}\right)}^{2} - hi \cdot \left(\color{blue}{\frac{-1 \cdot x}{lo \cdot lo}} - \frac{1}{lo}\right) \]
      10. neg-mul-19.9%

        \[\leadsto {\left(\frac{hi}{lo}\right)}^{2} - hi \cdot \left(\frac{\color{blue}{-x}}{lo \cdot lo} - \frac{1}{lo}\right) \]
    11. Simplified9.9%

      \[\leadsto \color{blue}{{\left(\frac{hi}{lo}\right)}^{2} - hi \cdot \left(\frac{-x}{lo \cdot lo} - \frac{1}{lo}\right)} \]
    12. Taylor expanded in lo around 0 0.0%

      \[\leadsto \color{blue}{\frac{{hi}^{2} - -1 \cdot \left(hi \cdot x\right)}{{lo}^{2}}} \]
    13. Step-by-step derivation
      1. associate-*r*0.0%

        \[\leadsto \frac{{hi}^{2} - \color{blue}{\left(-1 \cdot hi\right) \cdot x}}{{lo}^{2}} \]
      2. neg-mul-10.0%

        \[\leadsto \frac{{hi}^{2} - \color{blue}{\left(-hi\right)} \cdot x}{{lo}^{2}} \]
      3. cancel-sign-sub0.0%

        \[\leadsto \frac{\color{blue}{{hi}^{2} + hi \cdot x}}{{lo}^{2}} \]
      4. unpow20.0%

        \[\leadsto \frac{\color{blue}{hi \cdot hi} + hi \cdot x}{{lo}^{2}} \]
      5. distribute-lft-in0.0%

        \[\leadsto \frac{\color{blue}{hi \cdot \left(hi + x\right)}}{{lo}^{2}} \]
      6. unpow20.0%

        \[\leadsto \frac{hi \cdot \left(hi + x\right)}{\color{blue}{lo \cdot lo}} \]
      7. times-frac19.4%

        \[\leadsto \color{blue}{\frac{hi}{lo} \cdot \frac{hi + x}{lo}} \]
    14. Simplified19.4%

      \[\leadsto \color{blue}{\frac{hi}{lo} \cdot \frac{hi + x}{lo}} \]
    15. Final simplification19.4%

      \[\leadsto \frac{hi + x}{lo} \cdot \frac{hi}{lo} \]

    Alternative 7: 18.7% accurate, 7.0× speedup?

    \[\begin{array}{l} \\ 1 \end{array} \]
    (FPCore (lo hi x) :precision binary64 1.0)
    double code(double lo, double hi, double x) {
    	return 1.0;
    }
    
    real(8) function code(lo, hi, x)
        real(8), intent (in) :: lo
        real(8), intent (in) :: hi
        real(8), intent (in) :: x
        code = 1.0d0
    end function
    
    public static double code(double lo, double hi, double x) {
    	return 1.0;
    }
    
    def code(lo, hi, x):
    	return 1.0
    
    function code(lo, hi, x)
    	return 1.0
    end
    
    function tmp = code(lo, hi, x)
    	tmp = 1.0;
    end
    
    code[lo_, hi_, x_] := 1.0
    
    \begin{array}{l}
    
    \\
    1
    \end{array}
    
    Derivation
    1. Initial program 3.1%

      \[\frac{x - lo}{hi - lo} \]
    2. Taylor expanded in lo around inf 18.7%

      \[\leadsto \color{blue}{1} \]
    3. Final simplification18.7%

      \[\leadsto 1 \]

    Reproduce

    ?
    herbie shell --seed 2023277 
    (FPCore (lo hi x)
      :name "xlohi (overflows)"
      :precision binary64
      :pre (and (< lo -1e+308) (> hi 1e+308))
      (/ (- x lo) (- hi lo)))