The ChainCon Software (Release 0.03)
Chain Contractions, Homology and Cohomology Software and Examples
This page contains the software and examples referred to
in the paper Computation of cubical homology, cohomology,
and (co)homological operations via chain contraction
by Paweł Pilarczyk and
Pedro Real,
published in Adv. Comput. Math., Vol. 41, No. 1 (2015),
253-275, DOI: 10.1007/s10444-014-9356-1.
A preprint of this paper can be downloaded
here: [ PDF ]
The initial relase 0.01 of the software was updated over time,
and a few additional features were added in the new releases,
such as computation of the Eilenberg-Zilber contraction
and the Steenrod squares.
1. Software
The algorithms described in the paper
have been implemented in the C++ programming language for optimal
effectiveness and flexibility.
Although a lot of effort was put
into making this software capable of processing large data structures
with reasonable effectiveness, it was primarily intended to serve
as a model implementation of the algorithms and concepts
introduced in the paper, and thus its versatility
and readability of the code was the priority,
not the speed or optimized memory usage.
The provided software package is self-contained, that is,
in order to compile and use it one only needs a standard C++ compiler,
and no other programming libraries are necessary beyond the standard
C++ library.
This software uses a small amount of code
from the Computational Homology Project
(CHomP)
programming library,
and thus the few necessary files from that library
have been included in the software for the convenience of users;
these are the files whose names start with chomp
or which are located in the chomp subdirectory.
The software consists of a programming library and several sample
programs. The library has a thoroughly documented interface.
For maximal ease of use, convenient command-line tools are provided,
which read data from human-readable text files and output results
to the screen in a format that can be either read by a human
or further processed by simple scripts.
Thanks to the latter, one can easily (although not very efficiently)
interface with the algorithms from high-level systems,
including well-known mathematical software packages,
by means of saving data to a file, running the relevant program,
and then reading the results from a file or files
created by that program.
Documentation
of the source code
of the software was generated using the
Doxygen system.
In order to make this documentation as comprehensive
as possible, the source code has been included in the documentation,
and every class and function has been covered.
2. Files for download
The most up-to-date version of the chaincon software is as follows
(compressed in Linux, note that it may be necessary to convert
the text files for other systems):
- chaincon-src.zip – the source code
of the software library and programs
- chaincon-ex.zip – examples
with scripts for cmd and sh,
and a python GUI browser
- chaincon-cp2.zip – the data files
with the definition of a cubical approximation
of the complex projective plane (provided separately
due to the large file size)
- chaincon-dox.zip –
HTML documentation of the source code
(for convenient off-line browsing)
- chaincon-deb64.zip –
the command-line programs contained in the package
precompiled for the 64-bit Debian GNU/Linux platform
(using the GNU C++ 4.9.2 compiler)
- chaincon-win32.zip –
the command-line programs contained in the package
precompiled for the 32-bit Microsoft Windows platform
(using the MinGW port of the GNU C++ 4.9.1 cross-compiler in GNU/Linux)
Selected earlier versions of this software may be available upon request.