directed-cubical-0.1.2.0: Finite directed cubical complexes and associated algorithms

Portabilityportable
Stabilityexperimental
Maintainerm.misamore@gmail.com
Safe HaskellNone

Math.Topology.CubeCmplx.CornerReduce

Contents

Description

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

Synopsis

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.