knots-0.1.0.1: Khovanov homology computations

Safe HaskellNone
LanguageHaskell98

Knots.Complex

Synopsis

Documentation

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 :: (Ring c, Ring b, AbelianGroup r, Ord c, Ord b, Eq r, Enum c, Enum b) => c -> b -> [[r]] -> Lin b c r Source

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

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

purifyLin :: (AbelianGroup r, Ord c, Eq r) => Lin b c r -> Lin b c r Source

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

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 r Source

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

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

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 r Source

oooo :: (Ring r, Default r, Ord b, Ord a, Ord c, Eq 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 :: (Ring r, Default r, Ord a, Eq r) => Maybe a -> [Node a] -> GradedComplex IntPair r Source

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

hash :: (Set Int, [B]) -> IntPair Source

bitfield :: (Ring b, Integral b1, Foldable t) => t b1 -> b Source