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);
167 interval&
set(
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;
Level 0 abstract value (ap_abstract0_t* wrapper).
Definition apxx_abstract0.hh:78
Level 1 abstract value (ap_abstract1_t wrapper).
Definition apxx_abstract1.hh:42
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_inline.hh:355
size_t sz
Array size.
Definition apxx_interval.hh:306
friend std::ostream & operator<<(std::ostream &os, const interval_array &s)
Printing.
interval ** contents()
Returns a pointer to the start of the array of elements used internally.
Definition apxx_interval_inline.hh:476
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_inline.hh:505
interval_array & operator=(const interval_array &x)
Copies an interval array into *this.
Definition apxx_interval_inline.hh:402
size_t size() const
Returns the array size.
Definition apxx_interval_inline.hh:473
interval & get(size_t i)
Definition apxx_interval_inline.hh:479
~interval_array()
Frees the space occupied by the array and all its elements.
Definition apxx_interval_inline.hh:393
interval & operator[](size_t i)
Returns a (modifiable) reference to an element, no bound checking.
Definition apxx_interval_inline.hh:491
void print(FILE *stream=stdout) const
Prints to a C stream.
Definition apxx_interval_inline.hh:459
Interval (ap_interval_t wrapper).
Definition apxx_interval.hh:47
void neg()
Negates *this.
Definition apxx_interval_inline.hh:316
bool is_top() const
Whether *this equals ]-oo;+oo[.
Definition apxx_interval_inline.hh:260
friend bool operator<=(const interval &a, const interval &b)
Set inclusion.
friend std::ostream & operator<<(std::ostream &os, const interval &s)
Printing.
friend order cmp(const interval &a, const interval &b)
Interval ordering.
interval & set(const interval &x)
Copies an interval into *this.
Definition apxx_interval_inline.hh:146
scalar & get_inf()
Gets a (modifiable) reference to the lower bound.
Definition apxx_interval_inline.hh:222
friend bool operator==(const interval &a, const interval &b)
Set equality.
void init()
Internal initialisation.
Definition apxx_interval_inline.hh:28
interval & operator=(const interval &x)
Copies an interval into *this.
Definition apxx_interval_inline.hh:125
friend bool operator>(const interval &a, const interval &b)
Strict set inclusion.
long hash() const
Returns a hash code.
Definition apxx_interval_inline.hh:328
friend bool operator>=(const interval &a, const interval &b)
Set inclusion.
interval operator-() const
Returns a new interval which is the opposite of *this.
Definition apxx_interval_inline.hh:321
scalar & get_sup()
Gets a (modifiable) reference to the upper bound.
Definition apxx_interval_inline.hh:227
~interval()
Definition apxx_interval_inline.hh:113
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_inline.hh:265
interval()
Makes a new interval [0,0] with double bounds.
Definition apxx_interval_inline.hh:40
friend bool operator<(const interval &a, const interval &b)
Strict set inclusion.
const ap_interval_t * get_ap_interval_t() const
Returns a pointer to the internal APRON object stored in *this.
Definition apxx_interval_inline.hh:336
void print(FILE *stream=stdout) const
Prints to a C stream.
Definition apxx_interval_inline.hh:251
ap_interval_t c
Structure managed by APRON.
Definition apxx_interval.hh:50
friend void swap(interval &a, interval &b)
Swaps the contents of two intervals.
friend bool operator!=(const interval &a, const interval &b)
Set disequality.
Level 0 linear expression (ap_linexpr0_t wrapper).
Definition apxx_linexpr0.hh:44
Scalar (ap_scalar_t wrapper).
Definition apxx_scalar.hh:89
Level 0 arbitrary expression tree (ap_texpr0_t wrapper).
Definition apxx_texpr0.hh:92
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