# ppl_Pointset_Powerset_C_Polyhedron_tag Interface Reference

Types and functions for the Pointset_Powerset of C_Polyhedron objects. More...

List of all members.

## Related Functions

(Note that these are not member functions.)
Ad Hoc Functions for Pointset_Powerset domains
int | ppl_Pointset_Powerset_C_Polyhedron_omega_reduce (ppl_const_Pointset_Powerset_C_Polyhedron_t ps)
| Drops from the sequence of disjuncts in `ps` all the non-maximal elements so that `ps` is non-redundant.
int | ppl_Pointset_Powerset_C_Polyhedron_size (ppl_const_Pointset_Powerset_C_Polyhedron_t ps, size_t *sz)
| Writes to `sz` the number of disjuncts in `ps`.
int | ppl_Pointset_Powerset_C_Polyhedron_geometrically_covers_Pointset_Powerset_C_Polyhedron (ppl_const_Pointset_Powerset_C_Polyhedron_t x, ppl_const_Pointset_Powerset_C_Polyhedron_t y)
| Returns a positive integer if powerset `x` geometrically covers powerset `y`; returns 0 otherwise.
int | ppl_Pointset_Powerset_C_Polyhedron_geometrically_equals_Pointset_Powerset_C_Polyhedron (ppl_const_Pointset_Powerset_C_Polyhedron_t x, ppl_const_Pointset_Powerset_C_Polyhedron_t y)
| Returns a positive integer if powerset `x` is geometrically equal to powerset `y`; returns 0 otherwise.
int | ppl_Pointset_Powerset_C_Polyhedron_add_disjunct (ppl_Pointset_Powerset_C_Polyhedron_t ps, ppl_const_Polyhedron_t d)
| Adds to `ps` a copy of disjunct `d`.
int | ppl_Pointset_Powerset_C_Polyhedron_drop_disjunct (ppl_Pointset_Powerset_C_Polyhedron_t ps, ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t cit, ppl_Pointset_Powerset_C_Polyhedron_iterator_t it)
| Drops from `ps` the disjunct pointed to by `cit`, assigning to `it` an iterator to the disjunct following `cit`.
int | ppl_Pointset_Powerset_C_Polyhedron_drop_disjuncts (ppl_Pointset_Powerset_C_Polyhedron_t ps, ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t first, ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t last)
| Drops from `ps` all the disjuncts from `first` to `last` (excluded).
int | ppl_Pointset_Powerset_C_Polyhedron_pairwise_reduce (ppl_Pointset_Powerset_C_Polyhedron_t ps)
| Modifies `ps` by (recursively) merging together the pairs of disjuncts whose upper-bound is the same as their set-theoretical union.

## Detailed Description

Types and functions for the Pointset_Powerset of C_Polyhedron objects.

The powerset domains can be instantiated by taking as a base domain any fixed semantic geometric description (C and NNC polyhedra, BD and octagonal shapes, boxes and grids). An element of the powerset domain represents a disjunctive collection of base objects (its disjuncts), all having the same space dimension.

Besides the functions that are available in all semantic geometric descriptions (whose documentation is not repeated here), the powerset domain also provides several ad hoc functions. In particular, the iterator types allow for the examination and manipulation of the collection of disjuncts.

## Friends And Related Function Documentation

int ppl_Pointset_Powerset_C_Polyhedron_size | ( | ppl_const_Pointset_Powerset_C_Polyhedron_t | ps,
|  | size_t * | sz |
| ) |  |  | `[related]`

Writes to `sz` the number of disjuncts in `ps`.

Note:
  If present, Omega-redundant elements will be counted too.

The documentation for this interface was generated from the following file:

- C_interface.dox