They are not as intuitive to use as one would think.
First, the imaginary unit "j" can't be used alone. "1 + j" must be written "1 + 1j".
Second, the real and imaginary parts are attributes of complex numbers, as in "(1+1j).real", "(1+1j).imag". An AttributeError exception will be raised if these attributes are taken for a noncomplex number. Either catch the exception, or cast the variable to complex before using real and imag.
Third, complex conjugation is a method defined by complex objects, as in "(1+1j).conjugate()". As above, either catch the AttributeError, or cast to complex.
At least Numeric defines the ufunc "conjugate" for arrays, complex or not.
© M. Vallisneri 2012 — last modified on 2010/01/29
Tantum in modicis, quantum in maximis