\contentsline {chapter}{\numberline {1}\leavevmode {\color {Chapter }Introduction}}{5}{chapter.1}
\contentsline {section}{\numberline {1.1}\leavevmode {\color {Chapter }Purpose and goals of this package}}{5}{section.1.1}
\contentsline {section}{\numberline {1.2}\leavevmode {\color {Chapter }Overview over this manual}}{5}{section.1.2}
\contentsline {section}{\numberline {1.3}\leavevmode {\color {Chapter }Feedback}}{5}{section.1.3}
\contentsline {chapter}{\numberline {2}\leavevmode {\color {Chapter }Installation}}{6}{chapter.2}
\contentsline {section}{\numberline {2.1}\leavevmode {\color {Chapter }Building the Kernel Module}}{6}{section.2.1}
\contentsline {section}{\numberline {2.2}\leavevmode {\color {Chapter }Building the Documentation}}{6}{section.2.2}
\contentsline {chapter}{\numberline {3}\leavevmode {\color {Chapter }Heaps}}{7}{chapter.3}
\contentsline {section}{\numberline {3.1}\leavevmode {\color {Chapter }Introduction}}{7}{section.3.1}
\contentsline {section}{\numberline {3.2}\leavevmode {\color {Chapter }API}}{8}{section.3.2}
\contentsline {subsection}{\numberline {3.2.1}\leavevmode {\color {Chapter }IsHeap (for IsObject)}}{8}{subsection.3.2.1}
\contentsline {subsection}{\numberline {3.2.2}\leavevmode {\color {Chapter }Heap}}{8}{subsection.3.2.2}
\contentsline {subsection}{\numberline {3.2.3}\leavevmode {\color {Chapter }NewHeap (for IsHeap, IsObject, IsObject)}}{8}{subsection.3.2.3}
\contentsline {subsection}{\numberline {3.2.4}\leavevmode {\color {Chapter }Push (for IsHeap, IsObject)}}{8}{subsection.3.2.4}
\contentsline {subsection}{\numberline {3.2.5}\leavevmode {\color {Chapter }Peek (for IsHeap)}}{8}{subsection.3.2.5}
\contentsline {subsection}{\numberline {3.2.6}\leavevmode {\color {Chapter }Pop (for IsHeap)}}{8}{subsection.3.2.6}
\contentsline {subsection}{\numberline {3.2.7}\leavevmode {\color {Chapter }Merge (for IsHeap, IsHeap)}}{8}{subsection.3.2.7}
\contentsline {section}{\numberline {3.3}\leavevmode {\color {Chapter }Binary Heaps}}{9}{section.3.3}
\contentsline {subsection}{\numberline {3.3.1}\leavevmode {\color {Chapter }BinaryHeap}}{9}{subsection.3.3.1}
\contentsline {section}{\numberline {3.4}\leavevmode {\color {Chapter }Pairing Heaps}}{9}{section.3.4}
\contentsline {subsection}{\numberline {3.4.1}\leavevmode {\color {Chapter }PairingHeap}}{9}{subsection.3.4.1}
\contentsline {section}{\numberline {3.5}\leavevmode {\color {Chapter }Declarations}}{9}{section.3.5}
\contentsline {subsection}{\numberline {3.5.1}\leavevmode {\color {Chapter }IsBinaryHeapFlatRep (for IsHeap and IsPositionalObjectRep)}}{9}{subsection.3.5.1}
\contentsline {section}{\numberline {3.6}\leavevmode {\color {Chapter }Implementation}}{9}{section.3.6}
\contentsline {subsection}{\numberline {3.6.1}\leavevmode {\color {Chapter }IsPairingHeapFlatRep (for IsHeap and IsPositionalObjectRep)}}{9}{subsection.3.6.1}
\contentsline {chapter}{\numberline {4}\leavevmode {\color {Chapter }Queues and Deques}}{10}{chapter.4}
\contentsline {section}{\numberline {4.1}\leavevmode {\color {Chapter }API}}{10}{section.4.1}
\contentsline {subsection}{\numberline {4.1.1}\leavevmode {\color {Chapter }IsQueue (for IsObject)}}{10}{subsection.4.1.1}
\contentsline {subsection}{\numberline {4.1.2}\leavevmode {\color {Chapter }IsDeque (for IsObject)}}{10}{subsection.4.1.2}
\contentsline {subsection}{\numberline {4.1.3}\leavevmode {\color {Chapter }PushBack (for IsDeque, IsObject)}}{10}{subsection.4.1.3}
\contentsline {subsection}{\numberline {4.1.4}\leavevmode {\color {Chapter }PushFront (for IsDeque, IsObject)}}{10}{subsection.4.1.4}
\contentsline {subsection}{\numberline {4.1.5}\leavevmode {\color {Chapter }PopBack (for IsDeque)}}{10}{subsection.4.1.5}
\contentsline {subsection}{\numberline {4.1.6}\leavevmode {\color {Chapter }PopFront (for IsDeque)}}{11}{subsection.4.1.6}
\contentsline {subsection}{\numberline {4.1.7}\leavevmode {\color {Chapter }Enqueue (for IsQueue, IsObject)}}{11}{subsection.4.1.7}
\contentsline {subsection}{\numberline {4.1.8}\leavevmode {\color {Chapter }Dequeue (for IsQueue, IsObject)}}{11}{subsection.4.1.8}
\contentsline {subsection}{\numberline {4.1.9}\leavevmode {\color {Chapter }Capacity (for IsQueue)}}{11}{subsection.4.1.9}
\contentsline {subsection}{\numberline {4.1.10}\leavevmode {\color {Chapter }Capacity (for IsDeque)}}{11}{subsection.4.1.10}
\contentsline {subsection}{\numberline {4.1.11}\leavevmode {\color {Chapter }Length (for IsQueue)}}{11}{subsection.4.1.11}
\contentsline {subsection}{\numberline {4.1.12}\leavevmode {\color {Chapter }Length (for IsDeque)}}{11}{subsection.4.1.12}
\contentsline {section}{\numberline {4.2}\leavevmode {\color {Chapter }Deques implemented using plain lists}}{11}{section.4.2}
\contentsline {subsection}{\numberline {4.2.1}\leavevmode {\color {Chapter }PlistDeque}}{12}{subsection.4.2.1}
\contentsline {subsection}{\numberline {4.2.2}\leavevmode {\color {Chapter }PlistDequePushFront}}{12}{subsection.4.2.2}
\contentsline {subsection}{\numberline {4.2.3}\leavevmode {\color {Chapter }PlistDequePushBack}}{12}{subsection.4.2.3}
\contentsline {subsection}{\numberline {4.2.4}\leavevmode {\color {Chapter }PlistDequePopFront}}{12}{subsection.4.2.4}
\contentsline {subsection}{\numberline {4.2.5}\leavevmode {\color {Chapter }PlistDequePopBack}}{12}{subsection.4.2.5}
\contentsline {subsection}{\numberline {4.2.6}\leavevmode {\color {Chapter }PlistDequePeekFront}}{13}{subsection.4.2.6}
\contentsline {subsection}{\numberline {4.2.7}\leavevmode {\color {Chapter }PlistDequePeekBack}}{13}{subsection.4.2.7}
\contentsline {subsection}{\numberline {4.2.8}\leavevmode {\color {Chapter }PlistDequeExpand}}{13}{subsection.4.2.8}
\contentsline {chapter}{\numberline {5}\leavevmode {\color {Chapter }Union-Find}}{14}{chapter.5}
\contentsline {section}{\numberline {5.1}\leavevmode {\color {Chapter }Introduction}}{14}{section.5.1}
\contentsline {section}{\numberline {5.2}\leavevmode {\color {Chapter }API}}{14}{section.5.2}
\contentsline {subsection}{\numberline {5.2.1}\leavevmode {\color {Chapter }IsPartitionDS (for IsObject)}}{14}{subsection.5.2.1}
\contentsline {subsection}{\numberline {5.2.2}\leavevmode {\color {Chapter }PartitionDS (for IsPartitionDS, IsPosInt)}}{14}{subsection.5.2.2}
\contentsline {subsection}{\numberline {5.2.3}\leavevmode {\color {Chapter }PartitionDS (for IsPartitionDS, IsCyclotomicCollColl)}}{14}{subsection.5.2.3}
\contentsline {subsection}{\numberline {5.2.4}\leavevmode {\color {Chapter }Representative (for IsPartitionDS, IsPosInt)}}{14}{subsection.5.2.4}
\contentsline {subsection}{\numberline {5.2.5}\leavevmode {\color {Chapter }Unite (for IsPartitionDS and IsMutable, IsPosInt, IsPosInt)}}{15}{subsection.5.2.5}
\contentsline {subsection}{\numberline {5.2.6}\leavevmode {\color {Chapter }RootsIteratorOfPartitionDS (for IsPartitionDS)}}{15}{subsection.5.2.6}
\contentsline {subsection}{\numberline {5.2.7}\leavevmode {\color {Chapter }NumberParts (for IsPartitionDS)}}{15}{subsection.5.2.7}
\contentsline {subsection}{\numberline {5.2.8}\leavevmode {\color {Chapter }SizeUnderlyingSetDS (for IsPartitionDS)}}{15}{subsection.5.2.8}
\contentsline {subsection}{\numberline {5.2.9}\leavevmode {\color {Chapter }PartsOfPartitionDS (for IsPartitionDS)}}{15}{subsection.5.2.9}
\contentsline {chapter}{\numberline {6}\leavevmode {\color {Chapter }Hash Functions}}{16}{chapter.6}
\contentsline {section}{\numberline {6.1}\leavevmode {\color {Chapter }Introduction}}{16}{section.6.1}
\contentsline {section}{\numberline {6.2}\leavevmode {\color {Chapter }Hash Functions for Basic Types}}{16}{section.6.2}
\contentsline {subsection}{\numberline {6.2.1}\leavevmode {\color {Chapter }HashBasic}}{16}{subsection.6.2.1}
\contentsline {section}{\numberline {6.3}\leavevmode {\color {Chapter }Hash Functions for Permutation Groups}}{16}{section.6.3}
\contentsline {subsection}{\numberline {6.3.1}\leavevmode {\color {Chapter }Hash{\textunderscore }PermGroup{\textunderscore }Fast}}{16}{subsection.6.3.1}
\contentsline {subsection}{\numberline {6.3.2}\leavevmode {\color {Chapter }Hash{\textunderscore }PermGroup{\textunderscore }Complete}}{17}{subsection.6.3.2}
\contentsline {chapter}{\numberline {7}\leavevmode {\color {Chapter }Hashmaps}}{18}{chapter.7}
\contentsline {section}{\numberline {7.1}\leavevmode {\color {Chapter }API}}{18}{section.7.1}
\contentsline {subsection}{\numberline {7.1.1}\leavevmode {\color {Chapter }IsHashMap (for IsObject and IsFinite)}}{18}{subsection.7.1.1}
\contentsline {subsection}{\numberline {7.1.2}\leavevmode {\color {Chapter }HashMap}}{18}{subsection.7.1.2}
\contentsline {subsection}{\numberline {7.1.3}\leavevmode {\color {Chapter }Keys (for IsHashMap)}}{18}{subsection.7.1.3}
\contentsline {subsection}{\numberline {7.1.4}\leavevmode {\color {Chapter }Values (for IsHashMap)}}{18}{subsection.7.1.4}
\contentsline {subsection}{\numberline {7.1.5}\leavevmode {\color {Chapter }KeyIterator (for IsHashMap)}}{19}{subsection.7.1.5}
\contentsline {subsection}{\numberline {7.1.6}\leavevmode {\color {Chapter }ValueIterator (for IsHashMap)}}{19}{subsection.7.1.6}
\contentsline {subsection}{\numberline {7.1.7}\leavevmode {\color {Chapter }KeyValueIterator (for IsHashMap)}}{19}{subsection.7.1.7}
\contentsline {subsection}{\numberline {7.1.8}\leavevmode {\color {Chapter }\texttt {\char 92\relax }[\texttt {\char 92\relax }] (for IsHashMapRep, IsObject)}}{19}{subsection.7.1.8}
\contentsline {subsection}{\numberline {7.1.9}\leavevmode {\color {Chapter }\texttt {\char 92\relax }[\texttt {\char 92\relax }]\texttt {\char 92\relax }:\texttt {\char 92\relax }= (for IsHashMapRep, IsObject, IsObject)}}{19}{subsection.7.1.9}
\contentsline {subsection}{\numberline {7.1.10}\leavevmode {\color {Chapter }\texttt {\char 92\relax }in (for IsObject, IsHashMapRep)}}{19}{subsection.7.1.10}
\contentsline {subsection}{\numberline {7.1.11}\leavevmode {\color {Chapter }IsBound\texttt {\char 92\relax }[\texttt {\char 92\relax }] (for IsHashMapRep, IsObject)}}{19}{subsection.7.1.11}
\contentsline {subsection}{\numberline {7.1.12}\leavevmode {\color {Chapter }Unbind\texttt {\char 92\relax }[\texttt {\char 92\relax }] (for IsHashMapRep, IsObject)}}{19}{subsection.7.1.12}
\contentsline {subsection}{\numberline {7.1.13}\leavevmode {\color {Chapter }Size (for IsHashMapRep)}}{20}{subsection.7.1.13}
\contentsline {subsection}{\numberline {7.1.14}\leavevmode {\color {Chapter }IsEmpty (for IsHashMapRep)}}{20}{subsection.7.1.14}
\contentsline {chapter}{\numberline {8}\leavevmode {\color {Chapter }Hashsets}}{21}{chapter.8}
\contentsline {section}{\numberline {8.1}\leavevmode {\color {Chapter }API}}{21}{section.8.1}
\contentsline {subsection}{\numberline {8.1.1}\leavevmode {\color {Chapter }IsHashSet (for IsObject and IsFinite)}}{21}{subsection.8.1.1}
\contentsline {subsection}{\numberline {8.1.2}\leavevmode {\color {Chapter }HashSet}}{21}{subsection.8.1.2}
\contentsline {subsection}{\numberline {8.1.3}\leavevmode {\color {Chapter }AddSet (for IsHashSetRep, IsObject)}}{21}{subsection.8.1.3}
\contentsline {subsection}{\numberline {8.1.4}\leavevmode {\color {Chapter }\texttt {\char 92\relax }in (for IsObject, IsHashSetRep)}}{21}{subsection.8.1.4}
\contentsline {subsection}{\numberline {8.1.5}\leavevmode {\color {Chapter }RemoveSet (for IsHashSetRep, IsObject)}}{22}{subsection.8.1.5}
\contentsline {subsection}{\numberline {8.1.6}\leavevmode {\color {Chapter }Size (for IsHashSetRep)}}{22}{subsection.8.1.6}
\contentsline {subsection}{\numberline {8.1.7}\leavevmode {\color {Chapter }IsEmpty (for IsHashSetRep)}}{22}{subsection.8.1.7}
\contentsline {subsection}{\numberline {8.1.8}\leavevmode {\color {Chapter }Set (for IsHashSetRep)}}{22}{subsection.8.1.8}
\contentsline {subsection}{\numberline {8.1.9}\leavevmode {\color {Chapter }AsSet (for IsHashSetRep)}}{22}{subsection.8.1.9}
\contentsline {subsection}{\numberline {8.1.10}\leavevmode {\color {Chapter }Iterator (for IsHashSetRep)}}{22}{subsection.8.1.10}
\contentsline {chapter}{\numberline {9}\leavevmode {\color {Chapter }Memoisation}}{23}{chapter.9}
\contentsline {section}{\numberline {9.1}\leavevmode {\color {Chapter }Memoisation with HashMap}}{23}{section.9.1}
\contentsline {subsection}{\numberline {9.1.1}\leavevmode {\color {Chapter }MemoizeFunction}}{23}{subsection.9.1.1}
\contentsline {chapter}{\numberline {10}\leavevmode {\color {Chapter }Ordered Set Datastructures}}{24}{chapter.10}
\contentsline {section}{\numberline {10.1}\leavevmode {\color {Chapter }Usage}}{24}{section.10.1}
\contentsline {section}{\numberline {10.2}\leavevmode {\color {Chapter }API}}{25}{section.10.2}
\contentsline {subsection}{\numberline {10.2.1}\leavevmode {\color {Chapter }IsOrderedSetDS (for IsObject)}}{25}{subsection.10.2.1}
\contentsline {subsection}{\numberline {10.2.2}\leavevmode {\color {Chapter }IsStandardOrderedSetDS (for IsOrderedSetDS)}}{25}{subsection.10.2.2}
\contentsline {subsection}{\numberline {10.2.3}\leavevmode {\color {Chapter }OrderedSetDS (for IsOrderedSetDS, IsFunction, IsListOrCollection, IsRandomSource)}}{25}{subsection.10.2.3}
\contentsline {subsection}{\numberline {10.2.4}\leavevmode {\color {Chapter }OrderedSetDS (for IsOrderedSetDS, IsFunction, IsRandomSource)}}{25}{subsection.10.2.4}
\contentsline {subsection}{\numberline {10.2.5}\leavevmode {\color {Chapter }OrderedSetDS (for IsOrderedSetDS, IsListOrCollection, IsRandomSource)}}{25}{subsection.10.2.5}
\contentsline {subsection}{\numberline {10.2.6}\leavevmode {\color {Chapter }OrderedSetDS (for IsOrderedSetDS, IsFunction, IsListOrCollection)}}{26}{subsection.10.2.6}
\contentsline {subsection}{\numberline {10.2.7}\leavevmode {\color {Chapter }OrderedSetDS (for IsOrderedSetDS, IsFunction)}}{26}{subsection.10.2.7}
\contentsline {subsection}{\numberline {10.2.8}\leavevmode {\color {Chapter }OrderedSetDS (for IsOrderedSetDS, IsListOrCollection)}}{26}{subsection.10.2.8}
\contentsline {subsection}{\numberline {10.2.9}\leavevmode {\color {Chapter }OrderedSetDS (for IsOrderedSetDS)}}{26}{subsection.10.2.9}
\contentsline {subsection}{\numberline {10.2.10}\leavevmode {\color {Chapter }AddSet (for IsOrderedSetDS and IsMutable, IsObject)}}{26}{subsection.10.2.10}
\contentsline {subsection}{\numberline {10.2.11}\leavevmode {\color {Chapter }RemoveSet (for IsOrderedSetDS and IsMutable, IsObject)}}{26}{subsection.10.2.11}
\contentsline {subsection}{\numberline {10.2.12}\leavevmode {\color {Chapter }\texttt {\char 92\relax }in (for IsObject, IsOrderedSetDS)}}{26}{subsection.10.2.12}
\contentsline {subsection}{\numberline {10.2.13}\leavevmode {\color {Chapter }LessFunction (for IsOrderedSetDS)}}{26}{subsection.10.2.13}
\contentsline {subsection}{\numberline {10.2.14}\leavevmode {\color {Chapter }Size (for IsOrderedSetDS)}}{27}{subsection.10.2.14}
\contentsline {subsection}{\numberline {10.2.15}\leavevmode {\color {Chapter }IteratorSorted (for IsOrderedSetDS)}}{27}{subsection.10.2.15}
\contentsline {section}{\numberline {10.3}\leavevmode {\color {Chapter }Default methods}}{27}{section.10.3}
\contentsline {subsection}{\numberline {10.3.1}\leavevmode {\color {Chapter }Iterator (for IsOrderedSetDS)}}{27}{subsection.10.3.1}
\contentsline {subsection}{\numberline {10.3.2}\leavevmode {\color {Chapter }AsSSortedList (for IsOrderedSetDS)}}{27}{subsection.10.3.2}
\contentsline {subsection}{\numberline {10.3.3}\leavevmode {\color {Chapter }AsSortedList (for IsOrderedSetDS)}}{27}{subsection.10.3.3}
\contentsline {subsection}{\numberline {10.3.4}\leavevmode {\color {Chapter }AsList (for IsOrderedSetDS)}}{27}{subsection.10.3.4}
\contentsline {subsection}{\numberline {10.3.5}\leavevmode {\color {Chapter }EnumeratorSorted (for IsOrderedSetDS)}}{27}{subsection.10.3.5}
\contentsline {subsection}{\numberline {10.3.6}\leavevmode {\color {Chapter }Enumerator (for IsOrderedSetDS)}}{27}{subsection.10.3.6}
\contentsline {subsection}{\numberline {10.3.7}\leavevmode {\color {Chapter }IsEmpty (for IsOrderedSetDS)}}{28}{subsection.10.3.7}
\contentsline {subsection}{\numberline {10.3.8}\leavevmode {\color {Chapter }Length (for IsOrderedSetDS)}}{28}{subsection.10.3.8}
\contentsline {subsection}{\numberline {10.3.9}\leavevmode {\color {Chapter }Position (for IsOrderedSetDS, IsObject, IsInt)}}{28}{subsection.10.3.9}
\contentsline {subsection}{\numberline {10.3.10}\leavevmode {\color {Chapter }PositionSortedOp (for IsOrderedSetDS, IsObject)}}{28}{subsection.10.3.10}
\contentsline {subsection}{\numberline {10.3.11}\leavevmode {\color {Chapter }PositionSortedOp (for IsOrderedSetDS, IsObject, IsFunction)}}{28}{subsection.10.3.11}
\contentsline {chapter}{\numberline {11}\leavevmode {\color {Chapter }Slices}}{29}{chapter.11}
\contentsline {section}{\numberline {11.1}\leavevmode {\color {Chapter }API}}{29}{section.11.1}
\contentsline {subsection}{\numberline {11.1.1}\leavevmode {\color {Chapter }Slice}}{29}{subsection.11.1.1}
\contentsline {subsection}{\numberline {11.1.2}\leavevmode {\color {Chapter }IsSlice (for IsList)}}{29}{subsection.11.1.2}
\contentsline {subsection}{\numberline {11.1.3}\leavevmode {\color {Chapter }\texttt {\char 92\relax }[\texttt {\char 92\relax }] (for IsSliceRep, IsPosInt)}}{29}{subsection.11.1.3}
\contentsline {subsection}{\numberline {11.1.4}\leavevmode {\color {Chapter }\texttt {\char 92\relax }[\texttt {\char 92\relax }]\texttt {\char 92\relax }:\texttt {\char 92\relax }= (for IsSliceRep and IsMutable, IsPosInt, IsObject)}}{29}{subsection.11.1.4}
\contentsline {subsection}{\numberline {11.1.5}\leavevmode {\color {Chapter }\texttt {\char 92\relax }in (for IsObject, IsSliceRep)}}{29}{subsection.11.1.5}
\contentsline {subsection}{\numberline {11.1.6}\leavevmode {\color {Chapter }IsBound\texttt {\char 92\relax }[\texttt {\char 92\relax }] (for IsSliceRep, IsPosInt)}}{30}{subsection.11.1.6}
\contentsline {subsection}{\numberline {11.1.7}\leavevmode {\color {Chapter }Unbind\texttt {\char 92\relax }[\texttt {\char 92\relax }] (for IsSliceRep and IsMutable, IsPosInt)}}{30}{subsection.11.1.7}
\contentsline {subsection}{\numberline {11.1.8}\leavevmode {\color {Chapter }Length (for IsSliceRep)}}{30}{subsection.11.1.8}
\contentsline {chapter}{\numberline {12}\leavevmode {\color {Chapter }Stacks}}{31}{chapter.12}
\contentsline {section}{\numberline {12.1}\leavevmode {\color {Chapter }API}}{31}{section.12.1}
\contentsline {subsection}{\numberline {12.1.1}\leavevmode {\color {Chapter }Stack}}{31}{subsection.12.1.1}
\contentsline {subsection}{\numberline {12.1.2}\leavevmode {\color {Chapter }IsStack (for IsObject)}}{31}{subsection.12.1.2}
\contentsline {subsection}{\numberline {12.1.3}\leavevmode {\color {Chapter }Push (for IsStack, IsObject)}}{31}{subsection.12.1.3}
\contentsline {subsection}{\numberline {12.1.4}\leavevmode {\color {Chapter }Peek (for IsStack)}}{31}{subsection.12.1.4}
\contentsline {subsection}{\numberline {12.1.5}\leavevmode {\color {Chapter }Pop (for IsStack)}}{31}{subsection.12.1.5}
\contentsline {subsection}{\numberline {12.1.6}\leavevmode {\color {Chapter }Size (for [IsStack])}}{32}{subsection.12.1.6}
\contentsline {chapter}{References}{33}{chapter*.4}
\contentsline {chapter}{Index}{34}{section*.5}
