A complex variable or value is usually represented as a pair of floating point numbers. Languages that support a complex data type usually provide special syntax for building such values, and extend the basic arithmetic operations ('+', '−', '×', '÷') to act on them. These operations are usually translated by the compiler into a sequence of floating-point machine instructions or into library calls. Those languages may also provide support for other operations, such as formatting, equality testing, etc. As in mathematics, those languages often interpret a floating-point value as equivalent to a complex value with a zero imaginary part.
complextemplate class as well as complex math functions in the
complex64(each component is 32-bit float) and
complex128(each component is 64-bit float)
complextype. Imaginary number literals can be specified by appending a "j". Complex math functions are provided in the standard library module
? (sqrt -1) #C(0 1) ; the result of (sqrt -1)
sin) are included in the language specification. Their implementation is however optional in the R5RS standard, while in R6RS is mandatory.
This section needs expansion. You can help by adding to it. (November 2015)