Public Member Functions | |
Rep (dimension_type num_dimensions, Degenerate_Element kind) | |
Builds a new representation by creating a domain element of the specified kind, in the specified vector space. | |
Rep (const PH &p) | |
Builds a new representation by copying base-level element p . | |
Rep (const Constraint_System &cs) | |
Builds a new representation by copying the constraints in cs . | |
Rep (const Congruence_System &cgs) | |
Builds a new representation by copying the constraints in cgs . | |
~Rep () | |
Destructor. | |
void | new_reference () const |
Registers a new reference. | |
bool | del_reference () const |
Unregisters one reference; returns true if and only if the representation has become unreferenced. | |
bool | is_shared () const |
True if and only if this representation is currently shared. | |
memory_size_type | total_memory_in_bytes () const |
Returns a lower bound to the total size in bytes of the memory occupied by *this . | |
memory_size_type | external_memory_in_bytes () const |
Returns a lower bound to the size in bytes of the memory managed by *this . | |
Public Attributes | |
PH | ph |
A possibly shared base-level domain element. | |
Private Member Functions | |
Rep & | operator= (const Rep &y) |
Private and unimplemented: assignment not allowed. | |
Rep (const Rep &y) | |
Private and unimplemented: copies not allowed. | |
Rep () | |
Private and unimplemented: default construction not allowed. | |
Private Attributes | |
unsigned long | references |
Count the number of references:
|
By adopting the copy-on-write technique, a single representation of the base-level object may be shared by more than one object of the class Determinate.
Definition at line 225 of file Determinate.defs.hh.
Parma_Polyhedra_Library::Determinate< PH >::Rep::Rep | ( | const Rep & | y | ) | [private] |
Private and unimplemented: copies not allowed.
Parma_Polyhedra_Library::Determinate< PH >::Rep::Rep | ( | ) | [private] |
Private and unimplemented: default construction not allowed.
Parma_Polyhedra_Library::Determinate< PH >::Rep::Rep | ( | dimension_type | num_dimensions, | |
Degenerate_Element | kind | |||
) | [inline] |
Builds a new representation by creating a domain element of the specified kind, in the specified vector space.
Definition at line 32 of file Determinate.inlines.hh.
00034 : references(0), ph(num_dimensions, kind) { 00035 }
Parma_Polyhedra_Library::Determinate< PH >::Rep::Rep | ( | const PH & | p | ) | [inline] |
Builds a new representation by copying base-level element p
.
Definition at line 39 of file Determinate.inlines.hh.
00040 : references(0), ph(p) { 00041 }
Parma_Polyhedra_Library::Determinate< PH >::Rep::Rep | ( | const Constraint_System & | cs | ) | [inline] |
Builds a new representation by copying the constraints in cs
.
Definition at line 45 of file Determinate.inlines.hh.
00046 : references(0), ph(cs) { 00047 }
Parma_Polyhedra_Library::Determinate< PH >::Rep::Rep | ( | const Congruence_System & | cgs | ) | [inline] |
Builds a new representation by copying the constraints in cgs
.
Definition at line 51 of file Determinate.inlines.hh.
00052 : references(0), ph(cgs) { 00053 }
Parma_Polyhedra_Library::Determinate< PH >::Rep::~Rep | ( | ) | [inline] |
Destructor.
Definition at line 57 of file Determinate.inlines.hh.
References Parma_Polyhedra_Library::Determinate< PH >::Rep::references.
00057 { 00058 assert(references == 0); 00059 }
Rep& Parma_Polyhedra_Library::Determinate< PH >::Rep::operator= | ( | const Rep & | y | ) | [private] |
Private and unimplemented: assignment not allowed.
void Parma_Polyhedra_Library::Determinate< PH >::Rep::new_reference | ( | ) | const [inline] |
Registers a new reference.
Definition at line 63 of file Determinate.inlines.hh.
References Parma_Polyhedra_Library::Determinate< PH >::Rep::references.
Referenced by Parma_Polyhedra_Library::Determinate< PH >::Determinate(), Parma_Polyhedra_Library::Determinate< PH >::mutate(), and Parma_Polyhedra_Library::Determinate< PH >::operator=().
00063 { 00064 ++references; 00065 }
bool Parma_Polyhedra_Library::Determinate< PH >::Rep::del_reference | ( | ) | const [inline] |
Unregisters one reference; returns true
if and only if the representation has become unreferenced.
Definition at line 69 of file Determinate.inlines.hh.
References Parma_Polyhedra_Library::Determinate< PH >::Rep::references.
Referenced by Parma_Polyhedra_Library::Determinate< PH >::mutate(), Parma_Polyhedra_Library::Determinate< PH >::operator=(), and Parma_Polyhedra_Library::Determinate< PH >::~Determinate().
00069 { 00070 return --references == 0; 00071 }
bool Parma_Polyhedra_Library::Determinate< PH >::Rep::is_shared | ( | ) | const [inline] |
True if and only if this representation is currently shared.
Definition at line 75 of file Determinate.inlines.hh.
References Parma_Polyhedra_Library::Determinate< PH >::Rep::references.
Referenced by Parma_Polyhedra_Library::Determinate< PH >::mutate().
00075 { 00076 return references > 1; 00077 }
memory_size_type Parma_Polyhedra_Library::Determinate< PH >::Rep::total_memory_in_bytes | ( | ) | const [inline] |
Returns a lower bound to the total size in bytes of the memory occupied by *this
.
Definition at line 87 of file Determinate.inlines.hh.
References Parma_Polyhedra_Library::Determinate< PH >::Rep::external_memory_in_bytes().
Referenced by Parma_Polyhedra_Library::Determinate< PH >::external_memory_in_bytes().
00087 { 00088 return sizeof(*this) + external_memory_in_bytes(); 00089 }
memory_size_type Parma_Polyhedra_Library::Determinate< PH >::Rep::external_memory_in_bytes | ( | ) | const [inline] |
Returns a lower bound to the size in bytes of the memory managed by *this
.
Definition at line 81 of file Determinate.inlines.hh.
References Parma_Polyhedra_Library::Determinate< PH >::Rep::ph.
Referenced by Parma_Polyhedra_Library::Determinate< PH >::Rep::total_memory_in_bytes().
00081 { 00082 return ph.external_memory_in_bytes(); 00083 }
unsigned long Parma_Polyhedra_Library::Determinate< PH >::Rep::references [mutable, private] |
Count the number of references:
ph
is non-const;ph
is non-const;ph
is const.
Definition at line 233 of file Determinate.defs.hh.
Referenced by Parma_Polyhedra_Library::Determinate< PH >::Rep::del_reference(), Parma_Polyhedra_Library::Determinate< PH >::Rep::is_shared(), Parma_Polyhedra_Library::Determinate< PH >::Rep::new_reference(), and Parma_Polyhedra_Library::Determinate< PH >::Rep::~Rep().
PH Parma_Polyhedra_Library::Determinate< PH >::Rep::ph |
A possibly shared base-level domain element.
Definition at line 246 of file Determinate.defs.hh.
Referenced by Parma_Polyhedra_Library::Determinate< PH >::definitely_entails(), Parma_Polyhedra_Library::Determinate< PH >::element(), Parma_Polyhedra_Library::Determinate< PH >::Rep::external_memory_in_bytes(), Parma_Polyhedra_Library::Determinate< PH >::is_bottom(), Parma_Polyhedra_Library::Determinate< PH >::is_definitely_equivalent_to(), Parma_Polyhedra_Library::Determinate< PH >::is_top(), Parma_Polyhedra_Library::Determinate< PH >::mutate(), and Parma_Polyhedra_Library::Determinate< PH >::OK().