Skip to content

SageMath package for studying Flexible and Rigid Labelings of Graphs

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

Legersky/flexrilog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlexRiLoG – Flexible and Rigid Labelings of Graphs

This is a SageMath package providing functionality for investigating flexible and rigid labelings of graphs. It implements the concepts described in the papers

by Georg Grasegger, Jan Legerský and Josef Schicho, and in the doctoral thesis Flexible and Rigid Labelings of Graphs (download here) by Jan Legerský. The construction of motions of n-fold rotationally symmetric frameworks according to the paper Flexible placements of graphs with rotational symmetry (doi:10.1007/978-3-030-91352-6_9) by Sean Dewar, Georg Grasegger and Jan Legerský is under development. Also the concepts from Bracing frameworks consisting of parallelograms (doi:10.26493/2590-9770.1379.7a4) are implemented.

The package is described in FlexRiLoG – A SageMath Package for Motions of Graphs (doi:10.1007/978-3-030-52200-1_44) by Georg Grasegger and Jan Legerský. This Jupyter notebook provides an interactive version of the paper. It includes the definitions of a flexible and rigid labeling and other implemented concepts. You can try it out online without installation:

See also demos and the webpage about movable graphs.

Installation

The package can be installed via pip:

sage -pip install --upgrade flexrilog

In order to install the latest version, download or clone the source code from github.com/Legersky/flexrilog and run

make install

For some functions, the package phcpy or lnumber must be installed.

Testing

In case you have downloaded or cloned the package, you can execute in the root folder:

make test

or

make test-long

which runs also doctests marked long. To test also methods using phcpy and lnumber, run

make test-all

Alternatively, the following commands can be used

sage setup.py test

sage setup.py testLong

sage setup.py testAll

Documentation

The html documentation can be found online or generated by

make doc

Alternatively,

make doc-pdf

produces a pdf version.

The coverage can be checked with

make coverage

Demos

The basic functionality of FlexRiLoG is presented in the Jupyter notebook examples/FlexRiLoG_demo.ipynb:

FlexRiLoG - A SageMath Package for Motions of Graphs

The file examples/flexrilog_Motions_of_Graphs.ipynb is a Jupyter notebook version of the paper FlexRiLoG – A SageMath Package for Motions of Graphs (doi:10.1007/978-3-030-52200-1_44) by Georg Grasegger and Jan Legerský:

Rotationally symmetric motions of frameworks

The file examples/Rotationally_symmetric_frameworks_SoCGmedia.ipynb illustrates using the package for constructing n-fold rotationally symmetric motions of graphs. It is available on Binder as well:

Bracing of P-frameworks

The file examples/BracingFrameworks.ipynb illustrates bracing of frameworks consisting of parallelograms. It is available on Binder as well:

Penrose frameworks

The following notebook is associated to the paper Flexing infinite frameworks with applications to braced Penrose tilings (doi:10.1016/j.dam.2022.09.002) by Jan Legerský and Sean Dewar.

About

SageMath package for studying Flexible and Rigid Labelings of Graphs

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING

Stars

Watchers

Forks

Packages

No packages published