coincident-root-loci-0.3: Equivariant CSM classes of coincident root loci
Safe HaskellNone
LanguageHaskell2010

Math.RootLoci.Motivic.Classes

Synopsis

Dimensions

newtype Dim Source #

A dimension (d in Sym^d(X))

Constructors

Dim Int 

Instances

Instances details
Eq Dim Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Methods

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

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

Num Dim Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Methods

(+) :: Dim -> Dim -> Dim #

(-) :: Dim -> Dim -> Dim #

(*) :: Dim -> Dim -> Dim #

negate :: Dim -> Dim #

abs :: Dim -> Dim #

signum :: Dim -> Dim #

fromInteger :: Integer -> Dim #

Ord Dim Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Methods

compare :: Dim -> Dim -> Ordering #

(<) :: Dim -> Dim -> Bool #

(<=) :: Dim -> Dim -> Bool #

(>) :: Dim -> Dim -> Bool #

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

max :: Dim -> Dim -> Dim #

min :: Dim -> Dim -> Dim #

Show Dim Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Methods

showsPrec :: Int -> Dim -> ShowS #

show :: Dim -> String #

showList :: [Dim] -> ShowS #

dimTuples :: [Dim] -> [[Dim]] Source #

Classes

class Degree a where Source #

Degree of something

Associated Types

type MultiDegree a :: * Source #

Instances

Instances details
Degree MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Associated Types

type MultiDegree MultiLam Source #

Degree SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Associated Types

type MultiDegree SingleLam Source #

KnownNat n => Degree (XS v n) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Associated Types

type MultiDegree (XS v n) Source #

Methods

totalDegree :: XS v n -> Int Source #

multiDegree :: XS v n -> MultiDegree (XS v n) Source #

class Empty a where Source #

Methods

empty :: a Source #

Instances

Instances details
Empty Int Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Methods

empty :: Int Source #

Empty MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Empty SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Empty Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

empty :: Multi Source #

Empty Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

empty :: Single Source #

Empty Bindings Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Empty [a] Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Methods

empty :: [a] Source #

Empty (Maybe a) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Methods

empty :: Maybe a Source #

KnownNat n => Empty (XS v n) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Methods

empty :: XS v n Source #

class Normalize a where Source #

Normalize terms and lambdas

Methods

normalize :: a -> a Source #

Instances

Instances details
Normalize MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Normalize SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Normalize Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Normalize Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Normalize (FreeMod c MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Normalize (FreeMod c SingleLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

class SuperNormalize a where Source #

This is a hack because there is some issue when this is included in normalize that i don't want to debug right now

Methods

superNormalize :: a -> a Source #

class Cross a where Source #

Exterior (or cross) product

Minimal complete definition

cross, crossInterleave

Methods

cross :: a -> a -> a Source #

crossMany :: [a] -> a Source #

crossInterleave Source #

Arguments

:: a 
-> a 
-> a

interleaved cross product of vectors

class SingleToMulti s t | s -> t, t -> s where Source #

Conversion from scalar to vector

Methods

singleToMulti :: s -> t Source #

class Omega a where Source #

replicating points (power map)

Methods

omega :: Int -> a -> a Source #

Instances

Instances details
Omega MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

omega :: Int -> MultiLam -> MultiLam Source #

Omega SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Omega Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

omega :: Int -> Multi -> Multi Source #

Omega Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

omega :: Int -> Single -> Single Source #

Ring c => Omega (KRing c) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Homology

Methods

omega :: Int -> KRing c -> KRing c Source #

Omega (Var, Int) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

omega :: Int -> (Var, Int) -> (Var, Int) Source #

(Eq c, Num c) => Omega (FreeMod c MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Omega (FreeMod c SingleLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

class Omega123 a where Source #

Omega^{1,2,3,...}

Methods

omega123 :: a -> a Source #

Instances

Instances details
Omega123 MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Omega123 Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

omega123 :: Multi -> Multi Source #

(Eq c, Num c) => Omega123 (FreeMod c MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

class Psi t s | t -> s where Source #

The merging (or multiplication) map

Methods

psi :: t -> s Source #

Instances

Instances details
Psi MultiLam SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Psi Multi Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

psi :: Multi -> Single Source #

Ring c => Psi (GRing c) (KRing c) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Homology

Methods

psi :: GRing c -> KRing c Source #

(Eq c, Num c) => Psi [FreeMod c SingleLam] (FreeMod c SingleLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Psi (FreeMod c MultiLam) (FreeMod c SingleLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

class PsiEvenOdd t where Source #

The interleaved pairwise merging map

Methods

psiEvenOdd :: t -> t Source #

Instances

Instances details
PsiEvenOdd MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

PsiEvenOdd Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

PsiEvenOdd (ZMod MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

class ExtendToCommonSize a where Source #

Methods

extendToCommonSize :: (a, a) -> (a, a) Source #

Instances

Instances details
ExtendToCommonSize MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

ExtendToCommonSize Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Empty a => ExtendToCommonSize [a] Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Methods

extendToCommonSize :: ([a], [a]) -> ([a], [a]) Source #

class Permute a where Source #

Applying permutations

Methods

permute :: Permutation -> a -> a Source #

Instances

Instances details
Permute MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Permute Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Permute [a] Source # 
Instance details

Defined in Math.RootLoci.Motivic.Classes

Methods

permute :: Permutation -> [a] -> [a] Source #

Permute (ZMod MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

class Theta a where Source #

The custom pusforward Theta appearing in the algorithm

we subdivide the input as [z;x1,y1,x2,y2,x3,y3...] and then duplicate each of y1,y2,y3..., then combine the left copies of y_i with z, and the right copies of y_i with the corresponding x_i-s, resulting in [z*y1*y2*...;x1*y1,x2*y2,...]

Methods

theta :: a -> a Source #

Instances

Instances details
Theta MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Theta Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

theta :: Multi -> Multi Source #

Theta (ZMod MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract