exp-pairs-0.1.6.0: Linear programming over exponent pairs

Copyright(c) Andrew Lelechenko 2014-2015
LicenseGPL-3
Maintainerandrew.lelechenko@gmail.com
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Math.ExpPairs.Process

Description

Provides types for sequences of A- and B-processes of van der Corput. A good account on this topic can be found in Graham S. W., Kolesnik G. A. Van Der Corput's Method of Exponential Sums, Cambridge University Press, 1991, especially Ch. 5.

Synopsis

Documentation

data Process #

Since B^2 = id, B Corput16 = Corput16, B Hux05 = Hux05 and B HuxW87b1 = ???, the sequence of A- and B-processes, applied to initPairs can be rewritten as a sequence of A and BA.

Instances
Enum Process # 
Instance details

Defined in Math.ExpPairs.ProcessMatrix

Eq Process # 
Instance details

Defined in Math.ExpPairs.ProcessMatrix

Methods

(==) :: Process -> Process -> Bool #

(/=) :: Process -> Process -> Bool #

Ord Process # 
Instance details

Defined in Math.ExpPairs.ProcessMatrix

Read Process # 
Instance details

Defined in Math.ExpPairs.ProcessMatrix

Show Process # 
Instance details

Defined in Math.ExpPairs.ProcessMatrix

Generic Process # 
Instance details

Defined in Math.ExpPairs.ProcessMatrix

Associated Types

type Rep Process :: * -> * #

Methods

from :: Process -> Rep Process x #

to :: Rep Process x -> Process #

Pretty Process # 
Instance details

Defined in Math.ExpPairs.ProcessMatrix

Methods

pretty :: Process -> Doc ann #

prettyList :: [Process] -> Doc ann #

type Rep Process # 
Instance details

Defined in Math.ExpPairs.ProcessMatrix

type Rep Process = D1 (MetaData "Process" "Math.ExpPairs.ProcessMatrix" "exp-pairs-0.1.6.0-A57bvNSkfW36XePlDuMIT4" False) (C1 (MetaCons "A" PrefixI False) (U1 :: * -> *) :+: C1 (MetaCons "BA" PrefixI False) (U1 :: * -> *))

data Path #

Holds a list of Process and a matrix of projective transformation, which they define.

Constructors

Path !ProcessMatrix ![Process] 
Instances
Eq Path # 
Instance details

Defined in Math.ExpPairs.Process

Methods

(==) :: Path -> Path -> Bool #

(/=) :: Path -> Path -> Bool #

Ord Path # 
Instance details

Defined in Math.ExpPairs.Process

Methods

compare :: Path -> Path -> Ordering #

(<) :: Path -> Path -> Bool #

(<=) :: Path -> Path -> Bool #

(>) :: Path -> Path -> Bool #

(>=) :: Path -> Path -> Bool #

max :: Path -> Path -> Path #

min :: Path -> Path -> Path #

Read Path # 
Instance details

Defined in Math.ExpPairs.Process

Show Path # 
Instance details

Defined in Math.ExpPairs.Process

Methods

showsPrec :: Int -> Path -> ShowS #

show :: Path -> String #

showList :: [Path] -> ShowS #

Generic Path # 
Instance details

Defined in Math.ExpPairs.Process

Associated Types

type Rep Path :: * -> * #

Methods

from :: Path -> Rep Path x #

to :: Rep Path x -> Path #

Semigroup Path # 
Instance details

Defined in Math.ExpPairs.Process

Methods

(<>) :: Path -> Path -> Path #

sconcat :: NonEmpty Path -> Path #

stimes :: Integral b => b -> Path -> Path #

Monoid Path # 
Instance details

Defined in Math.ExpPairs.Process

Methods

mempty :: Path #

mappend :: Path -> Path -> Path #

mconcat :: [Path] -> Path #

Pretty Path # 
Instance details

Defined in Math.ExpPairs.Process

Methods

pretty :: Path -> Doc ann #

prettyList :: [Path] -> Doc ann #

type Rep Path # 
Instance details

Defined in Math.ExpPairs.Process

aPath :: Path #

Path consisting of a single process A.

baPath :: Path #

Path consisting of a single process BA.

evalPath :: Num t => Path -> (t, t, t) -> (t, t, t) #

Apply a projective transformation, defined by Path, to a given point in two-dimensional projective space.

lengthPath :: Path -> Int #

Count processes in the Path. Note that BA counts for one process, not two.