|
PPL
1.2
|
The real implementation of a DB_Row object. More...
#include <DB_Row_defs.hh>

Public Member Functions | |
| Impl () | |
| Default constructor. More... | |
| ~Impl () | |
| Destructor. More... | |
| void | expand_within_capacity (dimension_type new_size) |
Expands the row to size new_size. More... | |
| void | shrink (dimension_type new_size) |
| Shrinks the row by erasing elements at the end. More... | |
| void | copy_construct_coefficients (const Impl &y) |
| Exception-safe copy construction mechanism for coefficients. More... | |
| template<typename U > | |
| void | construct_upward_approximation (const U &y) |
| Exception-safe upward approximation construction mechanism for coefficients. More... | |
| memory_size_type | total_memory_in_bytes () const |
Returns a lower bound to the total size in bytes of the memory occupied by *this. More... | |
| memory_size_type | total_memory_in_bytes (dimension_type capacity) const |
Returns the total size in bytes of the memory occupied by *this. More... | |
| memory_size_type | external_memory_in_bytes () const |
Returns the size in bytes of the memory managed by *this. More... | |
Size accessors. | |
| dimension_type | size () const |
Returns the actual size of this. More... | |
| void | set_size (dimension_type new_sz) |
Sets to new_sz the actual size of *this. More... | |
| void | bump_size () |
Increments the size of *this by 1. More... | |
Subscript operators. | |
| T & | operator[] (dimension_type k) |
Returns a reference to the element of *this indexed by k. More... | |
| const T & | operator[] (dimension_type k) const |
Returns a constant reference to the element of *this indexed by k. More... | |
Static Public Member Functions | |
| static dimension_type | max_size () |
| Returns the size() of the largest possible Impl. More... | |
Custom allocator and deallocator. | |
| static void * | operator new (size_t fixed_size, dimension_type capacity) |
Allocates a chunk of memory able to contain capacity T objects beyond the specified fixed_size and returns a pointer to the new allocated memory. More... | |
| static void | operator delete (void *p) |
Uses the standard delete operator to free the memory p points to. More... | |
| static void | operator delete (void *p, dimension_type capacity) |
Placement version: uses the standard operator delete to free the memory p points to. More... | |
Private Member Functions | |
| Impl (const Impl &y) | |
| Private and unimplemented: copy construction is not allowed. More... | |
| Impl & | operator= (const Impl &) |
| Private and unimplemented: assignment is not allowed. More... | |
| void | copy_construct (const Impl &y) |
| Exception-safe copy construction mechanism. More... | |
Private Attributes | |
| dimension_type | size_ |
| The number of coefficients in the row. More... | |
| T | vec_ [ 1] |
| The vector of coefficients. More... | |
Friends | |
| class | DB_Row< T > |
The real implementation of a DB_Row object.
The class DB_Row_Impl_Handler::Impl provides the implementation of DB_Row objects and, in particular, of the corresponding memory allocation functions.
Definition at line 352 of file DB_Row_defs.hh.
|
inline |
Default constructor.
Definition at line 107 of file DB_Row_inlines.hh.
|
inline |
Destructor.
Uses shrink() method with argument
to delete all the row elements.
Definition at line 113 of file DB_Row_inlines.hh.
|
private |
Private and unimplemented: copy construction is not allowed.
|
inline |
Increments the size of *this by 1.
Definition at line 101 of file DB_Row_inlines.hh.
Referenced by Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::construct_upward_approximation().
| void Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::construct_upward_approximation | ( | const U & | y | ) |
Exception-safe upward approximation construction mechanism for coefficients.
Definition at line 34 of file DB_Row_templates.hh.
References Parma_Polyhedra_Library::assign_r(), Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::bump_size(), Parma_Polyhedra_Library::construct(), Parma_Polyhedra_Library::ROUND_UP, and Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::vec_.
|
private |
Exception-safe copy construction mechanism.
| void Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::copy_construct_coefficients | ( | const Impl & | y | ) |
Exception-safe copy construction mechanism for coefficients.
Definition at line 96 of file DB_Row_templates.hh.
References Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::size(), and Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::vec_.
| void Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::expand_within_capacity | ( | dimension_type | new_size | ) |
Expands the row to size new_size.
It is assumed that new_size is between the current size and capacity.
Definition at line 58 of file DB_Row_templates.hh.
References Parma_Polyhedra_Library::assign_r(), Parma_Polyhedra_Library::PLUS_INFINITY, and Parma_Polyhedra_Library::ROUND_NOT_NEEDED.
| memory_size_type Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::external_memory_in_bytes | ( | ) | const |
Returns the size in bytes of the memory managed by *this.
Definition at line 119 of file DB_Row_templates.hh.
References Parma_Polyhedra_Library::external_memory_in_bytes().
|
inlinestatic |
Returns the size() of the largest possible Impl.
Definition at line 83 of file DB_Row_inlines.hh.
Referenced by Parma_Polyhedra_Library::DB_Row< T >::max_size().
|
inlinestatic |
Uses the standard delete operator to free the memory p points to.
Definition at line 50 of file DB_Row_inlines.hh.
|
inlinestatic |
Placement version: uses the standard operator delete to free the memory p points to.
Definition at line 56 of file DB_Row_inlines.hh.
|
inlinestatic |
Allocates a chunk of memory able to contain capacity T objects beyond the specified fixed_size and returns a pointer to the new allocated memory.
Definition at line 38 of file DB_Row_inlines.hh.
|
private |
Private and unimplemented: assignment is not allowed.
|
inline |
Returns a reference to the element of *this indexed by k.
Definition at line 134 of file DB_Row_inlines.hh.
References Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::size(), and Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::vec_.
|
inline |
Returns a constant reference to the element of *this indexed by k.
Definition at line 141 of file DB_Row_inlines.hh.
|
inline |
Sets to new_sz the actual size of *this.
Definition at line 95 of file DB_Row_inlines.hh.
| void Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::shrink | ( | dimension_type | new_size | ) |
Shrinks the row by erasing elements at the end.
It is assumed that new_size is not greater than the current size.
Definition at line 76 of file DB_Row_templates.hh.
|
inline |
Returns the actual size of this.
Definition at line 89 of file DB_Row_inlines.hh.
Referenced by Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::copy_construct_coefficients(), Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::operator[](), and Parma_Polyhedra_Library::DB_Row< T >::size().
|
inline |
Returns a lower bound to the total size in bytes of the memory occupied by *this.
Definition at line 75 of file DB_Row_inlines.hh.
References Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::size_.
|
inline |
Returns the total size in bytes of the memory occupied by *this.
Definition at line 63 of file DB_Row_inlines.hh.
References Parma_Polyhedra_Library::external_memory_in_bytes().
|
friend |
Definition at line 443 of file DB_Row_defs.hh.
|
private |
The number of coefficients in the row.
Definition at line 446 of file DB_Row_defs.hh.
Referenced by Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::total_memory_in_bytes().
|
private |
The vector of coefficients.
Definition at line 455 of file DB_Row_defs.hh.
Referenced by Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::construct_upward_approximation(), Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::copy_construct_coefficients(), and Parma_Polyhedra_Library::DB_Row_Impl_Handler< T >::Impl::operator[]().