base-4.7.0.0: Basic libraries

Copyright | (c) The University of Glasgow 2001
License | BSD-style (see the file libraries/base/LICENSE)
Maintainer | libraries@haskell.org
Stability | provisional
Portability | portable
Safe Haskell | Trustworthy
Language | Haskell2010

Data.Complex

Contents

- Rectangular form
- Polar form
- Conjugate

Description

Complex numbers.

Synopsis

- data Complex a = !a :+ !a
- realPart :: RealFloat a => Complex a -> a
- imagPart :: RealFloat a => Complex a -> a
- mkPolar :: RealFloat a => a -> a -> Complex a
- cis :: RealFloat a => a -> Complex a
- polar :: RealFloat a => Complex a -> (a, a)
- magnitude :: RealFloat a => Complex a -> a
- phase :: RealFloat a => Complex a -> a
- conjugate :: RealFloat a => Complex a -> Complex a

# Rectangular form

data Complex a

Complex numbers are an algebraic type.

For a complex number `z`, ``abs` z` is a number with the magnitude of `z`, but oriented in the positive real direction, whereas ``signum` z` has the phase of `z`, but unit magnitude.

Constructors

!a :+ !a infix 6 | forms a complex number from its real and imaginary rectangular components.

Instances

Eq a => Eq (Complex a) |
RealFloat a => Floating (Complex a) |
RealFloat a => Fractional (Complex a) |
Data a => Data (Complex a) |
RealFloat a => Num (Complex a) |
Read a => Read (Complex a) |
Show a => Show (Complex a) |
Typeable (* -> *) Complex |

realPart :: RealFloat a => Complex a -> a

Extracts the real part of a complex number.

imagPart :: RealFloat a => Complex a -> a

Extracts the imaginary part of a complex number.

# Polar form

mkPolar :: RealFloat a => a -> a -> Complex a

Form a complex number from polar components of magnitude and phase.

cis :: RealFloat a => a -> Complex a

``cis` t` is a complex value with magnitude `1` and phase `t` (modulo `2*`pi``).

polar :: RealFloat a => Complex a -> (a, a)

The function `polar` takes a complex number and returns a (magnitude, phase) pair in canonical form: the magnitude is nonnegative, and the phase in the range `(-`pi`, `pi`]`; if the magnitude is zero, then so is the phase.

magnitude :: RealFloat a => Complex a -> a

The nonnegative magnitude of a complex number.

phase :: RealFloat a => Complex a -> a

The phase of a complex number, in the range `(-`pi`, `pi`]`. If the magnitude is zero, then so is the phase.

# Conjugate

conjugate :: RealFloat a => Complex a -> Complex a

The conjugate of a complex number.