exp-pairs-0.1.1.0: Linear programming over exponent pairs

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

Math.ExpPairs

Description

Package implements an algorithm to minimize the maximum of a list of rational objective functions over the set of exponent pairs. See full description in A. V. Lelechenko, Linear programming over exponent pairs. Acta Univ. Sapientiae, Inform. 5, No. 2, 271-287 (2013). http://www.acta.sapientia.ro/acta-info/C5-2/info52-7.pdf

A set of useful applications can be found in Math.ExpPairs.Ivic, Math.ExpPairs.Kratzel and Math.ExpPairs.MenzerNowak.

Synopsis

Documentation

optimize :: [RationalForm Rational] -> [Constraint Rational] -> OptimizeResult Source

This function takes a list of rational forms and a list of constraints and returns an exponent pair, which satisfies all constraints and minimizes the maximum of all rational forms.

data OptimizeResult Source

Container for the result of optimization.

optimalValue :: OptimizeResult -> RationalInf Source

The minimal value of objective function.

optimalPair :: OptimizeResult -> InitPair Source

The initial exponent pair, on which minimal value was achieved.

optimalPath :: OptimizeResult -> Path Source

The sequence of processes, after which minimal value was achieved.

data LinearForm t Source

Define an affine linear form of two variables: a*k + b*l + c*m. First argument of LinearForm stands for a, second for b and third for c. Linear forms form a monoid by addition.

Constructors

LinearForm t t t 

Instances

Eq t => Eq (LinearForm t) 
Num t => Num (LinearForm t) 
(Num t, Eq t, Show t) => Show (LinearForm t) 
Num t => Monoid (LinearForm t) 

data RationalForm t Source

Define a rational form of two variables, equal to the ratio of two LinearForm.

Constructors

RationalForm (LinearForm t) (LinearForm t) 

Instances

Num t => Fractional (RationalForm t) 
Num t => Num (RationalForm t) 
(Eq t, Num t, Show t) => Show (RationalForm t) 

data IneqType Source

Constants to specify the strictness of Constraint.

Constructors

Strict

Strict inequality (>0).

NonStrict

Non-strict inequality (≥0).

Instances

data Constraint t Source

A linear constraint of two variables.

Constructors

Constraint (LinearForm t) IneqType 

Instances

(Eq t, Num t, Show t) => Show (Constraint t) 

type InitPair = InitPair' Rational Source

Exponent pair built from rational fractions of Corput16, HuxW87b1 and Hux05

data Path Source

Holds a list of Process and a matrix of projective transformation, which they define. It also provides a fancy Show instance. E. g.,

show (mconcat $ replicate 10 aPath) == "A^10"

data RatioInf t Source

Extends a rational type with positive and negative infinities.

Constructors

InfMinus

Negative infinity

Finite (Ratio t)

Finite value

InfPlus

Positive infinity

Instances

Eq t => Eq (RatioInf t) 
Integral t => Fractional (RatioInf t) 
Integral t => Num (RatioInf t) 
Integral t => Ord (RatioInf t) 
Integral t => Real (RatioInf t) 
(Integral t, Show t) => Show (RatioInf t) 

type RationalInf = RatioInf Integer Source

Arbitrary-precision rational numbers with positive and negative infinities.