APRONXX  0.9.12
Classes | Functions
apron Namespace Reference

Classes

class  abstract0
 Level 0 abstract value (ap_abstract0_t* wrapper). More...
 
class  abstract1
 Level 1 abstract value (ap_abstract1_t wrapper). More...
 
class  bad_discriminant
 Exception raised when an operation is incompatible with a discriminant. More...
 
struct  bottom
 Empty interval or domain, to simplify initialisations and assignments. More...
 
class  box_manager
 Manager factory for the Box interval-domain library. More...
 
class  coeff
 Coefficient (ap_coeff_t wrapper). More...
 
class  dim
 Represents a dimension (i.e., variable by index) in an expression tree. More...
 
class  dimchange
 Dimension change object (ap_dimchange_t wrapper). More...
 
class  dimperm
 Dimension permutation object (ap_dimperm_t wrapper). More...
 
class  environment
 Level 1 environment (ap_environment_t wrapper). More...
 
struct  frac
 A fraction with native int coefficients, to simplify initialisations and assignments. More...
 
class  generator0
 Level 0 generator (ap_generator0_t wrapper). More...
 
class  generator0_array
 Array of generators (ap_generator0_array_t wrapper). More...
 
class  generator1
 Level 1 generator (ap_generator1_t wrapper). More...
 
class  generator1_array
 Array of generators (ap_generator1_array_t wrapper). More...
 
struct  id
 The identity permutation, to simplify initialisations and assignments. More...
 
struct  infty
 Either +oo or -oo, to simplify initialisations and assignments. More...
 
class  interval
 Interval (ap_interval_t wrapper). More...
 
class  interval_array
 array of interval(s). More...
 
class  lincons0
 Level 0 linear constraint (ap_lincons0_t wrapper). More...
 
class  lincons0_array
 Array of linear constraints (ap_lincons0_array_t wrapper). More...
 
class  lincons1
 Level 1 linear constraint (ap_lincons1_t wrapper). More...
 
class  lincons1_array
 Array of linear constraints (ap_lincons1_array_t wrapper). More...
 
class  linexpr0
 Level 0 linear expression (ap_linexpr0_t wrapper). More...
 
class  linexpr1
 Level 1 linear expression (ap_linexpr1_t wrapper). More...
 
class  manager
 Library manager (ap_manager_t wrapper). More...
 
class  not_implemented
 Exception raised when a function is not implemented. More...
 
class  oct_manager
 Manager factory for the Octagon domain library. More...
 
class  pkgrid_manager
 Manager factory for reduced product domain of NewPolka polyhedra and PPL grids. More...
 
class  polka_manager
 Manager factory for the NewPolka polyhedra library. More...
 
class  ppl_grid_manager
 Manager factory for grid domain using the PPL library. More...
 
class  ppl_poly_manager
 Manager factory for polyhedra domain using the PPL library. More...
 
class  scalar
 Scalar (ap_scalar_t wrapper). More...
 
class  t1p_manager
 Manager factory for the Taylor1plus zonotope library. More...
 
struct  tbool
 3-valued boolean (tbool_t wrapper). More...
 
class  tcons0
 Level 0 arbitrary constraint (ap_tcons0_t wrapper). More...
 
class  tcons0_array
 Array of arbitrary constraints (ap_tcons0_array_t wrapper). More...
 
class  tcons1
 Level 1 arbitrary constraint (ap_tcons1_t wrapper). More...
 
class  tcons1_array
 Array of arbitrary constraints (ap_tcons1_array_t wrapper). More...
 
class  texpr0
 Level 0 arbitrary expression tree (ap_texpr0_t wrapper). More...
 
class  texpr1
 Level 1 arbitrary expression tree (ap_texpr1_t wrapper). More...
 
class  timeout
 Exception raised when a timeout occurs. More...
 
struct  top
 Full interval (]-oo,+oo[) or domain, to simplify initialisations and assignments. More...
 
struct  unsat
 Unsatisfiable constraint, to simplify initialisations and assignments. More...
 
struct  use_malloc
 Inherited by most wrappers to map new and delete to malloc and free. More...
 
class  var
 Variable name (ap_var_t wrapper). More...
 
class  varname
 Stream modifier to set variable names to dimensions. More...
 

Functions

void printdiff (manager &m, const abstract0 &x, const abstract0 &y, char **name_of_dim=NULL, FILE *stream=stdout)
 
std::ostream & operator<< (std::ostream &os, const abstract0 &s)
 
abstract0deserialize (manager &m, abstract0 &dst, const std::string &s, size_t *eaten=NULL)
 
bool operator== (const abstract0 &x, const abstract0 &y)
 
bool operator!= (const abstract0 &x, const abstract0 &y)
 
bool operator<= (const abstract0 &x, const abstract0 &y)
 
bool operator>= (const abstract0 &x, const abstract0 &y)
 
bool operator> (const abstract0 &x, const abstract0 &y)
 
bool operator< (const abstract0 &x, const abstract0 &y)
 
abstract0meet (manager &m, abstract0 &dst, const abstract0 &x, const abstract0 &y)
 
abstract0meet (manager &m, abstract0 &dst, const std::vector< const abstract0 * > &x)
 
abstract0meet (manager &m, abstract0 &dst, size_t sz, const abstract0 *const x[])
 
abstract0join (manager &m, abstract0 &dst, const abstract0 &x, const abstract0 &y)
 
abstract0join (manager &m, abstract0 &dst, size_t sz, const abstract0 *const x[])
 
abstract0join (manager &m, abstract0 &dst, const std::vector< const abstract0 * > &x)
 
abstract0meet (manager &m, abstract0 &dst, const abstract0 &x, const lincons0_array &y)
 
abstract0meet (manager &m, abstract0 &dst, const abstract0 &x, const tcons0_array &y)
 
abstract0add_rays (manager &m, abstract0 &dst, const abstract0 &x, const generator0_array &y)
 
abstract0assign (manager &m, abstract0 &dst, const abstract0 &src, ap_dim_t dim, const linexpr0 &l, const abstract0 &inter=abstract0::null)
 
abstract0assign (manager &m, abstract0 &dst, const abstract0 &src, size_t size, const ap_dim_t dim[], const linexpr0 *const l[], const abstract0 &inter=abstract0::null)
 
abstract0assign (manager &m, abstract0 &dst, const abstract0 &src, const std::vector< ap_dim_t > &dim, const std::vector< const linexpr0 * > &l, const abstract0 &inter=abstract0::null)
 
abstract0assign (manager &m, abstract0 &dst, const abstract0 &src, ap_dim_t dim, const texpr0 &l, const abstract0 &inter=abstract0::null)
 
abstract0assign (manager &m, abstract0 &dst, const abstract0 &src, size_t size, const ap_dim_t dim[], const texpr0 *const l[], const abstract0 &inter=abstract0::null)
 
abstract0assign (manager &m, abstract0 &dst, const abstract0 &src, const std::vector< ap_dim_t > &dim, const std::vector< const texpr0 * > &l, const abstract0 &inter=abstract0::null)
 
abstract0substitute (manager &m, abstract0 &dst, const abstract0 &src, ap_dim_t dim, const linexpr0 &l, const abstract0 &inter=abstract0::null)
 
abstract0substitute (manager &m, abstract0 &dst, const abstract0 &src, size_t size, const ap_dim_t dim[], const linexpr0 *const l[], const abstract0 &inter=abstract0::null)
 
abstract0substitute (manager &m, abstract0 &dst, const abstract0 &src, const std::vector< ap_dim_t > &dim, const std::vector< const linexpr0 * > &l, const abstract0 &inter=abstract0::null)
 
abstract0substitute (manager &m, abstract0 &dst, const abstract0 &src, ap_dim_t dim, const texpr0 &l, const abstract0 &inter=abstract0::null)
 
abstract0substitute (manager &m, abstract0 &dst, const abstract0 &src, size_t size, const ap_dim_t dim[], const texpr0 *const l[], const abstract0 &inter=abstract0::null)
 
abstract0substitute (manager &m, abstract0 &dst, const abstract0 &src, const std::vector< ap_dim_t > &dim, const std::vector< const texpr0 * > &l, const abstract0 &inter=abstract0::null)
 
abstract0forget (manager &m, abstract0 &dst, const abstract0 &src, ap_dim_t dim, bool project=false)
 
abstract0forget (manager &m, abstract0 &dst, const abstract0 &src, size_t size, const ap_dim_t dim[], bool project=false)
 
abstract0forget (manager &m, abstract0 &dst, const abstract0 &src, const std::vector< ap_dim_t > dim, bool project=false)
 
abstract0add_dimensions (manager &m, abstract0 &dst, const abstract0 &src, const dimchange &d, bool project=false)
 
abstract0remove_dimensions (manager &m, abstract0 &dst, const abstract0 &src, const dimchange &d)
 
abstract0permute_dimensions (manager &m, abstract0 &dst, const abstract0 &src, const dimperm &d)
 
abstract0expand (manager &m, abstract0 &dst, const abstract0 &src, ap_dim_t dim, size_t n=1)
 
abstract0fold (manager &m, abstract0 &dst, const abstract0 &src, size_t size, const ap_dim_t dim[])
 
abstract0fold (manager &m, abstract0 &dst, const abstract0 &src, const std::vector< ap_dim_t > &dim)
 
abstract0widening (manager &m, abstract0 &dst, const abstract0 &x, const abstract0 &y)
 
abstract0widening (manager &m, abstract0 &dst, const abstract0 &x, const abstract0 &y, const lincons0_array &l)
 
abstract0closure (manager &m, abstract0 &dst, const abstract0 &src)
 
void printdiff (manager &m, const abstract1 &x, const abstract1 &y, FILE *stream=stdout)
 
std::ostream & operator<< (std::ostream &os, const abstract1 &s)
 
abstract1deserialize (manager &m, abstract1 &dst, const std::string &s, size_t *eaten=NULL)
 
bool operator== (const abstract1 &x, const abstract1 &y)
 
bool operator!= (const abstract1 &x, const abstract1 &y)
 
bool operator<= (const abstract1 &x, const abstract1 &y)
 
bool operator>= (const abstract1 &x, const abstract1 &y)
 
bool operator> (const abstract1 &x, const abstract1 &y)
 
bool operator< (const abstract1 &x, const abstract1 &y)
 
abstract1unify (manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y)
 
abstract1meet (manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y)
 
abstract1meet (manager &m, abstract1 &dst, const std::vector< const abstract1 * > &x)
 
abstract1meet (manager &m, abstract1 &dst, size_t sz, const abstract1 *const x[])
 
abstract1join (manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y)
 
abstract1join (manager &m, abstract1 &dst, size_t sz, const abstract1 *const x[])
 
abstract1join (manager &m, abstract1 &dst, const std::vector< const abstract1 * > &x)
 
abstract1meet (manager &m, abstract1 &dst, const abstract1 &x, const lincons1_array &y)
 
abstract1meet (manager &m, abstract1 &dst, const abstract1 &x, const tcons1_array &y)
 
abstract1add_rays (manager &m, abstract1 &dst, const abstract1 &x, const generator1_array &y)
 
static ap_abstract1_t * ap_abstract1_t_or_null (const abstract1 &i)
 
abstract1assign (manager &m, abstract1 &dst, const abstract1 &src, const var &v, const linexpr1 &l, const abstract1 &inter=abstract1::null)
 
abstract1assign (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[], const linexpr1 *const l[], const abstract1 &inter=abstract1::null)
 
abstract1assign (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v, const std::vector< const linexpr1 * > &l, const abstract1 &inter=abstract1::null)
 
abstract1assign (manager &m, abstract1 &dst, const abstract1 &src, const var &v, const texpr1 &l, const abstract1 &inter=abstract1::null)
 
abstract1assign (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[], const texpr1 *const l[], const abstract1 &inter=abstract1::null)
 
abstract1assign (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v, const std::vector< const texpr1 * > &l, const abstract1 &inter=abstract1::null)
 
abstract1substitute (manager &m, abstract1 &dst, const abstract1 &src, const var &v, const linexpr1 &l, const abstract1 &inter=abstract1::null)
 
abstract1substitute (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[], const linexpr1 *const l[], const abstract1 &inter=abstract1::null)
 
abstract1substitute (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v, const std::vector< const linexpr1 * > &l, const abstract1 &inter=abstract1::null)
 
abstract1substitute (manager &m, abstract1 &dst, const abstract1 &src, const var &v, const texpr1 &l, const abstract1 &inter=abstract1::null)
 
abstract1substitute (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[], const texpr1 *const l[], const abstract1 &inter=abstract1::null)
 
abstract1substitute (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v, const std::vector< const texpr1 * > &l, const abstract1 &inter=abstract1::null)
 
abstract1forget (manager &m, abstract1 &dst, const abstract1 &src, const var &v, bool project=false)
 
abstract1forget (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var v[], bool project=false)
 
abstract1forget (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &v, bool project=false)
 
abstract1change_environment (manager &m, abstract1 &dst, const abstract1 &src, const environment &e, bool project=false)
 
abstract1minimize_environment (manager &m, abstract1 &dst, const abstract1 &src)
 
abstract1rename (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var oldv[], const var newv[])
 
abstract1rename (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &oldv, const std::vector< var > &newv)
 
abstract1expand (manager &m, abstract1 &dst, const abstract1 &src, const var &v, size_t size, const var vv[])
 
abstract1expand (manager &m, abstract1 &dst, const abstract1 &src, const var &v, const std::vector< var > &vv)
 
abstract1fold (manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var vv[])
 
abstract1fold (manager &m, abstract1 &dst, const abstract1 &src, const std::vector< var > &vv)
 
abstract1widening (manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y)
 
abstract1widening (manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y, const lincons1_array &l)
 
abstract1closure (manager &m, abstract1 &dst, const abstract1 &src)
 
void swap (coeff &a, coeff &b)
 
std::ostream & operator<< (std::ostream &os, const coeff &s)
 
int cmp (const coeff &a, const coeff &b)
 
bool operator== (const coeff &a, const coeff &b)
 
bool operator!= (const coeff &a, const coeff &b)
 
template<class charT , class Traits >
std::basic_ostream< charT, Traits > & operator<< (std::basic_ostream< charT, Traits > &os, const varname &v)
 
template<class charT , class Traits >
std::vector< std::string > * get_varname (std::basic_ostream< charT, Traits > &os)
 
std::ostream & operator<< (std::ostream &os, const dimchange &s)
 
std::ostream & operator<< (std::ostream &os, const dimperm &s)
 
dimperm operator * (const dimperm &x, const dimperm &y)
 
static ap_var_t * apxx_environment_get_names (const std::vector< var > &n)
 
static void apxx_environment_get_names_pair (const std::vector< std::pair< var, var > > &n, ap_var_t **x, ap_var_t **y)
 
environment lce (const environment &x, const environment &y)
 
environment lce (const environment &x, const environment &y, dimchange &chgx, dimchange &chgy)
 
environment lce (const std::vector< environment > &x)
 
environment lce (const environment *env, size_t env_size)
 
environment lce (const std::vector< environment > &x, std::vector< dimchange > &chg)
 
environment lce (const environment *env, dimchange *chg, size_t env_size)
 
dimchange get_dimchange (const environment &x, const environment &y)
 
bool operator== (const environment &x, const environment &y)
 
bool operator!= (const environment &x, const environment &y)
 
bool operator<= (const environment &x, const environment &y)
 
bool operator>= (const environment &x, const environment &y)
 
int cmp (const environment &x, const environment &y)
 
std::ostream & operator<< (std::ostream &os, const environment &s)
 
std::ostream & operator<< (std::ostream &os, const generator0 &s)
 
std::ostream & operator<< (std::ostream &os, const generator0_array &s)
 
std::ostream & operator<< (std::ostream &os, const generator1 &s)
 
std::ostream & operator<< (std::ostream &os, const generator1_array &s)
 
void swap (interval &a, interval &b)
 
std::ostream & operator<< (std::ostream &os, const interval &s)
 
bool operator<= (const interval &a, const interval &b)
 
bool operator>= (const interval &a, const interval &b)
 
bool operator< (const interval &a, const interval &b)
 
bool operator> (const interval &a, const interval &b)
 
bool operator== (const interval &a, const interval &b)
 
bool operator!= (const interval &a, const interval &b)
 
interval::order cmp (const interval &a, const interval &b)
 
std::ostream & operator<< (std::ostream &os, const interval_array &s)
 
std::ostream & operator<< (std::ostream &os, const lincons0 &s)
 
std::ostream & operator<< (std::ostream &os, const lincons0_array &s)
 
std::ostream & operator<< (std::ostream &os, const lincons1 &s)
 
std::ostream & operator<< (std::ostream &os, const lincons1_array &s)
 
static void apxx_linexpr0_init (ap_linexpr0_t *d, ap_linexpr_discr_t discr, size_t size)
 
static void apxx_linexpr0_clear (ap_linexpr0_t *d)
 
static void apxx_linexpr0_copy (ap_linexpr0_t *d, const ap_linexpr0_t *s)
 
static bool print_coeff_sign (std::ostream &os, const coeff &c, bool &first, bool cst)
 
std::ostream & operator<< (std::ostream &os, const linexpr0 &s)
 
int compare (const linexpr0 &x, const linexpr0 &y)
 
bool equal (const linexpr0 &x, const linexpr0 &y)
 
std::ostream & operator<< (std::ostream &os, const linexpr1 &s)
 
tbool operator|| (tbool a, tbool b)
 
tbool operator && (tbool a, tbool b)
 
tbool operator! (tbool a)
 
std::ostream & operator<< (std::ostream &os, tbool x)
 
std::ostream & operator<< (std::ostream &os, const manager &s)
 
void swap (scalar &a, scalar &b)
 
std::ostream & operator<< (std::ostream &os, const scalar &s)
 
scalar::order cmp (const scalar &a, const scalar &b)
 
bool operator>= (const scalar &a, const scalar &b)
 
bool operator<= (const scalar &a, const scalar &b)
 
bool operator> (const scalar &a, const scalar &b)
 
bool operator< (const scalar &a, const scalar &b)
 
bool operator== (const scalar &a, const scalar &b)
 
bool operator!= (const scalar &a, const scalar &b)
 
scalar::order cmp (const scalar &a, int b)
 
bool operator>= (const scalar &a, int b)
 
bool operator<= (const scalar &a, int b)
 
bool operator> (const scalar &a, int b)
 
bool operator< (const scalar &a, int b)
 
bool operator== (const scalar &a, int b)
 
bool operator!= (const scalar &a, int b)
 
scalar::order cmp (int a, const scalar &b)
 
bool operator>= (int a, const scalar &b)
 
bool operator<= (int a, const scalar &b)
 
bool operator> (int a, const scalar &b)
 
bool operator< (int a, const scalar &b)
 
bool operator== (int a, const scalar &b)
 
bool operator!= (int a, const scalar &b)
 
tcons0 operator>= (const texpr0::builder &a, const texpr0::builder &b)
 
tcons0 operator<= (const texpr0::builder &a, const texpr0::builder &b)
 
tcons0 operator> (const texpr0::builder &a, const texpr0::builder &b)
 
tcons0 operator< (const texpr0::builder &a, const texpr0::builder &b)
 
tcons0 operator== (const texpr0::builder &a, const texpr0::builder &b)
 
tcons0 operator!= (const texpr0::builder &a, const texpr0::builder &b)
 
std::ostream & operator<< (std::ostream &os, const tcons0 &s)
 
std::ostream & operator<< (std::ostream &os, const tcons0_array &s)
 
tcons1 operator>= (const texpr1::builder &a, const texpr1::builder &b)
 
tcons1 operator<= (const texpr1::builder &a, const texpr1::builder &b)
 
tcons1 operator> (const texpr1::builder &a, const texpr1::builder &b)
 
tcons1 operator< (const texpr1::builder &a, const texpr1::builder &b)
 
tcons1 operator== (const texpr1::builder &a, const texpr1::builder &b)
 
tcons1 operator!= (const texpr1::builder &a, const texpr1::builder &b)
 
std::ostream & operator<< (std::ostream &os, const tcons1 &s)
 
std::ostream & operator<< (std::ostream &os, const tcons1_array &s)
 
bool is_unop (ap_texpr_op_t op)
 Whether the operator is unary. More...
 
bool is_binop (ap_texpr_op_t op)
 Whether the operator is binary. More...
 
std::ostream & operator<< (std::ostream &os, const texpr0 &s)
 
void apxx_texpr0_ostream (std::ostream &os, ap_texpr0_t *a, std::vector< std::string > *names)
 
std::ostream & operator<< (std::ostream &os, const texpr0::const_iterator &s)
 
texpr0::builder unary (ap_texpr_op_t op, const texpr0::builder &a, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder binary (ap_texpr_op_t op, const texpr0::builder &a, const texpr0::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder add (const texpr0::builder &a, const texpr0::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder sub (const texpr0::builder &a, const texpr0::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder mul (const texpr0::builder &a, const texpr0::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder div (const texpr0::builder &a, const texpr0::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder mod (const texpr0::builder &a, const texpr0::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder pow (const texpr0::builder &a, const texpr0::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder neg (const texpr0::builder &a, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder cast (const texpr0::builder &a, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder floor (const texpr0::builder &a)
 
texpr0::builder ceil (const texpr0::builder &a)
 
texpr0::builder trunc (const texpr0::builder &a)
 
texpr0::builder sqrt (const texpr0::builder &a, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr0::builder operator+ (const texpr0::builder &a)
 
texpr0::builder operator- (const texpr0::builder &a)
 
texpr0::builder operator+ (const texpr0::builder &a, const texpr0::builder &b)
 
texpr0::builder operator- (const texpr0::builder &a, const texpr0::builder &b)
 
texpr0::builder operator * (const texpr0::builder &a, const texpr0::builder &b)
 
texpr0::builder operator/ (const texpr0::builder &a, const texpr0::builder &b)
 
texpr0::builder operator% (const texpr0::builder &a, const texpr0::builder &b)
 
texpr0::builder operator^ (const texpr0::builder &a, const texpr0::builder &b)
 
void apxx_texpr0_env_ostream (std::ostream &os, ap_environment_t *env, ap_texpr0_t *a)
 
std::ostream & operator<< (std::ostream &os, const texpr1 &s)
 
std::ostream & operator<< (std::ostream &os, const texpr1::const_iterator &s)
 
texpr1::builder unary (ap_texpr_op_t op, const texpr1::builder &a, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder binary (ap_texpr_op_t op, const texpr1::builder &a, const texpr1::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder add (const texpr1::builder &a, const texpr1::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder sub (const texpr1::builder &a, const texpr1::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder mul (const texpr1::builder &a, const texpr1::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder div (const texpr1::builder &a, const texpr1::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder mod (const texpr1::builder &a, const texpr1::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder pow (const texpr1::builder &a, const texpr1::builder &b, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder neg (const texpr1::builder &a, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder cast (const texpr1::builder &a, ap_texpr_rtype_t rtype, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder floor (const texpr1::builder &a)
 
texpr1::builder ceil (const texpr1::builder &a)
 
texpr1::builder trunc (const texpr1::builder &a)
 
texpr1::builder sqrt (const texpr1::builder &a, ap_texpr_rtype_t rtype=AP_RTYPE_REAL, ap_texpr_rdir_t rdir=AP_RDIR_NEAREST)
 
texpr1::builder operator+ (const texpr1::builder &a)
 
texpr1::builder operator- (const texpr1::builder &a)
 
texpr1::builder operator+ (const texpr1::builder &a, const texpr1::builder &b)
 
texpr1::builder operator- (const texpr1::builder &a, const texpr1::builder &b)
 
texpr1::builder operator * (const texpr1::builder &a, const texpr1::builder &b)
 
texpr1::builder operator/ (const texpr1::builder &a, const texpr1::builder &b)
 
texpr1::builder operator% (const texpr1::builder &a, const texpr1::builder &b)
 
texpr1::builder operator^ (const texpr1::builder &a, const texpr1::builder &b)
 
int compare (const var &x, const var &y)
 
bool operator== (const var &x, const var &y)
 
bool operator!= (const var &x, const var &y)
 
bool operator>= (const var &x, const var &y)
 
bool operator<= (const var &x, const var &y)
 
bool operator> (const var &x, const var &y)
 
bool operator< (const var &x, const var &y)
 
std::ostream & operator<< (std::ostream &os, const var &s)
 

Function Documentation

◆ add() [1/2]

texpr0::builder apron::add ( const texpr0::builder a,
const texpr0::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ add() [2/2]

texpr1::builder apron::add ( const texpr1::builder a,
const texpr1::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ add_dimensions()

abstract0& apron::add_dimensions ( manager m,
abstract0 dst,
const abstract0 src,
const dimchange d,
bool  project = false 
)
inline
  • project whether to set the new dimensions to 0 (if true), or leave them undefined (if false).
Returns
a reference to dst.

◆ add_rays() [1/2]

abstract0& apron::add_rays ( manager m,
abstract0 dst,
const abstract0 x,
const generator0_array y 
)
inline
  • y can only contain rays and lines, not vertexes.
Returns
a reference to *this.

◆ add_rays() [2/2]

abstract1& apron::add_rays ( manager m,
abstract1 dst,
const abstract1 x,
const generator1_array y 
)
inline
  • y can only contain rays and lines, not vertexes.
Returns
a reference to *this.

◆ ap_abstract1_t_or_null()

static ap_abstract1_t* apron::ap_abstract1_t_or_null ( const abstract1 i)
inlinestatic

◆ apxx_environment_get_names()

static ap_var_t* apron::apxx_environment_get_names ( const std::vector< var > &  n)
inlinestatic

◆ apxx_environment_get_names_pair()

static void apron::apxx_environment_get_names_pair ( const std::vector< std::pair< var, var > > &  n,
ap_var_t **  x,
ap_var_t **  y 
)
inlinestatic

◆ apxx_linexpr0_clear()

static void apron::apxx_linexpr0_clear ( ap_linexpr0_t *  d)
inlinestatic

◆ apxx_linexpr0_copy()

static void apron::apxx_linexpr0_copy ( ap_linexpr0_t *  d,
const ap_linexpr0_t *  s 
)
inlinestatic

◆ apxx_linexpr0_init()

static void apron::apxx_linexpr0_init ( ap_linexpr0_t *  d,
ap_linexpr_discr_t  discr,
size_t  size 
)
inlinestatic

◆ apxx_texpr0_env_ostream()

void apron::apxx_texpr0_env_ostream ( std::ostream &  os,
ap_environment_t *  env,
ap_texpr0_t *  a 
)

◆ apxx_texpr0_ostream()

void apron::apxx_texpr0_ostream ( std::ostream &  os,
ap_texpr0_t *  a,
std::vector< std::string > *  names 
)

◆ assign() [1/12]

abstract0& apron::assign ( manager m,
abstract0 dst,
const abstract0 src,
ap_dim_t  dim,
const linexpr0 l,
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of assigning l to dimension dim in src. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ assign() [2/12]

abstract0& apron::assign ( manager m,
abstract0 dst,
const abstract0 src,
size_t  size,
const ap_dim_t  dim[],
const linexpr0 *const  l[],
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of assigning l[i] to dimension dim[i] in src, for i from 0 to size-1. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ assign() [3/12]

abstract0& apron::assign ( manager m,
abstract0 dst,
const abstract0 src,
const std::vector< ap_dim_t > &  dim,
const std::vector< const linexpr0 * > &  l,
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of assigning l[i] to dimension dim[i] in src. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.
Exceptions
std::invalid_argumentif the vectors have different size.

◆ assign() [4/12]

abstract0& apron::assign ( manager m,
abstract0 dst,
const abstract0 src,
ap_dim_t  dim,
const texpr0 l,
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of assigning l to dimension dim in src. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ assign() [5/12]

abstract0& apron::assign ( manager m,
abstract0 dst,
const abstract0 src,
size_t  size,
const ap_dim_t  dim[],
const texpr0 *const  l[],
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of assigning l[i] to dimension dim[i] in src, for i from 0 to size-1. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ assign() [6/12]

abstract0& apron::assign ( manager m,
abstract0 dst,
const abstract0 src,
const std::vector< ap_dim_t > &  dim,
const std::vector< const texpr0 * > &  l,
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of assigning l[i] to dimension dim[i] in src. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.
Exceptions
std::invalid_argumentif the vectors have different size.

◆ assign() [7/12]

abstract1& apron::assign ( manager m,
abstract1 dst,
const abstract1 src,
const var v,
const linexpr1 l,
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of assigning l to variable v in src. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ assign() [8/12]

abstract1& apron::assign ( manager m,
abstract1 dst,
const abstract1 src,
size_t  size,
const var  v[],
const linexpr1 *const  l[],
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of assigning l[i] to variable v[i] in src, for i from 0 to size-1. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ assign() [9/12]

abstract1& apron::assign ( manager m,
abstract1 dst,
const abstract1 src,
const std::vector< var > &  v,
const std::vector< const linexpr1 * > &  l,
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of assigning l[i] to variable v[i] in src. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.
Exceptions
std::invalid_argumentif the vectors have different size.

◆ assign() [10/12]

abstract1& apron::assign ( manager m,
abstract1 dst,
const abstract1 src,
const var v,
const texpr1 l,
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of assigning l to variable v in src. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ assign() [11/12]

abstract1& apron::assign ( manager m,
abstract1 dst,
const abstract1 src,
size_t  size,
const var  v[],
const texpr1 *const  l[],
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of assigning l[i] to variable v[i] in src, for i from 0 to size-1. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ assign() [12/12]

abstract1& apron::assign ( manager m,
abstract1 dst,
const abstract1 src,
const std::vector< var > &  v,
const std::vector< const texpr1 * > &  l,
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of assigning l[i] to variable v[i] in src. Assignments are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.
Exceptions
std::invalid_argumentif the vectors have different size.

◆ binary() [1/2]

texpr0::builder apron::binary ( ap_texpr_op_t  op,
const texpr0::builder a,
const texpr0::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

Creates only one node. The argument expressions is aliased, not copied.

  • op should be a binary operator: addition (AP_TEXPR_ADD), subtraction (AP_TEXPR_SUB), multiplication (AP_TEXPR_MUL), division (AP_TEXPR_DIV), modulo (AP_TEXPR_MOD), or power (AP_TEXPR_POW).
  • argA should point to the left argument expression.
  • argB should point to the right argument expression.
  • rtype is the destination type (for rounding): reals (AP_RTYPE_REAL, means no rounding), perfect integers (AP_RTYPE_INT), 32-bit single precision (AP_RTYPE_SINGLE), 64-bit double precision (AP_RTYPE_DOUBLE), 80-bit extended precision (AP_RTYPE_EXTENDED).
  • rdir is the rounding direction: to nearest (AP_RDIR_NEAREST), truncation (AP_RDIR_ZERO), towards +oo (AP_RDIR_UP), towards -oo (AP_RDIR_DOWN), or non-deterministic (AP_RDIR_RND).
    Exceptions
    std::invalid_argumentif op is not a binary operator.

◆ binary() [2/2]

texpr1::builder apron::binary ( ap_texpr_op_t  op,
const texpr1::builder a,
const texpr1::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

Creates only one node. The argument expressions is aliased, not copied.

  • op should be a binary operator: addition (AP_TEXPR_ADD), subtraction (AP_TEXPR_SUB), multiplication (AP_TEXPR_MUL), division (AP_TEXPR_DIV), or modulo (AP_TEXPR_MOD, AP_TEXPR_POW).
  • argA should point to the left argument expression.
  • argB should point to the right argument expression.
  • rtype is the destination type (for rounding): reals (AP_RTYPE_REAL, means no rounding), perfect integers (AP_RTYPE_INT), 32-bit single precision (AP_RTYPE_SINGLE), 64-bit double precision (AP_RTYPE_DOUBLE), 80-bit extended precision (AP_RTYPE_EXTENDED).
  • rdir is the rounding direction: to nearest (AP_RDIR_NEAREST), truncation (AP_RDIR_ZERO), towards +oo (AP_RDIR_UP), towards -oo (AP_RDIR_DOWN), or non-deterministic (AP_RDIR_RND).
    Exceptions
    std::invalid_argumentif op is not a binary operator.

◆ cast() [1/2]

texpr0::builder apron::cast ( const texpr0::builder a,
ap_texpr_rtype_t  rtype,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ cast() [2/2]

texpr1::builder apron::cast ( const texpr1::builder a,
ap_texpr_rtype_t  rtype,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ ceil() [1/2]

texpr0::builder apron::ceil ( const texpr0::builder a)
inline

◆ ceil() [2/2]

texpr1::builder apron::ceil ( const texpr1::builder a)
inline

◆ change_environment()

abstract1& apron::change_environment ( manager m,
abstract1 dst,
const abstract1 src,
const environment e,
bool  project = false 
)
inline
  • project whether new variables are initialized to 0 (if true), or undefined (if false).
Returns
a reference to dst.

◆ closure() [1/2]

abstract0& apron::closure ( manager m,
abstract0 dst,
const abstract0 src 
)
inline
Returns
a reference to dst.

◆ closure() [2/2]

abstract1& apron::closure ( manager m,
abstract1 dst,
const abstract1 src 
)
inline
Returns
a reference to dst.

◆ cmp() [1/6]

scalar::order apron::cmp ( const scalar a,
const scalar b 
)
inline

◆ cmp() [2/6]

interval::order apron::cmp ( const interval a,
const interval b 
)
inline

◆ cmp() [3/6]

scalar::order apron::cmp ( const scalar a,
int  b 
)
inline

◆ cmp() [4/6]

scalar::order apron::cmp ( int  a,
const scalar b 
)
inline

◆ cmp() [5/6]

int apron::cmp ( const environment x,
const environment y 
)
inline
Returns
  • -2 if some variable name has different type in both environments
  • -1 if x is a sub-environment of y
  • 0 if x equals y
  • +1 if x is a super-environment of y
  • +2 if x and y a not comparable but there exists a lowest upper bound

◆ cmp() [6/6]

int apron::cmp ( const coeff a,
const coeff b 
)
inline

◆ compare() [1/2]

int apron::compare ( const var x,
const var y 
)
inline

◆ compare() [2/2]

int apron::compare ( const linexpr0 x,
const linexpr0 y 
)
inline

◆ deserialize() [1/2]

abstract0& apron::deserialize ( manager m,
abstract0 dst,
const std::string &  s,
size_t *  eaten = NULL 
)
inline

The managers used to serialized and deserialize need not be the same, but they must have been created using the same library and with the same arguments.

  • eaten, if not NULL, will be set to the actual number of bytes consumed from the string.
    Returns
    a reference to dst.

◆ deserialize() [2/2]

abstract1& apron::deserialize ( manager m,
abstract1 dst,
const std::string &  s,
size_t *  eaten = NULL 
)
inline

The managers used to serialized and deserialize need not be the same, but they must have been created using the same library and with the same arguments.

  • eaten, if not NULL, will be set to the actual number of bytes consumed from the string.
    Returns
    a reference to dst.

◆ div() [1/2]

texpr0::builder apron::div ( const texpr0::builder a,
const texpr0::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ div() [2/2]

texpr1::builder apron::div ( const texpr1::builder a,
const texpr1::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ equal()

bool apron::equal ( const linexpr0 x,
const linexpr0 y 
)
inline

◆ expand() [1/3]

abstract0& apron::expand ( manager m,
abstract0 dst,
const abstract0 src,
ap_dim_t  dim,
size_t  n = 1 
)
inline

New dimensions are appended after the last integer or real dimension of dst.

Returns
a reference to dst.

◆ expand() [2/3]

abstract1& apron::expand ( manager m,
abstract1 dst,
const abstract1 src,
const var v,
size_t  size,
const var  vv[] 
)
inline

New variables are named vv[0] to vv[size-1].

Returns
a reference to dst.

◆ expand() [3/3]

abstract1& apron::expand ( manager m,
abstract1 dst,
const abstract1 src,
const var v,
const std::vector< var > &  vv 
)
inline

The i-th new variables is named vv[i].

Returns
a reference to dst.

◆ floor() [1/2]

texpr0::builder apron::floor ( const texpr0::builder a)
inline

◆ floor() [2/2]

texpr1::builder apron::floor ( const texpr1::builder a)
inline

◆ fold() [1/4]

abstract0& apron::fold ( manager m,
abstract0 dst,
const abstract0 src,
size_t  size,
const ap_dim_t  dim[] 
)
inline

dim must be sorted and contain variables of the same type (integer or real). After folding, only dim[0] is kept and other dimensions are removed.

Returns
a reference to dst.

◆ fold() [2/4]

abstract0& apron::fold ( manager m,
abstract0 dst,
const abstract0 src,
const std::vector< ap_dim_t > &  dim 
)
inline

dim must be sorted and contain variables of the same type (integer or real). After folding, only dim[0] is kept and other dimensions are removed.

Returns
a reference to dst.

◆ fold() [3/4]

abstract1& apron::fold ( manager m,
abstract1 dst,
const abstract1 src,
size_t  size,
const var  vv[] 
)
inline

After folding, only v[0] is kept and other variables are removed.

Returns
a reference to dst.

◆ fold() [4/4]

abstract1& apron::fold ( manager m,
abstract1 dst,
const abstract1 src,
const std::vector< var > &  vv 
)
inline

After folding, only v[0] is kept and other variables are removed.

Returns
a reference to dst.

◆ forget() [1/6]

abstract0& apron::forget ( manager m,
abstract0 dst,
const abstract0 src,
ap_dim_t  dim,
bool  project = false 
)
inline
  • project if true, resets the dimension to 0 (if true).
Returns
a reference to dst.

◆ forget() [2/6]

abstract0& apron::forget ( manager m,
abstract0 dst,
const abstract0 src,
size_t  size,
const ap_dim_t  dim[],
bool  project = false 
)
inline
  • project whether to reset the dimensions to 0 (if true), or leave them undefined (if false).
Returns
a reference to dst.

◆ forget() [3/6]

abstract0& apron::forget ( manager m,
abstract0 dst,
const abstract0 src,
const std::vector< ap_dim_t >  dim,
bool  project = false 
)
inline
  • project whether to reset the dimensions to 0 (if true), or leave them undefined (if false).
Returns
a reference to dst.

◆ forget() [4/6]

abstract1& apron::forget ( manager m,
abstract1 dst,
const abstract1 src,
const var v,
bool  project = false 
)
inline
  • project if true, resets the variable to 0 (if true).
Returns
a reference to dst.

◆ forget() [5/6]

abstract1& apron::forget ( manager m,
abstract1 dst,
const abstract1 src,
size_t  size,
const var  v[],
bool  project = false 
)
inline
  • project whether to reset the variables to 0 (if true), or leave them undefined (if false).
Returns
a reference to dst.

◆ forget() [6/6]

abstract1& apron::forget ( manager m,
abstract1 dst,
const abstract1 src,
const std::vector< var > &  v,
bool  project = false 
)
inline
  • project whether to reset the variables to 0 (if true), or leave them undefined (if false).
Returns
a reference to dst.

◆ get_dimchange()

dimchange apron::get_dimchange ( const environment x,
const environment y 
)
inline
Exceptions
std::invalid_argumentif x is not a subset of y, or if x and chg have different size.

◆ get_varname()

template<class charT , class Traits >
std::vector<std::string>* apron::get_varname ( std::basic_ostream< charT, Traits > &  os)
inline
Returns
a pointer to the vector formerly associated to the stream, or NULL.

◆ is_binop()

bool apron::is_binop ( ap_texpr_op_t  op)
inline

Whether the operator is binary.

◆ is_unop()

bool apron::is_unop ( ap_texpr_op_t  op)
inline

Whether the operator is unary.

◆ join() [1/6]

abstract0& apron::join ( manager m,
abstract0 dst,
const abstract0 x,
const abstract0 y 
)
inline
Returns
a reference to dst.

◆ join() [2/6]

abstract0& apron::join ( manager m,
abstract0 dst,
size_t  sz,
const abstract0 *const  x[] 
)
inline
Returns
a reference to dst.

◆ join() [3/6]

abstract0& apron::join ( manager m,
abstract0 dst,
const std::vector< const abstract0 * > &  x 
)
inline
Returns
a reference to dst.

◆ join() [4/6]

abstract1& apron::join ( manager m,
abstract1 dst,
const abstract1 x,
const abstract1 y 
)
inline
Returns
a reference to dst.

◆ join() [5/6]

abstract1& apron::join ( manager m,
abstract1 dst,
size_t  sz,
const abstract1 *const  x[] 
)
inline
Returns
a reference to dst.

◆ join() [6/6]

abstract1& apron::join ( manager m,
abstract1 dst,
const std::vector< const abstract1 * > &  x 
)
inline
Returns
a reference to dst.

◆ lce() [1/6]

environment apron::lce ( const environment x,
const environment y 
)
inline
Exceptions
std::invalid_argumentif some variable name has different type in both environments

◆ lce() [2/6]

environment apron::lce ( const environment x,
const environment y,
dimchange chgx,
dimchange chgy 
)
inline

Sets chgx (resp. chgy) to the dimension transformation that has been performed after appending the required variable names to x (resp. y) to keep them sorted.

Exceptions
std::invalid_argumentif some variable name has different type in both environments

◆ lce() [3/6]

environment apron::lce ( const std::vector< environment > &  x)
inline
Exceptions
std::invalid_argumentif some variable name has different type in different environments

◆ lce() [4/6]

environment apron::lce ( const environment env,
size_t  env_size 
)
inline
Exceptions
std::invalid_argumentif some variable name has different type in different environments

◆ lce() [5/6]

environment apron::lce ( const std::vector< environment > &  x,
std::vector< dimchange > &  chg 
)
inline

Sets chg[i] to the dimension transformation that has been performed after appending the required variable names to x[i] to keep them sorted. chg must have space for at least env_size elements.

Exceptions
std::invalid_argumentif some variable name has different type in different environments

◆ lce() [6/6]

environment apron::lce ( const environment env,
dimchange chg,
size_t  env_size 
)
inline

Sets chg[i] to the dimension transformation that has been performed after appending the required variable names to x[i] to keep them sorted. chg must have space for at least env_size elements.

Exceptions
std::invalid_argumentif some variable name has different type in different environments

◆ meet() [1/10]

abstract0& apron::meet ( manager m,
abstract0 dst,
const abstract0 x,
const abstract0 y 
)
inline
Returns
a reference to dst.

◆ meet() [2/10]

abstract0& apron::meet ( manager m,
abstract0 dst,
const std::vector< const abstract0 * > &  x 
)
inline
Returns
a reference to dst.

◆ meet() [3/10]

abstract0& apron::meet ( manager m,
abstract0 dst,
size_t  sz,
const abstract0 *const  x[] 
)
inline
Returns
a reference to dst.

◆ meet() [4/10]

abstract0& apron::meet ( manager m,
abstract0 dst,
const abstract0 x,
const lincons0_array y 
)
inline
Returns
a reference to dst.

◆ meet() [5/10]

abstract0& apron::meet ( manager m,
abstract0 dst,
const abstract0 x,
const tcons0_array y 
)
inline
Returns
a reference to dst.

◆ meet() [6/10]

abstract1& apron::meet ( manager m,
abstract1 dst,
const abstract1 x,
const abstract1 y 
)
inline
Returns
a reference to dst.

◆ meet() [7/10]

abstract1& apron::meet ( manager m,
abstract1 dst,
const std::vector< const abstract1 * > &  x 
)
inline
Returns
a reference to dst.

◆ meet() [8/10]

abstract1& apron::meet ( manager m,
abstract1 dst,
size_t  sz,
const abstract1 *const  x[] 
)
inline
Returns
a reference to dst.

◆ meet() [9/10]

abstract1& apron::meet ( manager m,
abstract1 dst,
const abstract1 x,
const lincons1_array y 
)
inline
Returns
a reference to dst.

◆ meet() [10/10]

abstract1& apron::meet ( manager m,
abstract1 dst,
const abstract1 x,
const tcons1_array y 
)
inline
Returns
a reference to dst.

◆ minimize_environment()

abstract1& apron::minimize_environment ( manager m,
abstract1 dst,
const abstract1 src 
)
inline
Returns
a reference to dst.

◆ mod() [1/2]

texpr0::builder apron::mod ( const texpr0::builder a,
const texpr0::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ mod() [2/2]

texpr1::builder apron::mod ( const texpr1::builder a,
const texpr1::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ mul() [1/2]

texpr0::builder apron::mul ( const texpr0::builder a,
const texpr0::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ mul() [2/2]

texpr1::builder apron::mul ( const texpr1::builder a,
const texpr1::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ neg() [1/2]

texpr0::builder apron::neg ( const texpr0::builder a,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ neg() [2/2]

texpr1::builder apron::neg ( const texpr1::builder a,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ operator &&()

tbool apron::operator && ( tbool  a,
tbool  b 
)
inline

◆ operator *() [1/3]

dimperm apron::operator * ( const dimperm x,
const dimperm y 
)
inline
Exceptions
std::invalid_argumentif x and y do not have the same size.

◆ operator *() [2/3]

texpr0::builder apron::operator * ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator *() [3/3]

texpr1::builder apron::operator * ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator!()

tbool apron::operator! ( tbool  a)
inline

◆ operator!=() [1/11]

bool apron::operator!= ( const var x,
const var y 
)
inline

◆ operator!=() [2/11]

tcons0 apron::operator!= ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator!=() [3/11]

tcons1 apron::operator!= ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator!=() [4/11]

bool apron::operator!= ( const interval a,
const interval b 
)
inline

◆ operator!=() [5/11]

bool apron::operator!= ( const scalar a,
const scalar b 
)
inline

◆ operator!=() [6/11]

bool apron::operator!= ( const scalar a,
int  b 
)
inline

◆ operator!=() [7/11]

bool apron::operator!= ( const environment x,
const environment y 
)
inline

◆ operator!=() [8/11]

bool apron::operator!= ( int  a,
const scalar b 
)
inline

◆ operator!=() [9/11]

bool apron::operator!= ( const abstract0 x,
const abstract0 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator!=() [10/11]

bool apron::operator!= ( const coeff a,
const coeff b 
)
inline

◆ operator!=() [11/11]

bool apron::operator!= ( const abstract1 x,
const abstract1 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator%() [1/2]

texpr0::builder apron::operator% ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator%() [2/2]

texpr1::builder apron::operator% ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator+() [1/4]

texpr0::builder apron::operator+ ( const texpr0::builder a)
inline

◆ operator+() [2/4]

texpr0::builder apron::operator+ ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator+() [3/4]

texpr1::builder apron::operator+ ( const texpr1::builder a)
inline

◆ operator+() [4/4]

texpr1::builder apron::operator+ ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator-() [1/4]

texpr0::builder apron::operator- ( const texpr0::builder a)
inline

◆ operator-() [2/4]

texpr0::builder apron::operator- ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator-() [3/4]

texpr1::builder apron::operator- ( const texpr1::builder a)
inline

◆ operator-() [4/4]

texpr1::builder apron::operator- ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator/() [1/2]

texpr0::builder apron::operator/ ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator/() [2/2]

texpr1::builder apron::operator/ ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator<() [1/9]

tcons0 apron::operator< ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator<() [2/9]

tcons1 apron::operator< ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator<() [3/9]

bool apron::operator< ( const var x,
const var y 
)
inline

◆ operator<() [4/9]

bool apron::operator< ( const interval a,
const interval b 
)
inline

◆ operator<() [5/9]

bool apron::operator< ( const scalar a,
const scalar b 
)
inline

◆ operator<() [6/9]

bool apron::operator< ( const scalar a,
int  b 
)
inline

◆ operator<() [7/9]

bool apron::operator< ( int  a,
const scalar b 
)
inline

◆ operator<() [8/9]

bool apron::operator< ( const abstract0 x,
const abstract0 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator<() [9/9]

bool apron::operator< ( const abstract1 x,
const abstract1 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator<<() [1/31]

template<class charT , class Traits >
std::basic_ostream<charT,Traits>& apron::operator<< ( std::basic_ostream< charT, Traits > &  os,
const varname v 
)
inline

◆ operator<<() [2/31]

std::ostream& apron::operator<< ( std::ostream &  os,
tbool  x 
)
inline

◆ operator<<() [3/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const var s 
)
inline

◆ operator<<() [4/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const linexpr1 s 
)
inline

◆ operator<<() [5/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const texpr0 s 
)
inline

Variable naming can be configured through the varname stream modifier.

◆ operator<<() [6/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const generator0 s 
)
inline

Variable naming can be configured through the varname stream modifier.

Exceptions
std::invalid_argumentif the underlying expression is missing.

◆ operator<<() [7/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const texpr1 s 
)
inline

◆ operator<<() [8/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const dimchange s 
)
inline

Variable naming can be configured through the varname stream modifier.

◆ operator<<() [9/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const generator1 s 
)
inline

◆ operator<<() [10/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const lincons0 s 
)
inline

Variable naming can be configured through the varname stream modifier.

Exceptions
std::invalid_argumentif the underlying expression is missing, or the auxiliary scalar is missing (for modulo).

◆ operator<<() [11/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const manager s 
)
inline

◆ operator<<() [12/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const linexpr0 s 
)
inline

Variable naming can be configured through the varname stream modifier.

◆ operator<<() [13/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const lincons1 s 
)
inline

◆ operator<<() [14/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const interval s 
)
inline

◆ operator<<() [15/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const tcons0 s 
)
inline

Variable naming can be configured through the varname stream modifier.

Exceptions
std::invalid_argumentif the underlying expression is missing, or the extra scalar is missing (for modulo).

◆ operator<<() [16/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const scalar s 
)
inline

◆ operator<<() [17/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const tcons1 s 
)
inline
Exceptions
std::invalid_argumentif the underlying expression is missing, or the extra scalar is missing (for modulo).

◆ operator<<() [18/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const abstract0 s 
)
inline

◆ operator<<() [19/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const dimperm s 
)
inline

Variable naming can be configured through the varname stream modifier.

◆ operator<<() [20/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const generator0_array s 
)
inline

Variable naming can be configured through the varname stream modifier.

Exceptions
std::invalid_argumentan underlying expression is missing.

◆ operator<<() [21/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const abstract1 s 
)
inline

◆ operator<<() [22/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const coeff s 
)
inline

◆ operator<<() [23/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const environment s 
)
inline

◆ operator<<() [24/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const texpr0::const_iterator s 
)
inline

Variable naming can be configured through the varname stream modifier.

◆ operator<<() [25/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const texpr1::const_iterator s 
)
inline

◆ operator<<() [26/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const generator1_array s 
)
inline
Exceptions
std::invalid_argumentan underlying expression is missing, or an auxiliary scalar is missing (for modulo generator).

◆ operator<<() [27/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const lincons0_array s 
)
inline

Variable naming can be configured through the varname stream modifier.

Exceptions
std::invalid_argumentan underlying expression is missing, or an auxiliary scalar is missing (for modulo constraint).

◆ operator<<() [28/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const interval_array s 
)
inline

◆ operator<<() [29/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const lincons1_array s 
)
inline
Exceptions
std::invalid_argumentan underlying expression is missing, or an auxiliary scalar is missing (for modulo constraint).

◆ operator<<() [30/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const tcons0_array s 
)
inline

Variable naming can be configured through the varname stream modifier.

Exceptions
std::invalid_argumentan underlying expression is missing, or an extra scalar is missing (for modulo constraint).

◆ operator<<() [31/31]

std::ostream& apron::operator<< ( std::ostream &  os,
const tcons1_array s 
)
inline
Exceptions
std::invalid_argumentan underlying expression is missing, or an auxiliary scalar is missing (for modulo constraint).

◆ operator<=() [1/10]

tcons0 apron::operator<= ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator<=() [2/10]

tcons1 apron::operator<= ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator<=() [3/10]

bool apron::operator<= ( const var x,
const var y 
)
inline

◆ operator<=() [4/10]

bool apron::operator<= ( const interval a,
const interval b 
)
inline

◆ operator<=() [5/10]

bool apron::operator<= ( const scalar a,
const scalar b 
)
inline

◆ operator<=() [6/10]

bool apron::operator<= ( const scalar a,
int  b 
)
inline

◆ operator<=() [7/10]

bool apron::operator<= ( int  a,
const scalar b 
)
inline

◆ operator<=() [8/10]

bool apron::operator<= ( const environment x,
const environment y 
)
inline

◆ operator<=() [9/10]

bool apron::operator<= ( const abstract0 x,
const abstract0 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator<=() [10/10]

bool apron::operator<= ( const abstract1 x,
const abstract1 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator==() [1/11]

bool apron::operator== ( const var x,
const var y 
)
inline

◆ operator==() [2/11]

tcons0 apron::operator== ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator==() [3/11]

tcons1 apron::operator== ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator==() [4/11]

bool apron::operator== ( const interval a,
const interval b 
)
inline

◆ operator==() [5/11]

bool apron::operator== ( const scalar a,
const scalar b 
)
inline

◆ operator==() [6/11]

bool apron::operator== ( const scalar a,
int  b 
)
inline

◆ operator==() [7/11]

bool apron::operator== ( const environment x,
const environment y 
)
inline

◆ operator==() [8/11]

bool apron::operator== ( int  a,
const scalar b 
)
inline

◆ operator==() [9/11]

bool apron::operator== ( const abstract0 x,
const abstract0 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator==() [10/11]

bool apron::operator== ( const coeff a,
const coeff b 
)
inline

◆ operator==() [11/11]

bool apron::operator== ( const abstract1 x,
const abstract1 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator>() [1/9]

tcons0 apron::operator> ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator>() [2/9]

tcons1 apron::operator> ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator>() [3/9]

bool apron::operator> ( const var x,
const var y 
)
inline

◆ operator>() [4/9]

bool apron::operator> ( const interval a,
const interval b 
)
inline

◆ operator>() [5/9]

bool apron::operator> ( const scalar a,
const scalar b 
)
inline

◆ operator>() [6/9]

bool apron::operator> ( const scalar a,
int  b 
)
inline

◆ operator>() [7/9]

bool apron::operator> ( int  a,
const scalar b 
)
inline

◆ operator>() [8/9]

bool apron::operator> ( const abstract0 x,
const abstract0 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator>() [9/9]

bool apron::operator> ( const abstract1 x,
const abstract1 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator>=() [1/10]

tcons0 apron::operator>= ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator>=() [2/10]

tcons1 apron::operator>= ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator>=() [3/10]

bool apron::operator>= ( const var x,
const var y 
)
inline

◆ operator>=() [4/10]

bool apron::operator>= ( const interval a,
const interval b 
)
inline

◆ operator>=() [5/10]

bool apron::operator>= ( const scalar a,
const scalar b 
)
inline

◆ operator>=() [6/10]

bool apron::operator>= ( const scalar a,
int  b 
)
inline

◆ operator>=() [7/10]

bool apron::operator>= ( int  a,
const scalar b 
)
inline

◆ operator>=() [8/10]

bool apron::operator>= ( const environment x,
const environment y 
)
inline

◆ operator>=() [9/10]

bool apron::operator>= ( const abstract0 x,
const abstract0 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator>=() [10/10]

bool apron::operator>= ( const abstract1 x,
const abstract1 y 
)
inline

The manager for the left argument is used implicitly.

◆ operator^() [1/2]

texpr0::builder apron::operator^ ( const texpr0::builder a,
const texpr0::builder b 
)
inline

◆ operator^() [2/2]

texpr1::builder apron::operator^ ( const texpr1::builder a,
const texpr1::builder b 
)
inline

◆ operator||()

tbool apron::operator|| ( tbool  a,
tbool  b 
)
inline

◆ permute_dimensions()

abstract0& apron::permute_dimensions ( manager m,
abstract0 dst,
const abstract0 src,
const dimperm d 
)
inline
Returns
a reference to dst.

◆ pow() [1/2]

texpr0::builder apron::pow ( const texpr0::builder a,
const texpr0::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ pow() [2/2]

texpr1::builder apron::pow ( const texpr1::builder a,
const texpr1::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ print_coeff_sign()

static bool apron::print_coeff_sign ( std::ostream &  os,
const coeff c,
bool &  first,
bool  cst 
)
inlinestatic

◆ printdiff() [1/2]

void apron::printdiff ( manager m,
const abstract0 x,
const abstract0 y,
char **  name_of_dim = NULL,
FILE *  stream = stdout 
)
inline

◆ printdiff() [2/2]

void apron::printdiff ( manager m,
const abstract1 x,
const abstract1 y,
FILE *  stream = stdout 
)
inline

◆ remove_dimensions()

abstract0& apron::remove_dimensions ( manager m,
abstract0 dst,
const abstract0 src,
const dimchange d 
)
inline
Returns
a reference to dst.

◆ rename() [1/2]

abstract1& apron::rename ( manager m,
abstract1 dst,
const abstract1 src,
size_t  size,
const var  oldv[],
const var  newv[] 
)
inline
Returns
a reference to dst.

◆ rename() [2/2]

abstract1& apron::rename ( manager m,
abstract1 dst,
const abstract1 src,
const std::vector< var > &  oldv,
const std::vector< var > &  newv 
)
inline
Returns
a reference to dst.

◆ sqrt() [1/2]

texpr0::builder apron::sqrt ( const texpr0::builder a,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ sqrt() [2/2]

texpr1::builder apron::sqrt ( const texpr1::builder a,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ sub() [1/2]

texpr0::builder apron::sub ( const texpr0::builder a,
const texpr0::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ sub() [2/2]

texpr1::builder apron::sub ( const texpr1::builder a,
const texpr1::builder b,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

◆ substitute() [1/12]

abstract0& apron::substitute ( manager m,
abstract0 dst,
const abstract0 src,
ap_dim_t  dim,
const linexpr0 l,
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of substituting l to dimension dim in src. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ substitute() [2/12]

abstract0& apron::substitute ( manager m,
abstract0 dst,
const abstract0 src,
size_t  size,
const ap_dim_t  dim[],
const linexpr0 *const  l[],
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of substituting l[i] to dimension dim[i] in src, for i from 0 to size-1. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ substitute() [3/12]

abstract0& apron::substitute ( manager m,
abstract0 dst,
const abstract0 src,
const std::vector< ap_dim_t > &  dim,
const std::vector< const linexpr0 * > &  l,
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of substituting l[i] to dimension dim[i] in src. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.
Exceptions
std::invalid_argumentif the vectors have different size.

◆ substitute() [4/12]

abstract0& apron::substitute ( manager m,
abstract0 dst,
const abstract0 src,
ap_dim_t  dim,
const texpr0 l,
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of substituting l to dimension dim in src. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ substitute() [5/12]

abstract0& apron::substitute ( manager m,
abstract0 dst,
const abstract0 src,
size_t  size,
const ap_dim_t  dim[],
const texpr0 *const  l[],
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of substituting l[i] to dimension dim[i] in src, for i from 0 to size-1. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ substitute() [6/12]

abstract0& apron::substitute ( manager m,
abstract0 dst,
const abstract0 src,
const std::vector< ap_dim_t > &  dim,
const std::vector< const texpr0 * > &  l,
const abstract0 inter = abstract0::null 
)
inline

dst is replaced with the effect of substituting l[i] to dimension dim[i] in src. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.
Exceptions
std::invalid_argumentif the vectors have different size.

◆ substitute() [7/12]

abstract1& apron::substitute ( manager m,
abstract1 dst,
const abstract1 src,
const var v,
const linexpr1 l,
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of substituting l to variable v in src. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ substitute() [8/12]

abstract1& apron::substitute ( manager m,
abstract1 dst,
const abstract1 src,
size_t  size,
const var  v[],
const linexpr1 *const  l[],
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of substituting l[i] to variable v[i] in src, for i from 0 to size-1. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ substitute() [9/12]

abstract1& apron::substitute ( manager m,
abstract1 dst,
const abstract1 src,
const std::vector< var > &  v,
const std::vector< const linexpr1 * > &  l,
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of substituting l[i] to variable v[i] in src. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.
Exceptions
std::invalid_argumentif the vectors have different size.

◆ substitute() [10/12]

abstract1& apron::substitute ( manager m,
abstract1 dst,
const abstract1 src,
const var v,
const texpr1 l,
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of substituting l to variable v in src. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ substitute() [11/12]

abstract1& apron::substitute ( manager m,
abstract1 dst,
const abstract1 src,
size_t  size,
const var  v[],
const texpr1 *const  l[],
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of substituting l[i] to variable v[i] in src, for i from 0 to size-1. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.

◆ substitute() [12/12]

abstract1& apron::substitute ( manager m,
abstract1 dst,
const abstract1 src,
const std::vector< var > &  v,
const std::vector< const texpr1 * > &  l,
const abstract1 inter = abstract1::null 
)
inline

dst is replaced with the effect of substituting l[i] to variable v[i] in src. Substitutions are performed in parallel. If inter is specified, dst is then intersected with it.

Returns
a reference to dst.
Exceptions
std::invalid_argumentif the vectors have different size.

◆ swap() [1/3]

void apron::swap ( scalar a,
scalar b 
)
inline

◆ swap() [2/3]

void apron::swap ( interval a,
interval b 
)
inline

◆ swap() [3/3]

void apron::swap ( coeff a,
coeff b 
)
inline

◆ trunc() [1/2]

texpr0::builder apron::trunc ( const texpr0::builder a)
inline

◆ trunc() [2/2]

texpr1::builder apron::trunc ( const texpr1::builder a)
inline

◆ unary() [1/2]

texpr0::builder apron::unary ( ap_texpr_op_t  op,
const texpr0::builder a,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

Creates only one node. The argument expression is aliased, not copied.

  • op should be a unary operator: negation (AP_TEXPR_NEG), typecast (AP_TEXPR_CAST), or square root (AP_TEXPR_SQRT).
  • argA should point to the argument expression.
  • rtype is the destination type (for rounding): reals (AP_RTYPE_REAL, means no rounding), perfect integers (AP_RTYPE_INT), 32-bit single precision (AP_RTYPE_SINGLE), 64-bit double precision (AP_RTYPE_DOUBLE), 80-bit extended precision (AP_RTYPE_EXTENDED), or 128-bit quadruple precision (AP_RTYPE_QUAD).
  • rdir is the rounding direction: to nearest (AP_RDIR_NEAREST), truncation (AP_RDIR_ZERO), towards +oo (AP_RDIR_UP), towards -oo (AP_RDIR_DOWN), or non-deterministic (AP_RDIR_RND).
    Exceptions
    std::invalid_argumentif op is not a unary operator.

◆ unary() [2/2]

texpr1::builder apron::unary ( ap_texpr_op_t  op,
const texpr1::builder a,
ap_texpr_rtype_t  rtype = AP_RTYPE_REAL,
ap_texpr_rdir_t  rdir = AP_RDIR_NEAREST 
)
inline

Creates only one node. The argument expression is aliased, not copied.

  • op should be a unary operator: negation (AP_TEXPR_NEG), typecast (AP_TEXPR_CAST), or square root (AP_TEXPR_SQRT).
  • argA should point to the argument expression.
  • rtype is the destination type (for rounding): reals (AP_RTYPE_REAL, means no rounding), perfect integers (AP_RTYPE_INT), 32-bit single precision (AP_RTYPE_SINGLE), 64-bit double precision (AP_RTYPE_DOUBLE), 80-bit extended precision (AP_RTYPE_EXTENDED), or 128-bit quadruple precision (AP_RTYPE_QUAD).
  • rdir is the rounding direction: to nearest (AP_RDIR_NEAREST), truncation (AP_RDIR_ZERO), towards +oo (AP_RDIR_UP), towards -oo (AP_RDIR_DOWN), or non-deterministic (AP_RDIR_RND).
    Exceptions
    std::invalid_argumentif op is not a unary operator.

◆ unify()

abstract1& apron::unify ( manager m,
abstract1 dst,
const abstract1 x,
const abstract1 y 
)
inline

x and y can have different environment. They are first embedded into the least common environment before the meet is computed.

Returns
a reference to dst.

◆ widening() [1/4]

abstract0& apron::widening ( manager m,
abstract0 dst,
const abstract0 x,
const abstract0 y 
)
inline
Warning
y must be a superset of x.
Returns
a reference to dst.

◆ widening() [2/4]

abstract0& apron::widening ( manager m,
abstract0 dst,
const abstract0 x,
const abstract0 y,
const lincons0_array l 
)
inline
Warning
y must be a superset of x.
Returns
a reference to dst.

◆ widening() [3/4]

abstract1& apron::widening ( manager m,
abstract1 dst,
const abstract1 x,
const abstract1 y 
)
inline
Warning
y must be a superset of x.
Returns
a reference to dst.

◆ widening() [4/4]

abstract1& apron::widening ( manager m,
abstract1 dst,
const abstract1 x,
const abstract1 y,
const lincons1_array l 
)
inline
Warning
y must be a superset of x.
Returns
a reference to dst.