Download The Omega Library - Computer Science

Transcript
Chapter 1
Introduction
1.1 About this release
This user manual corresponds to version 1.1 of the Omega Library. While we have tested the code extensively,
it is still research software, and we are constantly working on and improving the code. In other words, you
should expect that there are still undiscovered bugs in this software.
If you use this library, drop us a line and let us know what you're using it for, and what you would like
to see in future releases.
1.1.1 Changes since the last release
There are several important changes from the last release.
Inexactness changes
The most visible change to programmers is that relations which contain the constraint UNKNOWN
are now handled more sanely. As a result, functions which query whether a relation is satisable or is a
tautology have changed to reect the fact that you cannot always get a denitive answer in the presence
of UNKNOWN. In addition, there are new functions for checking subsets, plus two new functions for
taking upper and lower bounds of relations. Users may have to make some changes to their code in
order to compile with the new release. You can safely make the following substitutions and have your
code work as with version 1.0:
Relation::is satisfiable to Relation::is upper bound satisfiable
Relation::is tautology to Relation::is obvious tautology
Is Subset to Must Be Subset
Variables types replaced by variable kinds
It used to be that variables has types, such as input variable, output variable, global variable, and so
on. To prepare the way for variables having types such as integer, enumeration and rational, and avoid
the confusion that would be caused by having both types oating around, the previous uses of variable
types were changed to variable kinds.
Old Name
New Name
File
Var Type
Var Kind
pres gen.h
Global Type
Global Kind
pres var.h
Var Type Var Decl::type()
Var Kind Var Decl::kind()
pres var.h
void set type(Var Type v)
void set kind(Var Kind v)
pres var.h
Global Type Global Var Decl::type() Global Kind Global Var Decl::kind() pres var.h
Convex Hull
We now provide an exact convex hull computation, as well as variations such as ane hull, linear hull
and conic hull Sch86].
3