A framework for sample-based CAD algorithms.
This is a highly modular framework for sample-based CAD algorithms, i.e. single cell construction and coverings.
The basic idea is to have properties (of some polynomials or real root functions); each property has a level w.r.t. to a variable ordering (i.e. the index of the main variable of a polynomial) and rules operating on them, each replacing a property by a "simpler" set of properties (eventually reducing the level). At some stage, we delineate properties (that is, ordering the root under a partial sample), determine an ordering and cell boundaries (called representation) to continue proving properties. For more details on the general framework, we refer to the paper.
The structure of this implementation is as follows:
- cadcells::datastructures contains the main datastructures. Read here for more details on the general structure of the framework.
- cadcells::operators defines the properties, the rules and methods to delineate properties. These are used by operators which provide an interface for performing projections on certain steps.
- cadcells::representation provides heuristics for computing the representations for cells, coverings and delineations.
- cadcells::algorithms contains helper methods, building blocks for algorithms as well as algorithms themselves. Go here for usage of the framework and high-level interfaces.
Quick start
For an introduction, we refer to the code of algorithms::onecell.