\[re \cdot im + im \cdot re \]
(FPCore im_sqr (re im) :precision binary64 (+ (* re im) (* im re)))
double im_sqr(double re, double im) {
	return (re * im) + (im * re);
}
real(8) function im_sqr(re, im)
    real(8), intent (in) :: re
    real(8), intent (in) :: im
    im_sqr = (re * im) + (im * re)
end function
public static double im_sqr(double re, double im) {
	return (re * im) + (im * re);
}
def im_sqr(re, im):
	return (re * im) + (im * re)
function im_sqr(re, im)
	return Float64(Float64(re * im) + Float64(im * re))
end
function tmp = im_sqr(re, im)
	tmp = (re * im) + (im * re);
end
im$95$sqr[re_, im_] := N[(N[(re * im), $MachinePrecision] + N[(im * re), $MachinePrecision]), $MachinePrecision]
re \cdot im + im \cdot re

Reproduce

Please include this information when filing a bug report:

herbie shell --seed 2023010 
(FPCore im_sqr (re im)
  :name "math.square on complex, imaginary part"
  :precision binary64
  (+ (* re im) (* im re)))

Backtrace

map: contract violation expected: list? given: #<eof>LC
gen-map/usr/share/racket/collects/racket/private/map.rkt2572
run-egglog/home/nightlies/herbie/oflatt-egglog-ctx/src/egglog/run-egglog.rkt13320
run-simplify-input/home/nightlies/herbie/oflatt-egglog-ctx/src/core/simplify.rkt730
simplify-batch/home/nightlies/herbie/oflatt-egglog-ctx/src/core/simplify.rkt480
(unnamed)/usr/share/racket/collects/racket/contract/private/arrow-higher-order.rkt37933
get-swaps/home/nightlies/herbie/oflatt-egglog-ctx/src/symmetry.rkt60
connected-components/home/nightlies/herbie/oflatt-egglog-ctx/src/symmetry.rkt210
run-improve!/home/nightlies/herbie/oflatt-egglog-ctx/src/mainloop.rkt3200
(unnamed)/home/nightlies/herbie/oflatt-egglog-ctx/src/sandbox.rkt556
(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