knots- Khovanov homology computations

Safe HaskellNone




type Complex b r = [Lin b b r]Source

cohomology :: (NFData b, NFData r, Basis b, Field r, Eq r) => Complex b r -> [Int]Source

Compute cohomology ranks of a complex

cohomologyGraded :: (NFData b, NFData r, Basis b, Field r, Eq r) => GradedComplex b r -> Map Int [Int]Source

Compute cohomology ranks of a graded complex

mx :: (Enum b, Enum c, Eq r, Basis b, Basis c, AbelianGroup r, Ring b, Ring c) => c -> b -> [[r]] -> Lin b c rSource

indexify :: (Enum b', Eq r', Basis b', AbelianGroup r', Ring b') => [r'] -> Free b' r'Source

purify :: (Eq r', AbelianGroup r') => Free b' r' -> Free b' r'Source

purifyLin :: (Eq r, Basis c, AbelianGroup r) => Lin b c r -> Lin b c rSource

isComplex :: (Basis b, RingEq r) => Complex b r -> BoolSource

Check whether the differential squares to zero

steps :: Lin k a b -> [a]Source

The basis vectors in the domain that actually occur. In other words, the basis vectors that correspond to (potentially) non-zero columns.

Assuming the morphism to be given in column echelon form, this counts steps.

omit :: Basis b => [b] -> Free b r -> Free b rSource

omitColumns :: Basis b => [b] -> Lin b c r -> Lin b c rSource

gaussComplex :: (NFData b, NFData r, Basis b, Field r, Eq r) => Complex b r -> Complex b rSource

Elementary column transformations, stepping through the complex from left to right. The resulting complex has the same cohomology and has all matrices in column echelon form.

type C r = Graded (Complex [B] r)Source

ooo :: RingEq r => C r -> C r -> C rSource

oooo :: (Eq r, Basis a, Basis b, Basis c, Default r, Ring r) => [Lin b c r] -> [Lin a b r] -> [Lin a c r]Source

groupByKeySize :: [Int] -> Map (Set a1) a -> [Map (Set a1) a]Source

example :: Ord a => PD a -> [Int]Source

Example: Compute rational Khovanov homology and print ungraded results.

khCx :: (Eq r, Ord a, Default r, Ring r) => Maybe a -> [Node a] -> GradedComplex IntPair rSource

conv :: (Eq r, Default r, Ring r) => [ElMo] -> Map Int [Lin [B] [B] r]Source

bitfield :: (Foldable t, Integral b, Ring a) => t b -> aSource