24 #ifndef PPL_OR_Matrix_templates_hh
25 #define PPL_OR_Matrix_templates_hh 1
34 return vec.external_memory_in_bytes();
46 if (vec.size() != 2*dim*(dim + 1)) {
48 cerr <<
"OR_Matrix has a wrong number of cells:\n"
49 <<
"vec.size() is " << vec.size()
50 <<
", expected size is " << (2*dim*(dim+1)) <<
"!\n";
56 if (!vec.OK(vec.size(), vec_capacity)) {
70 s << space << separator <<
"\n";
72 x_row_end = x.
row_end(); i != x_row_end; ++i) {
76 using namespace IO_Operators;
92 resize_no_copy(space);
94 this_row_end = row_end(); i != this_row_end; ++i) {
108 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
110 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
111 template <
typename T>
113 IO_Operators::operator<<(std::ostream& s, const OR_Matrix<T>& m) {
115 m_end = m.row_end(); m_iter != m_end; ++m_iter) {
128 #endif // !defined(PPL_OR_Matrix_templates_hh)
memory_size_type external_memory_in_bytes() const
Returns the size in bytes of the memory managed by *this.
Enable_If< Is_Native_Or_Checked< T >::value, bool >::type is_minus_infinity(const T &x)
row_iterator row_end()
Returns the past-the-end const_iterator.
size_t dimension_type
An unsigned integral type for representing space dimensions.
Result
Possible outcomes of a checked arithmetic computation.
A template class to derive both OR_Matrix::iterator and OR_Matrix::const_iterator.
The standard C++ namespace.
#define PPL_OUTPUT_TEMPLATE_DEFINITIONS(type_symbol, class_prefix)
dimension_type space_dimension() const
Returns the space-dimension of the matrix.
Result_Relation result_relation(Result r)
bool OK() const
Checks if all the invariants are satisfied.
An object that behaves like a matrix's row with respect to the subscript operators.
Equal. This need to be accompanied by a value.
Enable_If< Is_Native_Or_Checked< T >::value, bool >::type ascii_load(std::istream &s, T &t)
The entire library is confined to this namespace.
void ascii_dump() const
Writes to std::cerr an ASCII representation of *this.
A matrix representing octagonal constraints.
size_t memory_size_type
An unsigned integral type for representing memory size in bytes.
row_iterator row_begin()
Returns an iterator pointing to the first row, if *this is not empty; otherwise, returns the past-the...