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

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 Source # 
Eq Process Source # 

Methods

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

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

Ord Process Source # 
Read Process Source # 
Show Process Source # 
Generic Process Source # 

Associated Types

type Rep Process :: * -> * #

Methods

from :: Process -> Rep Process x #

to :: Rep Process x -> Process #

Pretty Process Source # 

Methods

pretty :: Process -> Doc ann #

prettyList :: [Process] -> Doc ann #

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

data Path Source #

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

Constructors

Path !ProcessMatrix ![Process] 

Instances

Eq Path Source # 

Methods

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

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

Ord Path Source # 

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 Source # 
Show Path Source # 

Methods

showsPrec :: Int -> Path -> ShowS #

show :: Path -> String #

showList :: [Path] -> ShowS #

Generic Path Source # 

Associated Types

type Rep Path :: * -> * #

Methods

from :: Path -> Rep Path x #

to :: Rep Path x -> Path #

Semigroup Path Source # 

Methods

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

sconcat :: NonEmpty Path -> Path #

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

Monoid Path Source # 

Methods

mempty :: Path #

mappend :: Path -> Path -> Path #

mconcat :: [Path] -> Path #

Pretty Path Source # 

Methods

pretty :: Path -> Doc ann #

prettyList :: [Path] -> Doc ann #

type Rep Path Source # 
type Rep Path = D1 * (MetaData "Path" "Math.ExpPairs.Process" "exp-pairs-0.1.6.0-Gtd6e9LEtfhDqv5Iz3ymUo" False) (C1 * (MetaCons "Path" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * ProcessMatrix)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * [Process]))))

aPath :: Path Source #

Path consisting of a single process A.

baPath :: Path Source #

Path consisting of a single process BA.

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

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

lengthPath :: Path -> Int Source #

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