.BG
.FN complex
.FN is.complex
.FN as.complex
.TL
Complex-valued Objects
.CS
complex(length=0, real=0, imaginary=0,
        modulus=1, argument=0)
is.complex(x)
as.complex(x)
.AG length
length of returned object.
.AG real
vector of real parts for use in construction of return value.
.AG imaginary
vector of imaginary parts for use in construction of return value.
.AG modulus
vector of moduli for use in construction of return value.
.AG argument
vector of arguments for use in construction of return value.
.AG x
any S object.
.RT
`complex' returns a simple object of mode complex.
If `real' and/or `imaginary' are specified, the real and/or
imaginary parts of the result are set from them, using the defaults
if necessary.
If `modulus' and/or `argument' are specified, the modulus and/or
argument of the result are set from them, using the defaults
if necessary.
If either of `real' or `imaginary' is specified, neither
`modulus' nor `argument' may be specified, and vice versa.
.PP
`is.complex' returns `TRUE' if `x' is has mode complex, and
`FALSE' otherwise.
Its behavior is unaffected by any attributes of `x'; for example, `x' could
be a complex array (in contrast to the behavior of `is.vector').
.PP
`as.complex' returns `x' if `x' is a simple object of mode complex, and
otherwise a complex object of the same length as `x' and with data resulting
from coercing the elements of `x' to mode complex.
.EX
unit.disk <- complex(arg=runif(50,-pi,pi))
	#50 random complex numbers, uniform on the unit circle
.KW classes
.KW complex
.WR
