DDD  1.9.0.20240425101308
Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
_GDDD Class Reference
Collaboration diagram for _GDDD:
Collaboration graph

Classes

struct  custom_new_t
 an empty struct tag type used to disambiguate between different variants of the operator new for _GDDD. More...
 

Public Member Functions

 ~_GDDD ()
 destructor More...
 
const_iterator begin () const
 iterator API More...
 
const_iterator end () const
 
bool operator== (const _GDDD &g) const
 
bool operator< (const _GDDD &g) const
 
size_t hash () const
 hash More...
 
void mark () const
 Memory Manager and reference counting. More...
 
_GDDDclone () const
 cloning More...
 

Static Public Member Functions

static GDDD::id_t create_unique_GDDD (int var, const GDDD::Valuation &val)
 factory operation More...
 
static const _GDDDresolve (GDDD::id_t id)
 
static void operator delete (void *addr)
 custom operator delete More...
 

Private Types

typedef GDDD::edge_t edge_t
 useful typedefs More...
 
typedef GDDD::const_iterator const_iterator
 

Private Member Functions

edge_talpha_addr () const
 get the address of the valuation More...
 
 _GDDD (int var, const GDDD::Valuation &val)
 constructor More...
 
template<class Iterator >
 _GDDD (int var, Iterator begin, Iterator end)
 constructor (with iterators) More...
 
 _GDDD (const _GDDD &)=delete
 cannot copy or move these four operations are deliberately private and UNIMPLEMENTED More...
 
_GDDDoperator= (const _GDDD &)=delete
 
 _GDDD (_GDDD &&)=delete
 
_GDDDoperator= (_GDDD &&)=delete
 

Static Private Member Functions

static void * operator new (size_t, custom_new_t, size_t length)
 custom operator new WARNING: the expected arguments are not standard More...
 
static void * operator new (size_t, void *addr)
 classical placement new NB: it is the responsibility of the caller that there is enough room to build the _GDDD. More...
 

Private Attributes

const int variable
 attributes More...
 
const GDDD::valsz_t valuation_size
 

Friends

class GDDD
 
void saveDDD (std::ostream &, std::vector< DDD >)
 

Member Typedef Documentation

◆ const_iterator

◆ edge_t

typedef GDDD::edge_t _GDDD::edge_t
private

useful typedefs

Constructor & Destructor Documentation

◆ _GDDD() [1/4]

_GDDD::_GDDD ( int  var,
const GDDD::Valuation val 
)
inlineprivate

constructor

Referenced by alpha_addr(), and operator new().

◆ _GDDD() [2/4]

template<class Iterator >
_GDDD::_GDDD ( int  var,
Iterator  begin,
Iterator  end 
)
inlineprivate

constructor (with iterators)

References alpha_addr(), begin(), and end().

◆ _GDDD() [3/4]

_GDDD::_GDDD ( const _GDDD )
privatedelete

cannot copy or move these four operations are deliberately private and UNIMPLEMENTED

◆ _GDDD() [4/4]

_GDDD::_GDDD ( _GDDD &&  )
privatedelete

◆ ~_GDDD()

_GDDD::~_GDDD ( )
inline

destructor

References begin(), and end().

Referenced by create_unique_GDDD().

Member Function Documentation

◆ alpha_addr()

edge_t* _GDDD::alpha_addr ( ) const
inlineprivate

get the address of the valuation

References _GDDD().

Referenced by _GDDD(), begin(), and end().

◆ begin()

const_iterator _GDDD::begin ( ) const
inline

iterator API

References alpha_addr().

Referenced by _GDDD(), GDDD::begin(), clone(), hash(), mark(), operator<(), operator==(), and ~_GDDD().

◆ clone()

_GDDD* _GDDD::clone ( ) const
inline

cloning

References begin(), end(), valuation_size, and variable.

◆ create_unique_GDDD()

static GDDD::id_t _GDDD::create_unique_GDDD ( int  var,
const GDDD::Valuation val 
)
inlinestatic

factory operation

References UniqueTableId< T, ID >::instance(), and ~_GDDD().

Referenced by GDDD::GDDD().

◆ end()

const_iterator _GDDD::end ( ) const
inline

◆ hash()

size_t _GDDD::hash ( ) const
inline

◆ mark()

void _GDDD::mark ( ) const
inline

Memory Manager and reference counting.

References begin(), and end().

◆ operator delete()

static void _GDDD::operator delete ( void *  addr)
inlinestatic

custom operator delete

◆ operator new() [1/2]

static void* _GDDD::operator new ( size_t  ,
custom_new_t  ,
size_t  length 
)
inlinestaticprivate

custom operator new WARNING: the expected arguments are not standard

  • the first one (actually sizeof(_GDDD)) is ignored
  • the second one is 'custom_new_t', for disambiguation
  • the third one is the number of successors syntax: new (custom_new_t(), nb_sons) _GDDD (constructor arguments) it looks like a placement new, but this syntax is only used to pass arguments to operator new _GDDD should only be constructed by create_unique_GDDD or clone please refer to these two functions for invokation examples

References _GDDD().

◆ operator new() [2/2]

static void* _GDDD::operator new ( size_t  ,
void *  addr 
)
inlinestaticprivate

classical placement new NB: it is the responsibility of the caller that there is enough room to build the _GDDD.

e.g. new (ad) _GDDD(v, val) the memory chunk at 'ad' must be of size at least sizeof(_GDDD)+sizeof(edge_t)*val.size()

◆ operator<()

bool _GDDD::operator< ( const _GDDD g) const
inline

References begin(), end(), valuation_size, and variable.

◆ operator=() [1/2]

_GDDD& _GDDD::operator= ( _GDDD &&  )
privatedelete

◆ operator=() [2/2]

_GDDD& _GDDD::operator= ( const _GDDD )
privatedelete

◆ operator==()

bool _GDDD::operator== ( const _GDDD g) const
inline

References begin(), end(), valuation_size, and variable.

◆ resolve()

static const _GDDD* _GDDD::resolve ( GDDD::id_t  id)
inlinestatic

Friends And Related Function Documentation

◆ GDDD

friend class GDDD
friend

◆ saveDDD

void saveDDD ( std::ostream &  os,
std::vector< DDD list 
)
friend

Member Data Documentation

◆ valuation_size

const GDDD::valsz_t _GDDD::valuation_size
private

◆ variable

const int _GDDD::variable
private

attributes

Referenced by clone(), hash(), operator<(), operator==(), and GDDD::variable().


The documentation for this class was generated from the following file:

Please comment this page and report errors about it on the RefDocComments page.
Generated on Thu Apr 25 2024 10:15:16 for DDD by doxygen 1.9.1