| CARVIEW |
Omega Project Source Release, version 1.00
Believe it or not, we are finally releasing version 1.0 of the Omega Project software, including:- The Omega library, a set of routines for manipulating linear constraints over integer variables, Presburger formulas, and Integer tuple relations and sets.
- The code generation library, a set of routines for generating code to scan the points in the union of a number of convex sets. (requires the Omega library)
- The Omega calculator, a text-based interface to the Omega library (requires both above libraries)
- Petit, a educational/research tool for analyzing array data dependences (also requires both libraries)
Executables
We are working on building a set of executables. We current have the following versions available:
New Features
- Compatibility with g++272
- Mac versions of the OmegaCalculator and Petit
- Smaller memory requirements
- No need to specify maximum number of constraints: problems will grow automatically
- A number of bug fixes
- Better handling of existentially quantified variables: we can now negate and generate code for
sets like:
{[i] : 1 <= i <= n && exists (alpha : i <= 10 alpha <= i+k)}; - An Example operator, that gives a sample solution to set or relation.
Documentation
Documentation available includes:
- Omega Calculator documentation (HTML) (PostScript)
- Omega Library interface documentation (HTML) (Postscript)
- Installation instructions
The Omega library/calculator manipulates sets of integer tuples and relations between integer tuples. Some examples include:
{ [i,j] : 1 <= i,j <= 10};
{ [i] ->[i,j] : 1 <= i < j <= 10};
{ [i,j] ->[j,j'] : 1 <= i < j < j' <= n};
The conditions describing a set or tuple can be an formulas can described by an arbitrary Presburger formula. Relations and sets can be combined using functions such as composition, intersection, union and difference. It also provides routines to generate code to iterate over the points in an integer tuple set. The Omega library provides a high-level, C++ interface to our routines. The Omega calculator is a text-based interface to the Omega library.
The implementation of the Omega Calculator have been done by a number of people at the University of Maryland:
Wayne Kelly, Vadim Maslov, William Pugh, Evan Rosser, Tatiana Shpeisman, Dave Wonnacott
As usual, the Omega Project is located at
omega@cs.umd.edu