Copyright | Adam Saltz |
---|---|
License | BSD3 |
Maintainer | saltz.adam@gmail.com |
Stability | experimental |
Safe Haskell | Safe |
Language | Haskell2010 |
Longer description to come.
- data Generator = Generator {
- resolution :: Resolution
- components :: Set Component
- signs :: Map Component Sign
- kgrade :: Int
- data Sign
- signToNum :: Sign -> Int
- newtype AlgGen = AlgGen (Set Generator)
- wrapGen :: Generator -> AlgGen
- toSet :: AlgGen -> Set Generator
- type Morphisms = Map AlgGen (Set AlgGen)
- addMod2 :: (Eq a, Ord a) => a -> Set a -> Set a
- addMod2Set :: (Eq a, Ord a) => Set a -> Set a -> Set a
- addMod2Map :: (Ord a, Ord k) => Map k (Set a) -> Map k (Set a) -> Map k (Set a)
- addToKey :: (Ord k, Monoid k, Monoid a) => k -> k -> Map k a -> Map k a
- fromTo :: Set AlgGen -> Set AlgGen -> [(AlgGen, Set AlgGen)]
Documentation
A Generator
is a Set
of Components
labled with Sign
s. Strictly speaking, we could make do
without components, as components = Data.Set.fromList . Data.Map.keys $ signs
.
kgrade depends totally on signs, so it should be taken out too.
Generator | |
|
These stand for v_+ and v_- in Khovanov homology. We could include some more algebra here, but | for now I don't see a reason to.
Stands for sums of generators modulo 2. wrapGen
wraps a single generator.
| Should be a type synonym instead?
| This is something like an implementation of mod 2 vector spaces. Could this be done better with vector-spaces or linear?