Portability | portable |
---|---|

Stability | experimental |

Maintainer | m.misamore@gmail.com |

Safe Haskell | None |

Algorithms for simplifying finite directed cubical complexes by removing corner vertices; this operation is fully faithful on path categories, as demonstrated by the author.

- cmplxCornersNaive :: CubeCmplx -> HashSet (Vertex, CubeCell)
- cmplxSpanIntCorners :: CubeCmplx -> VertSpan -> HashSet (Vertex, CubeCell)
- cmplxCorners :: CubeCmplx -> HashSet (Vertex, CubeCell)
- cmplxCornersInt :: CubeCmplx -> VertSpan -> HashSet (Vertex, CubeCell)
- cmplxReduce' :: CubeCmplx -> [VertSpan] -> [CubeCmplx]
- cmplxReduce :: CubeCmplx -> [VertSpan] -> CubeCmplx

# Finding corners

cmplxCornersNaive :: CubeCmplx -> HashSet (Vertex, CubeCell)Source

Naive algorithm for finding corner vertices of a cubical complex. Works well whenever the complex has relatively few top-cells.

cmplxSpanIntCorners :: CubeCmplx -> VertSpan -> HashSet (Vertex, CubeCell)Source

Given a cubical complex and a vertex span to which it belongs, determine the set of corner vertices that belong to the interior of the span using the naive algorithm.

cmplxCorners :: CubeCmplx -> HashSet (Vertex, CubeCell)Source

Memory-efficient parallelized algorithm for determining corner vertices of any finite directed cubical complex whose vertices all have nonzero coordinates.

cmplxCornersInt :: CubeCmplx -> VertSpan -> HashSet (Vertex, CubeCell)Source

Given a cubical complex where all vertices have nonzero coordinates, determine the set of corner vertices that belong to the interior of the given span using the parallel algorithm.

# Corner removal

cmplxReduce' :: CubeCmplx -> [VertSpan] -> [CubeCmplx]Source

Given a complex whose vertices have nonzero coordinates, reduce it in parallel, optionally excluding some spans from the set of corner vertices. Return the intermediate complexes in a list.

cmplxReduce :: CubeCmplx -> [VertSpan] -> CubeCmplxSource

Given a complex whose vertices have nonzero coordinates, reduce it in parallel, optionally excluding some spans from the set of corner vertices.