polynomial-algebra-0.1.0.1: Multivariate polynomial rings

Safe HaskellNone
LanguageHaskell2010

Math.Algebra.Polynomial.Monomial.Exterior.Indexed

Contents

Description

Exterior monomials where the variable set looks like {x_1, x_2, ... , x_N}

The internal representation is a bit vector

Synopsis

Exterior monomials

newtype Ext (var :: Symbol) (n :: Nat) Source #

Exterior monomials of the variables x1,x2,...,xn. The internal representation is a bit vector encoded as an Integer

Constructors

Ext Integer 
Instances
Eq (Ext var n) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Exterior.Indexed

Methods

(==) :: Ext var n -> Ext var n -> Bool #

(/=) :: Ext var n -> Ext var n -> Bool #

Ord (Ext var n) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Exterior.Indexed

Methods

compare :: Ext var n -> Ext var n -> Ordering #

(<) :: Ext var n -> Ext var n -> Bool #

(<=) :: Ext var n -> Ext var n -> Bool #

(>) :: Ext var n -> Ext var n -> Bool #

(>=) :: Ext var n -> Ext var n -> Bool #

max :: Ext var n -> Ext var n -> Ext var n #

min :: Ext var n -> Ext var n -> Ext var n #

Show (Ext var n) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Exterior.Indexed

Methods

showsPrec :: Int -> Ext var n -> ShowS #

show :: Ext var n -> String #

showList :: [Ext var n] -> ShowS #

KnownSymbol var => Pretty (Ext var n) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Exterior.Indexed

Methods

pretty :: Ext var n -> String Source #

prettyInParens :: Ext var n -> String Source #

data SgnExt (var :: Symbol) (n :: Nat) Source #

Signed exterior monomial

Constructors

SgnExt !Sign !(Ext var n) 
Instances
Eq (SgnExt var n) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Exterior.Indexed

Methods

(==) :: SgnExt var n -> SgnExt var n -> Bool #

(/=) :: SgnExt var n -> SgnExt var n -> Bool #

Ord (SgnExt var n) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Exterior.Indexed

Methods

compare :: SgnExt var n -> SgnExt var n -> Ordering #

(<) :: SgnExt var n -> SgnExt var n -> Bool #

(<=) :: SgnExt var n -> SgnExt var n -> Bool #

(>) :: SgnExt var n -> SgnExt var n -> Bool #

(>=) :: SgnExt var n -> SgnExt var n -> Bool #

max :: SgnExt var n -> SgnExt var n -> SgnExt var n #

min :: SgnExt var n -> SgnExt var n -> SgnExt var n #

Show (SgnExt var n) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Exterior.Indexed

Methods

showsPrec :: Int -> SgnExt var n -> ShowS #

show :: SgnExt var n -> String #

showList :: [SgnExt var n] -> ShowS #

KnownNat n => PartialMonoid (SgnExt var n) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Exterior.Indexed

Methods

pmUnit :: SgnExt var n Source #

pmAdd :: SgnExt var n -> SgnExt var n -> Maybe (SgnExt var n) Source #

pmSum :: [SgnExt var n] -> Maybe (SgnExt var n) Source #

KnownSymbol var => Pretty (SgnExt var n) Source # 
Instance details

Defined in Math.Algebra.Polynomial.Monomial.Exterior.Indexed

Methods

pretty :: SgnExt var n -> String Source #

prettyInParens :: SgnExt var n -> String Source #

extVar :: KnownSymbol var => Ext var n -> String Source #

Name of the variables

nOfExt :: KnownNat n => Ext var n -> Int Source #

Number of variables

nOfMbExt :: KnownNat n => Maybe (Ext var n) -> Int Source #

nOfSgnExt :: KnownNat n => SgnExt var n -> Int Source #

emptyness

normalization

conversion

extToList :: Ext v n -> [Index] Source #

creation

multiplication

mulExt :: KnownNat n => Ext v n -> Ext v n -> Maybe (SgnExt v n) Source #

mulExtCoeff :: (Num c, KnownNat n) => Ext v n -> Ext v n -> Maybe (Ext v n, c) Source #

mulSgnExt :: KnownNat n => SgnExt v n -> SgnExt v n -> Maybe (SgnExt v n) Source #

productExt :: (KnownNat n, Foldable f) => f (Ext v n) -> Maybe (SgnExt v n) Source #

v1 :: Ext "a" 7 Source #

a :: SgnExt "a" 7 Source #

b :: SgnExt "a" 7 Source #

degree

Permutations

numberOfInversionsMerge :: Permutation -> Int Source #

Returns the number of inversions, using the merge-sort algorithm. This should be O(n*log(n))