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 |

Complex numbers.

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

# Rectangular form

Complex numbers are an algebraic type.

For a complex number `z`

,

is a number with the magnitude of `abs`

z`z`

,
but oriented in the positive real direction, whereas

has the phase of `signum`

z`z`

, but unit magnitude.

The `Foldable`

and `Traversable`

instances traverse the real part first.

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

Monad Complex # | |

Functor Complex # | |

Applicative Complex # | |

Foldable Complex # | |

Traversable Complex # | |

Generic1 Complex # | |

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) # | |

Generic (Complex a) # | |

Storable a => Storable (Complex a) # | |

type Rep1 Complex # | |

type Rep (Complex a) # | |

# Polar form

mkPolar :: Floating a => a -> a -> Complex a #

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