arithmoi-0.8.0.0: Efficient basic number-theoretic functions.

Copyright(c) 2016 Chris Fredrickson Google Inc.
LicenseMIT
MaintainerChris Fredrickson <chris.p.fredrickson@gmail.com>
StabilityProvisional
PortabilityNon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

Math.NumberTheory.Quadratic.GaussianIntegers

Description

This module exports functions for manipulating Gaussian integers, including computing their prime factorisations.

Synopsis

Documentation

data GaussianInteger #

A Gaussian integer is a+bi, where a and b are both integers.

Constructors

(:+) infix 6 

Fields

Instances
Eq GaussianInteger # 
Instance details

Defined in Math.NumberTheory.Quadratic.GaussianIntegers

Num GaussianInteger # 
Instance details

Defined in Math.NumberTheory.Quadratic.GaussianIntegers

Ord GaussianInteger # 
Instance details

Defined in Math.NumberTheory.Quadratic.GaussianIntegers

Show GaussianInteger # 
Instance details

Defined in Math.NumberTheory.Quadratic.GaussianIntegers

Generic GaussianInteger # 
Instance details

Defined in Math.NumberTheory.Quadratic.GaussianIntegers

Associated Types

type Rep GaussianInteger :: Type -> Type #

NFData GaussianInteger # 
Instance details

Defined in Math.NumberTheory.Quadratic.GaussianIntegers

Methods

rnf :: GaussianInteger -> () #

Euclidean GaussianInteger # 
Instance details

Defined in Math.NumberTheory.Quadratic.GaussianIntegers

UniqueFactorisation GaussianInteger # 
Instance details

Defined in Math.NumberTheory.UniqueFactorisation

type Rep GaussianInteger # 
Instance details

Defined in Math.NumberTheory.Quadratic.GaussianIntegers

type Rep GaussianInteger = D1 (MetaData "GaussianInteger" "Math.NumberTheory.Quadratic.GaussianIntegers" "arithmoi-0.8.0.0-Ftez8dIesWQKMkz5XwjUs4" False) (C1 (MetaCons ":+" PrefixI True) (S1 (MetaSel (Just "real") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Integer) :*: S1 (MetaSel (Just "imag") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Integer)))
type Prime GaussianInteger # 
Instance details

Defined in Math.NumberTheory.UniqueFactorisation

ι :: GaussianInteger #

The imaginary unit, where

ι .^ 2 == -1

conjugate :: GaussianInteger -> GaussianInteger #

Conjugate a Gaussian integer.

norm :: GaussianInteger -> Integer #

The square of the magnitude of a Gaussian integer.

(.^) :: Integral a => GaussianInteger -> a -> GaussianInteger infixr 8 #

Deprecated: Use (^) instead.

Raise a Gaussian integer to a given power.

isPrime :: GaussianInteger -> Bool #

Compute whether a given Gaussian integer is prime.

primes :: [GaussianInteger] #

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 #

Deprecated: Use gcd instead.

Compute the GCD of two Gaussian integers. Result is always in the first quadrant.

gcdG' :: GaussianInteger -> GaussianInteger -> GaussianInteger #

Deprecated: Use gcd instead.

findPrime :: Integer -> GaussianInteger #

Find a Gaussian integer whose norm is the given prime number of form 4k + 1 using Hermite-Serret algorithm.

findPrime' :: Integer -> GaussianInteger #

Deprecated: Use findPrime instead.

factorise :: GaussianInteger -> [(GaussianInteger, Int)] #

Compute the prime factorisation of a Gaussian integer. This is unique up to units (+- 1, +- i). Unit factors are not included in the result.