Copyright | (c) 2016 Chris Fredrickson Google Inc. |
---|---|
License | MIT |
Maintainer | Chris Fredrickson <chris.p.fredrickson@gmail.com> |
Stability | Provisional |
Portability | Non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell2010 |
Math.NumberTheory.Quadratic.GaussianIntegers
Description
This module exports functions for manipulating Gaussian integers, including computing their prime factorisations.
Synopsis
- data GaussianInteger = (:+) {}
- ι :: GaussianInteger
- conjugate :: GaussianInteger -> GaussianInteger
- norm :: GaussianInteger -> Integer
- (.^) :: Integral a => GaussianInteger -> a -> GaussianInteger
- isPrime :: GaussianInteger -> Bool
- primes :: [GaussianInteger]
- gcdG :: GaussianInteger -> GaussianInteger -> GaussianInteger
- gcdG' :: GaussianInteger -> GaussianInteger -> GaussianInteger
- findPrime :: Integer -> GaussianInteger
- findPrime' :: Integer -> GaussianInteger
- factorise :: GaussianInteger -> [(GaussianInteger, Int)]
Documentation
data GaussianInteger Source #
A Gaussian integer is a+bi, where a and b are both integers.
Instances
ι :: GaussianInteger Source #
The imaginary unit, where
ι .^ 2 == -1
conjugate :: GaussianInteger -> GaussianInteger Source #
Conjugate a Gaussian integer.
norm :: GaussianInteger -> Integer Source #
The square of the magnitude of a Gaussian integer.
(.^) :: Integral a => GaussianInteger -> a -> GaussianInteger infixr 8 Source #
Deprecated: Use (^) instead.
Raise a Gaussian integer to a given power.
isPrime :: GaussianInteger -> Bool Source #
Compute whether a given Gaussian integer is prime.
primes :: [GaussianInteger] Source #
An infinite list of the Gaussian primes. Uses primes in Z to exhaustively generate all Gaussian primes (up to associates), in order of ascending magnitude.
gcdG :: GaussianInteger -> GaussianInteger -> GaussianInteger Source #
Deprecated: Use gcd
instead.
Compute the GCD of two Gaussian integers. Result is always in the first quadrant.
gcdG' :: GaussianInteger -> GaussianInteger -> GaussianInteger Source #
Deprecated: Use gcd
instead.
findPrime :: Integer -> GaussianInteger Source #
Find a Gaussian integer whose norm is the given prime number of form 4k + 1 using Hermite-Serret algorithm.
findPrime' :: Integer -> GaussianInteger Source #
Deprecated: Use findPrime
instead.
factorise :: GaussianInteger -> [(GaussianInteger, Int)] Source #
Compute the prime factorisation of a Gaussian integer. This is unique up to units (+- 1, +- i). Unit factors are not included in the result.