16 #ifndef __APXX_DIMENSION_HH 17 #define __APXX_DIMENSION_HH 19 #include "ap_dimension.h" 51 const std::vector<std::string>&
names;
67 varname(
const std::vector<std::string>& names);
70 template<
class charT,
class Traits>
72 std::basic_ostream<charT,Traits>&
73 operator<<(std::basic_ostream<charT,Traits>& os,
const varname& v);
80 template<
class charT,
class Traits>
82 std::vector<std::string>*
get_varname(std::basic_ostream<charT,Traits>& os);
117 dimchange(
size_t intdim=0,
size_t realdim=0);
123 dimchange(
size_t intdim,
size_t realdim,
const ap_dim_t d[]);
129 dimchange(
size_t intdim,
size_t realdim,
const std::vector<ap_dim_t>& d);
164 dimchange& operator= (
const ap_dim_t d[]);
170 dimchange& operator= (
const std::vector<ap_dim_t>& d);
182 size_t get_intdim()
const;
185 size_t get_realdim()
const;
191 ap_dim_t& operator[](
size_t dim);
197 const ap_dim_t& operator[](
size_t dim)
const;
203 ap_dim_t&
get(
size_t dim);
209 const ap_dim_t&
get(
size_t dim)
const;
227 void print(FILE* stream=stdout)
const;
262 const ap_dimchange_t* get_ap_dimchange_t()
const;
265 ap_dimchange_t* get_ap_dimchange_t();
276 id(
size_t size) : size(size) {}
314 dimperm(
size_t size,
const ap_dim_t d[]);
317 dimperm(
const std::vector<ap_dim_t>& d);
362 dimperm& operator= (
const ap_dim_t d[]);
365 dimperm& operator= (
const std::vector<ap_dim_t>& d);
383 ap_dim_t& operator[](
size_t dim);
389 const ap_dim_t& operator[](
size_t dim)
const;
395 ap_dim_t&
get(
size_t dim);
401 const ap_dim_t&
get(
size_t dim)
const;
419 void print(FILE* stream=stdout)
const;
467 ap_dimperm_t* get_ap_dimperm_t();
Dimension permutation object (ap_dimperm_t wrapper).
Definition: apxx_dimension.hh:292
Dimension change object (ap_dimchange_t wrapper).
Definition: apxx_dimension.hh:102
Definition: apxx_abstract0.hh:27
const ap_dimperm_t * get_ap_dimperm_t() const
Returns a pointer to the internal APRON object stored in *this.
Definition: apxx_dimension.hh:423
size_t size
Size of the permutation.
Definition: apxx_dimension.hh:274
friend std::basic_ostream< charT, Traits > & operator<<(std::basic_ostream< charT, Traits > &os, const varname &v)
Associates the modifier to the stream.
Definition: apxx_dimension.hh:32
const std::vector< std::string > & names
Names of variables.
Definition: apxx_dimension.hh:51
texpr0::builder operator-(const texpr0::builder &a)
Definition: apxx_texpr0.hh:854
ap_dimchange_t c
Structure managed by APRON.
Definition: apxx_dimension.hh:106
varname(const std::vector< std::string > &names)
Creates a modifier to associate variable names to dimensions.
Definition: apxx_dimension.hh:25
id(size_t size)
Definition: apxx_dimension.hh:276
friend std::vector< std::string > * get_varname(std::basic_ostream< charT, Traits > &os)
Gets the variable name vector associated to the stream.
Definition: apxx_dimension.hh:44
dimperm operator*(const dimperm &x, const dimperm &y)
Definition: apxx_dimension.hh:393
Stream modifier to set variable names to dimensions.
Definition: apxx_dimension.hh:43
Inherited by most wrappers to map new and delete to malloc and free.
Definition: apxx_scalar.hh:69
The identity permutation, to simplify initialisations and assignments.
Definition: apxx_dimension.hh:273
Represents a dimension (i.e., variable by index) in an expression tree.
Definition: apxx_texpr0.hh:33
static const int xindex
Index to stream-local data, allocated with xalloc.
Definition: apxx_dimension.hh:48