fma_test2

Percentage Accurate: 34.7% → 99.6%
Time: 16.0s
Alternatives: 4
Speedup: 1.5×

Specification

?
\[1.9 \leq t \land t \leq 2.1\]
\[\begin{array}{l} \\ 1.7 \cdot 10^{+308} \cdot t - 1.7 \cdot 10^{+308} \end{array} \]
(FPCore (t) :precision binary64 (- (* 1.7e+308 t) 1.7e+308))
double code(double t) {
	return (1.7e+308 * t) - 1.7e+308;
}
real(8) function code(t)
    real(8), intent (in) :: t
    code = (1.7d+308 * t) - 1.7d+308
end function
public static double code(double t) {
	return (1.7e+308 * t) - 1.7e+308;
}
def code(t):
	return (1.7e+308 * t) - 1.7e+308
function code(t)
	return Float64(Float64(1.7e+308 * t) - 1.7e+308)
end
function tmp = code(t)
	tmp = (1.7e+308 * t) - 1.7e+308;
end
code[t_] := N[(N[(1.7e+308 * t), $MachinePrecision] - 1.7e+308), $MachinePrecision]
\begin{array}{l}

\\
1.7 \cdot 10^{+308} \cdot t - 1.7 \cdot 10^{+308}
\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 4 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: 34.7% accurate, 1.0× speedup?

\[\begin{array}{l} \\ 1.7 \cdot 10^{+308} \cdot t - 1.7 \cdot 10^{+308} \end{array} \]
(FPCore (t) :precision binary64 (- (* 1.7e+308 t) 1.7e+308))
double code(double t) {
	return (1.7e+308 * t) - 1.7e+308;
}
real(8) function code(t)
    real(8), intent (in) :: t
    code = (1.7d+308 * t) - 1.7d+308
end function
public static double code(double t) {
	return (1.7e+308 * t) - 1.7e+308;
}
def code(t):
	return (1.7e+308 * t) - 1.7e+308
function code(t)
	return Float64(Float64(1.7e+308 * t) - 1.7e+308)
end
function tmp = code(t)
	tmp = (1.7e+308 * t) - 1.7e+308;
end
code[t_] := N[(N[(1.7e+308 * t), $MachinePrecision] - 1.7e+308), $MachinePrecision]
\begin{array}{l}

\\
1.7 \cdot 10^{+308} \cdot t - 1.7 \cdot 10^{+308}
\end{array}

Alternative 1: 99.6% accurate, 0.5× speedup?

\[\begin{array}{l} \\ t \cdot \left(1.7 \cdot 10^{+308} + \frac{-1.7 \cdot 10^{+308}}{t}\right) \end{array} \]
(FPCore (t) :precision binary64 (* t (+ 1.7e+308 (/ -1.7e+308 t))))
double code(double t) {
	return t * (1.7e+308 + (-1.7e+308 / t));
}
real(8) function code(t)
    real(8), intent (in) :: t
    code = t * (1.7d+308 + ((-1.7d+308) / t))
end function
public static double code(double t) {
	return t * (1.7e+308 + (-1.7e+308 / t));
}
def code(t):
	return t * (1.7e+308 + (-1.7e+308 / t))
function code(t)
	return Float64(t * Float64(1.7e+308 + Float64(-1.7e+308 / t)))
end
function tmp = code(t)
	tmp = t * (1.7e+308 + (-1.7e+308 / t));
end
code[t_] := N[(t * N[(1.7e+308 + N[(-1.7e+308 / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
t \cdot \left(1.7 \cdot 10^{+308} + \frac{-1.7 \cdot 10^{+308}}{t}\right)
\end{array}
Derivation
  1. Initial program 35.5%

    \[1.7 \cdot 10^{+308} \cdot t - 1.7 \cdot 10^{+308} \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. lift-*.f64N/A

      \[\leadsto \color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot t} - 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \]
    2. sub-negN/A

      \[\leadsto \color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot t + \left(\mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right)} \]
    3. lift-*.f64N/A

      \[\leadsto \color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot t} + \left(\mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right) \]
    4. *-commutativeN/A

      \[\leadsto \color{blue}{t \cdot 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000} + \left(\mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right) \]
    5. lower-fma.f64N/A

      \[\leadsto \color{blue}{\mathsf{fma}\left(t, 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, \mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right)} \]
    6. metadata-eval99.6

      \[\leadsto \mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, \color{blue}{-1.7 \cdot 10^{+308}}\right) \]
  4. Applied rewrites99.6%

    \[\leadsto \color{blue}{\mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, -1.7 \cdot 10^{+308}\right)} \]
  5. Step-by-step derivation
    1. *-commutativeN/A

      \[\leadsto \color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot t} + -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \]
    2. lift-fma.f6499.6

      \[\leadsto \color{blue}{\mathsf{fma}\left(1.7 \cdot 10^{+308}, t, -1.7 \cdot 10^{+308}\right)} \]
    3. remove-double-divN/A

      \[\leadsto \color{blue}{\frac{1}{\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}}} \]
    4. lift-/.f64N/A

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}}} \]
    5. inv-powN/A

      \[\leadsto \color{blue}{{\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{-1}} \]
    6. metadata-evalN/A

      \[\leadsto {\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\color{blue}{\left(\frac{-1}{2} \cdot 2\right)}} \]
    7. pow-powN/A

      \[\leadsto \color{blue}{{\left({\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}}\right)}^{2}} \]
    8. lift-pow.f64N/A

      \[\leadsto {\color{blue}{\left({\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}}\right)}}^{2} \]
    9. pow2N/A

      \[\leadsto \color{blue}{{\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}} \cdot {\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}}} \]
    10. lift-*.f6498.4

      \[\leadsto \color{blue}{{\left(\frac{1}{\mathsf{fma}\left(1.7 \cdot 10^{+308}, t, -1.7 \cdot 10^{+308}\right)}\right)}^{-0.5} \cdot {\left(\frac{1}{\mathsf{fma}\left(1.7 \cdot 10^{+308}, t, -1.7 \cdot 10^{+308}\right)}\right)}^{-0.5}} \]
    11. lift-pow.f64N/A

      \[\leadsto \color{blue}{{\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}}} \cdot {\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}} \]
    12. lift-/.f64N/A

      \[\leadsto {\color{blue}{\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}}^{\frac{-1}{2}} \cdot {\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}} \]
    13. inv-powN/A

      \[\leadsto {\color{blue}{\left({\left(\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right)}^{-1}\right)}}^{\frac{-1}{2}} \cdot {\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}} \]
    14. pow-powN/A

      \[\leadsto \color{blue}{{\left(\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right)}^{\left(-1 \cdot \frac{-1}{2}\right)}} \cdot {\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}} \]
    15. metadata-evalN/A

      \[\leadsto {\left(\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right)}^{\color{blue}{\frac{1}{2}}} \cdot {\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}} \]
    16. unpow1/2N/A

      \[\leadsto \color{blue}{\sqrt{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}} \cdot {\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}} \]
    17. lower-sqrt.f6498.9

      \[\leadsto \color{blue}{\sqrt{\mathsf{fma}\left(1.7 \cdot 10^{+308}, t, -1.7 \cdot 10^{+308}\right)}} \cdot {\left(\frac{1}{\mathsf{fma}\left(1.7 \cdot 10^{+308}, t, -1.7 \cdot 10^{+308}\right)}\right)}^{-0.5} \]
    18. lift-fma.f64N/A

      \[\leadsto \sqrt{\color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot t + -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}} \cdot {\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}} \]
    19. *-commutativeN/A

      \[\leadsto \sqrt{\color{blue}{t \cdot 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000} + -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000} \cdot {\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}} \]
    20. lift-fma.f6498.9

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, -1.7 \cdot 10^{+308}\right)}} \cdot {\left(\frac{1}{\mathsf{fma}\left(1.7 \cdot 10^{+308}, t, -1.7 \cdot 10^{+308}\right)}\right)}^{-0.5} \]
    21. lift-pow.f64N/A

      \[\leadsto \sqrt{\mathsf{fma}\left(t, 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)} \cdot \color{blue}{{\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}^{\frac{-1}{2}}} \]
    22. lift-/.f64N/A

      \[\leadsto \sqrt{\mathsf{fma}\left(t, 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)} \cdot {\color{blue}{\left(\frac{1}{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}\right)}}^{\frac{-1}{2}} \]
    23. inv-powN/A

      \[\leadsto \sqrt{\mathsf{fma}\left(t, 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)} \cdot {\color{blue}{\left({\left(\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right)}^{-1}\right)}}^{\frac{-1}{2}} \]
    24. pow-powN/A

      \[\leadsto \sqrt{\mathsf{fma}\left(t, 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)} \cdot \color{blue}{{\left(\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right)}^{\left(-1 \cdot \frac{-1}{2}\right)}} \]
    25. metadata-evalN/A

      \[\leadsto \sqrt{\mathsf{fma}\left(t, 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)} \cdot {\left(\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right)}^{\color{blue}{\frac{1}{2}}} \]
    26. unpow1/2N/A

      \[\leadsto \sqrt{\mathsf{fma}\left(t, 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)} \cdot \color{blue}{\sqrt{\mathsf{fma}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, t, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}} \]
    27. lower-sqrt.f6499.1

      \[\leadsto \sqrt{\mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, -1.7 \cdot 10^{+308}\right)} \cdot \color{blue}{\sqrt{\mathsf{fma}\left(1.7 \cdot 10^{+308}, t, -1.7 \cdot 10^{+308}\right)}} \]
    28. lift-fma.f64N/A

      \[\leadsto \sqrt{\mathsf{fma}\left(t, 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)} \cdot \sqrt{\color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot t + -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}} \]
    29. *-commutativeN/A

      \[\leadsto \sqrt{\mathsf{fma}\left(t, 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)} \cdot \sqrt{\color{blue}{t \cdot 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000} + -170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000} \]
    30. lift-fma.f6499.1

      \[\leadsto \sqrt{\mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, -1.7 \cdot 10^{+308}\right)} \cdot \sqrt{\color{blue}{\mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, -1.7 \cdot 10^{+308}\right)}} \]
  6. Applied rewrites99.1%

    \[\leadsto \color{blue}{\sqrt{\mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, -1.7 \cdot 10^{+308}\right)} \cdot \sqrt{\mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, -1.7 \cdot 10^{+308}\right)}} \]
  7. Taylor expanded in t around inf

    \[\leadsto \color{blue}{t \cdot \left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot \frac{1}{t}\right)} \]
  8. Step-by-step derivation
    1. lower-*.f64N/A

      \[\leadsto \color{blue}{t \cdot \left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot \frac{1}{t}\right)} \]
    2. sub-negN/A

      \[\leadsto t \cdot \color{blue}{\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + \left(\mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot \frac{1}{t}\right)\right)\right)} \]
    3. lower-+.f64N/A

      \[\leadsto t \cdot \color{blue}{\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + \left(\mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot \frac{1}{t}\right)\right)\right)} \]
    4. associate-*r/N/A

      \[\leadsto t \cdot \left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + \left(\mathsf{neg}\left(\color{blue}{\frac{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot 1}{t}}\right)\right)\right) \]
    5. metadata-evalN/A

      \[\leadsto t \cdot \left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + \left(\mathsf{neg}\left(\frac{\color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}}{t}\right)\right)\right) \]
    6. distribute-neg-fracN/A

      \[\leadsto t \cdot \left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + \color{blue}{\frac{\mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)}{t}}\right) \]
    7. metadata-evalN/A

      \[\leadsto t \cdot \left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + \frac{\color{blue}{-170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}}{t}\right) \]
    8. lower-/.f6499.6

      \[\leadsto t \cdot \left(1.7 \cdot 10^{+308} + \color{blue}{\frac{-1.7 \cdot 10^{+308}}{t}}\right) \]
  9. Applied rewrites99.6%

    \[\leadsto \color{blue}{t \cdot \left(1.7 \cdot 10^{+308} + \frac{-1.7 \cdot 10^{+308}}{t}\right)} \]
  10. Add Preprocessing

Alternative 2: 99.6% accurate, 1.3× speedup?

\[\begin{array}{l} \\ \mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, -1.7 \cdot 10^{+308}\right) \end{array} \]
(FPCore (t) :precision binary64 (fma t 1.7e+308 -1.7e+308))
double code(double t) {
	return fma(t, 1.7e+308, -1.7e+308);
}
function code(t)
	return fma(t, 1.7e+308, -1.7e+308)
end
code[t_] := N[(t * 1.7e+308 + -1.7e+308), $MachinePrecision]
\begin{array}{l}

\\
\mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, -1.7 \cdot 10^{+308}\right)
\end{array}
Derivation
  1. Initial program 35.5%

    \[1.7 \cdot 10^{+308} \cdot t - 1.7 \cdot 10^{+308} \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. lift-*.f64N/A

      \[\leadsto \color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot t} - 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \]
    2. sub-negN/A

      \[\leadsto \color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot t + \left(\mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right)} \]
    3. lift-*.f64N/A

      \[\leadsto \color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot t} + \left(\mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right) \]
    4. *-commutativeN/A

      \[\leadsto \color{blue}{t \cdot 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000} + \left(\mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right) \]
    5. lower-fma.f64N/A

      \[\leadsto \color{blue}{\mathsf{fma}\left(t, 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, \mathsf{neg}\left(170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\right)\right)} \]
    6. metadata-eval99.6

      \[\leadsto \mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, \color{blue}{-1.7 \cdot 10^{+308}}\right) \]
  4. Applied rewrites99.6%

    \[\leadsto \color{blue}{\mathsf{fma}\left(t, 1.7 \cdot 10^{+308}, -1.7 \cdot 10^{+308}\right)} \]
  5. Add Preprocessing

Alternative 3: 34.7% accurate, 1.5× speedup?

\[\begin{array}{l} \\ t \cdot 1.7 \cdot 10^{+308} \end{array} \]
(FPCore (t) :precision binary64 (* t 1.7e+308))
double code(double t) {
	return t * 1.7e+308;
}
real(8) function code(t)
    real(8), intent (in) :: t
    code = t * 1.7d+308
end function
public static double code(double t) {
	return t * 1.7e+308;
}
def code(t):
	return t * 1.7e+308
function code(t)
	return Float64(t * 1.7e+308)
end
function tmp = code(t)
	tmp = t * 1.7e+308;
end
code[t_] := N[(t * 1.7e+308), $MachinePrecision]
\begin{array}{l}

\\
t \cdot 1.7 \cdot 10^{+308}
\end{array}
Derivation
  1. Initial program 35.5%

    \[1.7 \cdot 10^{+308} \cdot t - 1.7 \cdot 10^{+308} \]
  2. Add Preprocessing
  3. Taylor expanded in t around inf

    \[\leadsto \color{blue}{170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \cdot t} \]
  4. Step-by-step derivation
    1. lower-*.f6435.5

      \[\leadsto \color{blue}{1.7 \cdot 10^{+308} \cdot t} \]
  5. Applied rewrites35.5%

    \[\leadsto \color{blue}{1.7 \cdot 10^{+308} \cdot t} \]
  6. Final simplification35.5%

    \[\leadsto t \cdot 1.7 \cdot 10^{+308} \]
  7. Add Preprocessing

Alternative 4: 0.0% accurate, 9.0× speedup?

\[\begin{array}{l} \\ -1.7 \cdot 10^{+308} \end{array} \]
(FPCore (t) :precision binary64 -1.7e+308)
double code(double t) {
	return -1.7e+308;
}
real(8) function code(t)
    real(8), intent (in) :: t
    code = -1.7d+308
end function
public static double code(double t) {
	return -1.7e+308;
}
def code(t):
	return -1.7e+308
function code(t)
	return -1.7e+308
end
function tmp = code(t)
	tmp = -1.7e+308;
end
code[t_] := -1.7e+308
\begin{array}{l}

\\
-1.7 \cdot 10^{+308}
\end{array}
Derivation
  1. Initial program 35.5%

    \[1.7 \cdot 10^{+308} \cdot t - 1.7 \cdot 10^{+308} \]
  2. Add Preprocessing
  3. Taylor expanded in t around 0

    \[\leadsto \color{blue}{-170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000} \]
  4. Step-by-step derivation
    1. Applied rewrites0.0%

      \[\leadsto \color{blue}{-1.7 \cdot 10^{+308}} \]
    2. Add Preprocessing

    Developer Target 1: 99.6% accurate, 1.0× speedup?

    \[\begin{array}{l} \\ \mathsf{fma}\left(1.7 \cdot 10^{+308}, t, -1.7 \cdot 10^{+308}\right) \end{array} \]
    (FPCore (t) :precision binary64 (fma 1.7e+308 t (- 1.7e+308)))
    double code(double t) {
    	return fma(1.7e+308, t, -1.7e+308);
    }
    
    function code(t)
    	return fma(1.7e+308, t, Float64(-1.7e+308))
    end
    
    code[t_] := N[(1.7e+308 * t + (-1.7e+308)), $MachinePrecision]
    
    \begin{array}{l}
    
    \\
    \mathsf{fma}\left(1.7 \cdot 10^{+308}, t, -1.7 \cdot 10^{+308}\right)
    \end{array}
    

    Reproduce

    ?
    herbie shell --seed 2024216 
    (FPCore (t)
      :name "fma_test2"
      :precision binary64
      :pre (and (<= 1.9 t) (<= t 2.1))
    
      :alt
      (! :herbie-platform default (let ((x 170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)) (fma x t (- x))))
    
      (- (* 1.7e+308 t) 1.7e+308))