halg-algorithms-0.6.0.0: Algorithms related to Gröbner basis, part of halg computational algebra suite.
Safe HaskellNone
LanguageHaskell2010

Algebra.Algorithms.Groebner.Homogeneous

Synopsis

Documentation

calcGroebnerBasisAfterHomogenisingWith :: (Field (Coefficient poly), IsOrderedPolynomial poly) => (forall poly'. (Field (Coefficient poly'), IsOrderedPolynomial poly') => Ideal poly' -> [poly']) -> Ideal poly -> [poly] Source #

Calculates Groebner basis once homogenise, apply unsafeCalcHomogeneousGroebnerBasis, and then dehomogenise.

calcHomogeneousGroebnerBasis :: (Field (Coefficient poly), IsOrderedPolynomial poly) => Ideal poly -> Maybe [poly] Source #

Calculates a Groebner basis of the given homogeneous ideal, i.e. an ideal generated by homogeneous polynomials. Returns Nothing if the given ideal is inhomogeneous.

See also unsafeCalcHomogeneousGroebnerBasis.

unsafeCalcHomogeneousGroebnerBasis :: (Field (Coefficient poly), IsOrderedPolynomial poly) => Ideal poly -> [poly] Source #

Calculates a Groebner basis of the given homogeneous ideal, i.e. an ideal generated by homogeneous polynomials.

N.B. This function DOES NOT check homogeniety of the given ideal. See also calcHomogeneousGroebnerBasis.

hilbertPoincareSeries :: (Field (Coefficient poly), IsOrderedPolynomial poly) => Ideal poly -> HPS (Arity poly) Source #

A variant of hilbertPoincareSeriesBy using Grevlex ordering.

hilbertPoincareSeriesBy :: forall ord poly. (IsMonomialOrder (Arity poly) ord, Field (Coefficient poly), IsOrderedPolynomial poly) => ord -> Ideal poly -> HPS (Arity poly) Source #

Calculates the Hilbert-Poincare serires of a given homogeneous ideal, using the specified monomial ordering.

data HPS n Source #

Instances

Instances details
RightModule Integer (HPS n) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

Methods

(*.) :: HPS n -> Integer -> HPS n #

RightModule Natural (HPS n) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

Methods

(*.) :: HPS n -> Natural -> HPS n #

LeftModule Integer (HPS n) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

Methods

(.*) :: Integer -> HPS n -> HPS n #

LeftModule Natural (HPS n) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

Methods

(.*) :: Natural -> HPS n -> HPS n #

LeftModule (Unipol Integer) (HPS n) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

Methods

(.*) :: Unipol Integer -> HPS n -> HPS n #

Eq (HPS a) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

Methods

(==) :: HPS a -> HPS a -> Bool #

(/=) :: HPS a -> HPS a -> Bool #

KnownNat n => Show (HPS n) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

Methods

showsPrec :: Int -> HPS n -> ShowS #

show :: HPS n -> String #

showList :: [HPS n] -> ShowS #

Monoidal (HPS n) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

Methods

zero :: HPS n #

sinnum :: Natural -> HPS n -> HPS n #

sumWith :: Foldable f => (a -> HPS n) -> f a -> HPS n #

Group (HPS n) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

Methods

(-) :: HPS n -> HPS n -> HPS n #

negate :: HPS n -> HPS n #

subtract :: HPS n -> HPS n -> HPS n #

times :: Integral n0 => n0 -> HPS n -> HPS n #

Additive (HPS n) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

Methods

(+) :: HPS n -> HPS n -> HPS n #

sinnum1p :: Natural -> HPS n -> HPS n #

sumWith1 :: Foldable1 f => (a -> HPS n) -> f a -> HPS n #

Abelian (HPS n) Source # 
Instance details

Defined in Algebra.Algorithms.Groebner.Homogeneous

calcHomogeneousGroebnerBasisHilbert :: (Field (Coefficient poly), IsOrderedPolynomial poly) => Ideal poly -> [poly] Source #

Calculates homogeneous Groebner basis by Hilbert-driven method, computing Hilbert-Poincare series w.r.t. Grevlex.

calcHomogeneousGroebnerBasisHilbertBy :: (Field (Coefficient poly), IsOrderedPolynomial poly, IsMonomialOrder (Arity poly) ord) => ord -> Ideal poly -> [poly] Source #

First compute Hilbert-Poicare series w.r.t. ord by hilbertPoincareSeriesBy, and then apply calcHomogeneousGroebnerBasisHilbertWithSeries.