?

\[\left(e^{x} - 2\right) + e^{-x} \]
(FPCore (x) :precision binary64 (+ (- (exp x) 2.0) (exp (- x))))
double code(double x) {
	return (exp(x) - 2.0) + exp(-x);
}
real(8) function code(x)
    real(8), intent (in) :: x
    code = (exp(x) - 2.0d0) + exp(-x)
end function
public static double code(double x) {
	return (Math.exp(x) - 2.0) + Math.exp(-x);
}
def code(x):
	return (math.exp(x) - 2.0) + math.exp(-x)
function code(x)
	return Float64(Float64(exp(x) - 2.0) + exp(Float64(-x)))
end
function tmp = code(x)
	tmp = (exp(x) - 2.0) + exp(-x);
end
code[x_] := N[(N[(N[Exp[x], $MachinePrecision] - 2.0), $MachinePrecision] + N[Exp[(-x)], $MachinePrecision]), $MachinePrecision]
\left(e^{x} - 2\right) + e^{-x}

Reproduce?

Please include this information when filing a bug report:

herbie shell --seed 2023096 
(FPCore (x)
  :name "exp2 (problem 3.3.7)"
  :precision binary64

  :herbie-target
  (* 4.0 (pow (sinh (/ x 2.0)) 2.0))

  (+ (- (exp x) 2.0) (exp (- x))))

Backtrace

match-define: no matching clause for '((x +.f64 (exp.f64 x) (+.f64 (exp.f64 x) -2)))LC
program-body/home/nightlies/herbie/remove-change/src/programs.rkt210
(unnamed)/usr/share/racket/collects/racket/contract/private/arrow-higher-order.rkt37933
gen-rewrites!/home/nightlies/herbie/remove-change/src/patch.rkt1450
patch-table-run/home/nightlies/herbie/remove-change/src/patch.rkt2960
(unnamed)/usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt48618
run-iter!/home/nightlies/herbie/remove-change/src/mainloop.rkt2670
mutate!/home/nightlies/herbie/remove-change/src/mainloop.rkt3770
run-improve!/home/nightlies/herbie/remove-change/src/mainloop.rkt3250
run-herbie/home/nightlies/herbie/remove-change/src/sandbox.rkt570
(unnamed)/home/nightlies/herbie/remove-change/src/sandbox.rkt1336
(unnamed)/usr/share/racket/pkgs/profile-lib/main.rkt4010
profile-thunk/usr/share/racket/pkgs/profile-lib/main.rkt90
(unnamed)/usr/share/racket/collects/racket/engine.rkt4224