The type complex includes all mathematical complex numbers other than those included in the type rational. Complexes are
expressed in Cartesian form with a real part and an imaginary part, each of which is a real. The real part and imaginary part are either both rational or both of the same float type. The imaginary part can be a float zero, but can never be a rational zero, for such a number is always represented by Common Lisp as a rational rather than a complex.
Specializing.
Every element of this type is a complex whose real part and imaginary part are each of type (upgraded-complex-part-type typespec)
.
This type encompasses those complexes that can result by giving numbers of type typespec to complex.
(complex type-specifier)]]
refers to all complexes that can result from giving numbers of type type-specifier to the function complex, plus all other complexes of the same specialized representation.
The input syntax for a complex with real part r
and imaginary part i
is #C(r i)
. For further details, see section {\secref\StandardMacroChars}.
For every float, n
, there is a complex which represents the same mathematical number and which can be obtained by (COERCE ''n'' 'COMPLEX).
\issue{ARRAY-TYPE-ELEMENT-TYPE-SEMANTICS:UNIFY-UPGRADING} \issue{ARRAY-TYPE-ELEMENT-TYPE-SEMANTICS:UNIFY-UPGRADING}