halg-polynomials-0.6.0.0: Polynomial rings and basic Gröbner basis computation, part of halg computational algebra suite.
Safe HaskellNone
LanguageHaskell2010

Algebra.Algorithms.Groebner.SelectionStrategy

Synopsis

Documentation

class SelectionStrategy n s where Source #

Type-class for selection strategies in Buchberger's algorithm.

Associated Types

type Weight n s ord :: Type Source #

Methods

calcWeight :: (IsOrderedPolynomial poly, n ~ Arity poly) => Proxy s -> poly -> poly -> Weight n s (MOrder poly) Source #

Calculates the weight for the given pair of polynomial used for selection strategy.

Instances

Instances details
SelectionStrategy n GradedStrategy Source #

Choose the pair with the least LCM(LT(f), LT(g)) w.r.t. graded current ordering.

Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Associated Types

type Weight n GradedStrategy ord Source #

Methods

calcWeight :: (IsOrderedPolynomial poly, n ~ Arity poly) => Proxy GradedStrategy -> poly -> poly -> Weight n GradedStrategy (MOrder poly) Source #

SelectionStrategy n GrevlexStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Associated Types

type Weight n GrevlexStrategy ord Source #

Methods

calcWeight :: (IsOrderedPolynomial poly, n ~ Arity poly) => Proxy GrevlexStrategy -> poly -> poly -> Weight n GrevlexStrategy (MOrder poly) Source #

SelectionStrategy n NormalStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Associated Types

type Weight n NormalStrategy ord Source #

Methods

calcWeight :: (IsOrderedPolynomial poly, n ~ Arity poly) => Proxy NormalStrategy -> poly -> poly -> Weight n NormalStrategy (MOrder poly) Source #

SelectionStrategy n s => SelectionStrategy n (SugarStrategy s :: Type) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Associated Types

type Weight n (SugarStrategy s) ord Source #

Methods

calcWeight :: (IsOrderedPolynomial poly, n ~ Arity poly) => Proxy (SugarStrategy s) -> poly -> poly -> Weight n (SugarStrategy s) (MOrder poly) Source #

calcWeight' :: (SelectionStrategy (Arity poly) s, IsOrderedPolynomial poly) => s -> poly -> poly -> Weight (Arity poly) s (MOrder poly) Source #

Calculate the weight of given polynomials w.r.t. the given strategy. Buchberger's algorithm proccesses the pair with the most least weight first. This function requires the Ord instance for the weight; this constraint is not required in the calcWeight because of the ease of implementation. So use this function.

data GrevlexStrategy Source #

Choose the pair with the least LCM(LT(f), LT(g)) w.r.t. Grevlex order.

Constructors

GrevlexStrategy 

Instances

Instances details
Eq GrevlexStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Ord GrevlexStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Read GrevlexStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Show GrevlexStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

SelectionStrategy n GrevlexStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Associated Types

type Weight n GrevlexStrategy ord Source #

Methods

calcWeight :: (IsOrderedPolynomial poly, n ~ Arity poly) => Proxy GrevlexStrategy -> poly -> poly -> Weight n GrevlexStrategy (MOrder poly) Source #

type Weight n GrevlexStrategy ord Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

data NormalStrategy Source #

Buchberger's normal selection strategy. This selects the pair with the least LCM(LT(f), LT(g)) w.r.t. current monomial ordering.

Constructors

NormalStrategy 

Instances

Instances details
Eq NormalStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Ord NormalStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Read NormalStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Show NormalStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

SelectionStrategy n NormalStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Associated Types

type Weight n NormalStrategy ord Source #

Methods

calcWeight :: (IsOrderedPolynomial poly, n ~ Arity poly) => Proxy NormalStrategy -> poly -> poly -> Weight n NormalStrategy (MOrder poly) Source #

type Weight n NormalStrategy ord Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

newtype SugarStrategy s Source #

Sugar strategy. This chooses the pair with the least phantom homogenized degree and then break the tie with the given strategy (say s).

Constructors

SugarStrategy s 

Instances

Instances details
Eq s => Eq (SugarStrategy s) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Ord s => Ord (SugarStrategy s) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Read s => Read (SugarStrategy s) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Show s => Show (SugarStrategy s) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

SelectionStrategy n s => SelectionStrategy n (SugarStrategy s :: Type) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Associated Types

type Weight n (SugarStrategy s) ord Source #

Methods

calcWeight :: (IsOrderedPolynomial poly, n ~ Arity poly) => Proxy (SugarStrategy s) -> poly -> poly -> Weight n (SugarStrategy s) (MOrder poly) Source #

type Weight n (SugarStrategy s :: Type) ord Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

type Weight n (SugarStrategy s :: Type) ord = (Int, Weight n s ord)

data GradedStrategy Source #

Constructors

GradedStrategy 

Instances

Instances details
Eq GradedStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Ord GradedStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Read GradedStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Show GradedStrategy Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

SelectionStrategy n GradedStrategy Source #

Choose the pair with the least LCM(LT(f), LT(g)) w.r.t. graded current ordering.

Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy

Associated Types

type Weight n GradedStrategy ord Source #

Methods

calcWeight :: (IsOrderedPolynomial poly, n ~ Arity poly) => Proxy GradedStrategy -> poly -> poly -> Weight n GradedStrategy (MOrder poly) Source #

type Weight n GradedStrategy ord Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.SelectionStrategy