The imaginary unit is i, an ordinary constant. Juxtaposition is already multiplication, so 4i is 4*i and needs no special number syntax — the same reading that makes 2e mean 2*e.
Arithmetic. Any operation with a complex operand on either side answers complex, promoting the real one.
i squared is where the whole thing comes from.
Taking a value apart. Re and Im give real numbers; Im is the coefficient of i, so Re(z) + Im(z)*i rebuilds z.
Whole powers only, by repeated multiplication. A fractional power of a complex number needs a branch cut, which this language does not choose.
A complex value stays complex. Nothing demotes when the imaginary part happens to be zero, so a result's type never depends on its value.
Units. Both parts share one dimension, because they are components of one measurement rather than two measurements.
The argument is an angle, so it is dimensionless whatever Z is measured in.
The impedance of a series RLC branch at one frequency, which is what the corpus uses complex arithmetic for.
A network is a collection of impedances, and until now each one had to be its own name. A vector holds them, sums to the series impedance, and comes apart elementwise into magnitudes and angles — which is what a table of the branch would show.
The same branch, split into the three impedances it is made of, using the resistance, inductance and capacitance already defined above.
Scaling the whole branch is one multiplication — two of everything in parallel halves each impedance.
What a complex vector does not do, it says. Ordering complex numbers has no meaning, so sort and min refuse one rather than answering emptily, and a matrix of complex numbers is not built at all.