G.5.2 Additive operators
Semantics
If both operands have imaginary type, then the result has imaginary type. (If one operand has real type and the other operand has imaginary type, or if either operand has complex type, then the result has complex type.)
In all cases the result and floating-point exception behavior of a + or - operator is defined by the usual mathematical formula:
+ or - u iv u + iv
x x(+-)u x (+-) iv (x (+-) u) (+-) iv
iy (+-)u + iy i(y (+-) v) (+-)u + i(y (+-) v)
x + iy (x (+-) u) + iy x + i(y (+-) v) (x (+-) u) + i(y (+-) v)