Braid representations in Haskell


Keywords
bsd2, data, library, math, Propose Tags, , Index, Quick Jump, Fadno.Braids, Fadno.Braids.Graphics, Fadno.Braids.Internal, fadno-braids-0.2.tar.gz, browse, Package description, Package maintainers, spopejoy, edit package information
License
BSD-2-Clause
Install
cabal install fadno-braids-0.2

Documentation

fando-braids: Braid representations in Haskell

Hackage Build Status

Braids represented as Haskell types with support for generation and transformations.

Braid Typeclass

Braid b a is a typeclass over the braid rep itself and its value type. Since a goal of this library is to use braids for non-mathematical purposes (ie music composition), a Braid can be indexed over any Integral type, to support braids representing pitch values in a register for instance.

Generators

All braids are represented using Artin generators as Gen, with Polarity defining the "power" of a generator as Over or Under.

Generator indexes differ from the literature in that they are generally 0-indexed whereas Artin generators are 1-indexed. However, again these braids can represent other ranges of numbers as branch indexes.

Braid instances

Artin creates canonical, "one-at-a-time", generator braids.

MultiGen creates "compressed", "many-at-a-time" braids.

DimBraid is for creating "padded" braids, since generators cannot express the absence of a cross.

Braid builders

bandGen creates Birman/Ko/Lee-style band generators. In addition, stylized braid builders like buildBraid and terraceBraid are offered.

Transformations/Moves

In addition to operations like merge etc, the type Move represents Reidemeister-type isotopy moves. makeTree unfolds a potentially-infinite tree representing all possible applications of a move.

Graphics

drawBraid and drawStrands allow drawings of braids, admitting extra functions for colorizing etc.