Code Monkey home page Code Monkey logo

coxeter-stg's Introduction

Coxeter-STG

These programs work on Coxeter diagrams with ringed nodes, representing a polytope built by Wythoff's construction. The class FaceOrbitPoset, constructed from a Coxeter diagram, is a partially ordered set consisting of all the face orbits of the polytope. The function makeOrbit constructs a symmetry type graph from the Face Orbit Poset. The symmetry type graph, also known as an orbit graph, represents all the flag orbits with edges labeled i where i-adjacent flags are in the corresponding orbits.

Sample output: Hasse diagram and orbit graph for t_{0,3}(H4)

Coxeter diagrams are represented as graphs using the Boost Graph Library. Each vertex has properties ringed (boolean, initially false), and integersx_coord and y_coord (for use in drawing the diagram.) Each edge has an unsigned integer property order, representing the order of the product of the two reflections the edge joins. Traditionally, the edge is omitted if this order is 2 (when the mirrors are orthogonal), and the label is omitted if this order is 3. It is possible for the product to have infinite order, in which case the order property of the edge is set to 0.

Orbit graphs are also represented using the Boost Graph Library. Vertices have no properties, and edges have an integer property rank.

The TeXout class allows output of these Coxeter diagrams, orbit graphs, and face orbit posets as LaTeX, utilizing TikZ. Simply feed these objects to a TeXout instance with << operators, similar to iostream. TeXout also collects necessary packages, TikZ libraries, and preamble definitions, to construct the preamble when the document is committed to a file. After adding all your TeX, write the TeXout instance to an fstream.

Luatex is necessary to lay out the orbit graphs. It is included in most major TeX distributions. When producing pdf output, the programs call lualatex, which should be in your PATH.

This code is available to use, read, modify, and redistribute under the terms of the GNU GPL v3.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.