16#ifndef __APXX_INTERVAL_HH
17#define __APXX_INTERVAL_HH
20#include "ap_interval.h"
103 interval(
const mpq_class& inf,
const mpq_class& sup);
218 void print(FILE* stream=stdout)
const;
388 operator std::vector<interval>()
const;
403 void print(FILE* stream=stdout)
const;
array of interval(s).
Definition apxx_interval.hh:302
interval_array(size_t size, ap_interval_t **c)
Internal use only. Reference an array created with ap_interval_array_alloc.
Definition apxx_interval.hh:356
size_t sz
Array size.
Definition apxx_interval.hh:306
friend class abstract0
Definition apxx_interval.hh:312
friend std::ostream & operator<<(std::ostream &os, const interval_array &s)
Printing.
Definition apxx_interval.hh:452
interval ** contents()
Returns a pointer to the start of the array of elements used internally.
Definition apxx_interval.hh:477
ap_interval_t ** c
Array of pointers to intervals.
Definition apxx_interval.hh:307
const ap_interval_t *const * get_ap_interval_t_array() const
Returns a pointer to the internal APRON object stored in *this.
Definition apxx_interval.hh:506
interval_array & operator=(const interval_array &x)
Copies an interval array into *this.
Definition apxx_interval.hh:403
size_t size() const
Returns the array size.
Definition apxx_interval.hh:474
interval & get(size_t i)
Definition apxx_interval.hh:480
~interval_array()
Frees the space occupied by the array and all its elements.
Definition apxx_interval.hh:394
friend class abstract1
Definition apxx_interval.hh:313
interval & operator[](size_t i)
Returns a (modifiable) reference to an element, no bound checking.
Definition apxx_interval.hh:492
void print(FILE *stream=stdout) const
Prints to a C stream.
Definition apxx_interval.hh:460
Interval (ap_interval_t wrapper).
Definition apxx_interval.hh:47
void neg()
Negates *this.
Definition apxx_interval.hh:317
bool is_top() const
Whether *this equals ]-oo;+oo[.
Definition apxx_interval.hh:261
friend class abstract0
Definition apxx_interval.hh:58
friend bool operator<=(const interval &a, const interval &b)
Set inclusion.
Definition apxx_interval.hh:271
interval(bottom t)
Makes a new empty interval [+1;-1].
Definition apxx_interval.hh:104
friend std::ostream & operator<<(std::ostream &os, const interval &s)
Printing.
Definition apxx_interval.hh:247
interval(ap_interval_t *i)
Internal use only. Take ownership of an object created by ap_interval_alloc.
Definition apxx_interval.hh:35
friend order cmp(const interval &a, const interval &b)
Interval ordering.
Definition apxx_interval.hh:307
interval & set(const interval &x)
Copies an interval into *this.
Definition apxx_interval.hh:147
scalar & get_inf()
Gets a (modifiable) reference to the lower bound.
Definition apxx_interval.hh:223
friend bool operator==(const interval &a, const interval &b)
Set equality.
Definition apxx_interval.hh:295
friend class texpr0
Definition apxx_interval.hh:61
void init()
Internal initialisation.
Definition apxx_interval.hh:29
interval & operator=(const interval &x)
Copies an interval into *this.
Definition apxx_interval.hh:126
friend bool operator>(const interval &a, const interval &b)
Strict set inclusion.
Definition apxx_interval.hh:289
long hash() const
Returns a hash code.
Definition apxx_interval.hh:329
friend bool operator>=(const interval &a, const interval &b)
Set inclusion.
Definition apxx_interval.hh:277
interval operator-() const
Returns a new interval which is the opposite of *this.
Definition apxx_interval.hh:322
scalar & get_sup()
Gets a (modifiable) reference to the upper bound.
Definition apxx_interval.hh:228
~interval()
Definition apxx_interval.hh:114
order
Returned by ordering functions.
Definition apxx_interval.hh:66
@ LESS
Means min i1 <= min i2.
Definition apxx_interval.hh:70
@ INCLUDED
Means i1 is included in i2.
Definition apxx_interval.hh:67
@ CONTAINS
Means i2 is included in i1.
Definition apxx_interval.hh:69
@ GREATER
Means min i1 >= min i2.
Definition apxx_interval.hh:71
@ EQUAL
Means i1 equals i2.
Definition apxx_interval.hh:68
bool is_bottom() const
Whether *this represents an empty interval.
Definition apxx_interval.hh:266
interval()
Makes a new interval [0,0] with double bounds.
Definition apxx_interval.hh:41
friend class abstract1
Definition apxx_interval.hh:59
friend bool operator<(const interval &a, const interval &b)
Strict set inclusion.
Definition apxx_interval.hh:283
const ap_interval_t * get_ap_interval_t() const
Returns a pointer to the internal APRON object stored in *this.
Definition apxx_interval.hh:337
void print(FILE *stream=stdout) const
Prints to a C stream.
Definition apxx_interval.hh:252
ap_interval_t c
Structure managed by APRON.
Definition apxx_interval.hh:50
friend class linexpr0
Definition apxx_interval.hh:60
friend void swap(interval &a, interval &b)
Swaps the contents of two intervals.
Definition apxx_interval.hh:214
friend bool operator!=(const interval &a, const interval &b)
Set disequality.
Definition apxx_interval.hh:301
Scalar (ap_scalar_t wrapper).
Definition apxx_scalar.hh:89
Definition apxx_abstract0.hh:27
Empty interval or domain, to simplify initialisations and assignments.
Definition apxx_interval.hh:33
bottom()
Definition apxx_interval.hh:34
A fraction with native int coefficients, to simplify initialisations and assignments.
Definition apxx_scalar.hh:41
Full interval (]-oo,+oo[) or domain, to simplify initialisations and assignments.
Definition apxx_interval.hh:27
top()
Definition apxx_interval.hh:28
Inherited by most wrappers to map new and delete to malloc and free.
Definition apxx_scalar.hh:69