| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Math.RootLoci.Motivic.Abstract
Description
The abstract motivic algorithm
See: B. Komuves: Motivic characteristic classes of discriminant strata
TODO: caching of results (otherwise it is very slow)
Synopsis
- symn :: Num c => Dim -> FreeMod c SingleLam
- open :: Dim -> ZMod SingleLam
- zeros :: Int -> ZMod MultiLam
- xlam :: Partition -> ZMod SingleLam
- dvec :: [Dim] -> ZMod MultiLam
- dvecSorted :: [Dim] -> ZMod MultiLam
- newtype Var = DeBruijn Int
- newtype Bindings = Bindings [Dim]
- numberOfBoundVariables :: Bindings -> Int
- dimensionTable :: Bindings -> Map Var Dim
- newtype Single = Single [(Var, Int)]
- unSingle :: Single -> [(Var, Int)]
- newtype Multi = Multi [Single]
- data SingleLam = SingleLam !Bindings !Single
- data MultiLam = MultiLam !Bindings !Multi
- class Shift a where
- class Rename a where
- exponentOf :: Var -> Single -> Int
- exponentVectorOf :: Var -> Multi -> [Int]
- normalizeWithExpo :: (Rename term, Normalize term, Ord expo) => (expo -> Bool) -> (Var -> term -> expo) -> (Bindings, term) -> (Bindings, term)
The abstract algorithm
dvecSorted :: [Dim] -> ZMod MultiLam Source #
The open stratum D(n1,n2,...), assuming n1 >= n2 >= n3 >= ...
Data types and instances
A variable, implemented as a de Bruijn level (indexing starts from 0)
We use de Bruijn levels to index the bound variables, and ecah bound variables has a dimension
numberOfBoundVariables :: Bindings -> Int Source #
An expression living on Sym^n(X), with free variables
Instances
| Eq Single Source # | |
| Ord Single Source # | |
| Show Single Source # | |
| Pretty Single Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
| Omega Single Source # | |
| Normalize Single Source # | |
| Empty Single Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
| Rename Single Source # | |
| Shift Single Source # | |
| Psi Multi Single Source # | |
| SingleToMulti Single Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract Methods singleToMulti :: Single -> Multi Source # | |
An expression living on Sym^{n_1}(X) x ... x Sym^{n_r}(X), with free variables
Instances
| Eq Multi Source # | |
| Ord Multi Source # | |
| Show Multi Source # | |
| Pretty Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
| Theta Multi Source # | |
| Permute Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
| ExtendToCommonSize Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
| PsiEvenOdd Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract Methods psiEvenOdd :: Multi -> Multi Source # | |
| Omega123 Multi Source # | |
| Omega Multi Source # | |
| Cross Multi Source # | |
| SuperNormalize Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract Methods superNormalize :: Multi -> Multi Source # | |
| Normalize Multi Source # | |
| Empty Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
| Rename Multi Source # | |
| Shift Multi Source # | |
| Psi Multi Single Source # | |
| SingleToMulti Single Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract Methods singleToMulti :: Single -> Multi Source # | |
A lambda expression living on Sym^n(X), with variables bound to Sym^d(X) with different dimensions
Instances
A lambda expression living on Sym^{n_1}(X) x ... x Sym^{n_r}(X), with variables bound to Sym^d(X) with different dimensions