When a is on the imaginary axis, max(%i*a,3) is just fine. So a nounform is OK. (%i3) max(%i*a, 3); (%o3) max(3,%i*a) Not useful or informative: (%i4) compare(%i*a,3); (%o4) notcomparable Maybe compare shouldn't be a user-level function (private to simp-max and simp-min). --bw