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