- Complex data type
-
Some programming languages provide a complex data type for complex number storage and arithmetic as a built-in (primitive) data type.
In some programming environments the term complex data type (in contrast to primitive data types) is a synonym to the composite data type.[1][2]
Contents
Complex number arithmetic
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.
Language support
- The FORTRAN's type COMPLEX
- The C99 standard of the C programming language includes complex data types and complex math functions in the standard library header
<complex.h>
- The C++ standard library provides a
complex
templated class as well as complex math functions in the header<complex>
- The Perl core module Math::Complex provides support for complex numbers
- Python support complex numbers built-in with the type
complex
. Imaginary number literals can be specified by appending a "j". Complex math functions are provided in the standard library modulecmath
[3] - Ruby provides a Complex class in the standard library module complex
- OCaml supports complex numbers with the standard library module Complex
- Haskell supports complex numbers with the standard library module Complex
- The Apache Commons Math library provides complex numbers for Java with its Complex class
- Common Lisp: The ANSI Common Lisp standard supports complex numbers of floats and arbitrary precision integers. Its basic mathematical functions are defined for complex numbers, where applicable. For example the square root of -1 is a complex number:
? (sqrt -1) #C(0 1) ; the result of (sqrt -1)
- Scheme: Complex numbers and functions (e.g.
sin
) are included in the language specification. Their implementation is however optional in the R5RS standard, while in R6RS is mandatory. - The .NET Framework provides System.Numerics.Complex since version 4.0.
History
The
COMPLEX
data type was provided in FORTRAN IV.[4]References
- ^ IBM Informix Database Design and Implementation Guide
- ^ Flash 8 Documentation[dead link]
- ^ Python v2.6.5 documentation
- ^ A guide to Fortran IV programming Daniel D. McCracken - 1972 - 288 pages. "The capability provided by Fortran complex operations is a great savings in programming effort in certain problems. "
Data types Uninterpreted Numeric - Integer
- Fixed-point
- Floating-point
- Rational
- Complex
- Bignum
- Interval
- Decimal
Text Pointer Composite Other - Boolean
- Bottom type
- Collection
- Enumerated type
- Exception
- Function type
- Opaque data type
- Recursive data type
- Semaphore
- Stream
- Top type
- Type class
- Unit type
- Void
Related topics - Abstract data type
- Data structure
- Interface
- Kind
- Primitive data type
- Subtyping
- Template
- Type constructor
- Parametric polymorphism
Categories:- Data types
- Computer programming stubs
- Computer science stubs
Wikimedia Foundation. 2010.