?

Average Error: 64.0 → 0.3
Time: 2.0min
Precision: binary64
Cost: 320

?

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

Error?

Try it out?

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original64.0
Target0.3
Herbie0.3
\[\mathsf{fma}\left(1.7 \cdot 10^{+308}, t, -1.7 \cdot 10^{+308}\right) \]

Derivation?

  1. Initial program 64.0

    \[1.7 \cdot 10^{+308} \cdot t - 1.7 \cdot 10^{+308} \]
  2. Applied egg-rr0.3

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

Alternatives

Alternative 1
Error64.0
Cost64
\[-1.7 \cdot 10^{+308} \]

Error

Reproduce?

herbie shell --seed 2023033 
(FPCore (t)
  :name "fma_test2"
  :precision binary64
  :pre (and (<= 1.9 t) (<= t 2.1))

  :herbie-target
  (fma 1.7e+308 t (- 1.7e+308))

  (- (* 1.7e+308 t) 1.7e+308))