#include <DegreeDistributionConnections.h>
Public Types | |
enum | DegreeType { incoming, outgoing } |
In- or out degree. More... | |
Public Member Functions | |
DegreeDistributionConnections (RandomDistribution const &distribution, DegreeType degreeType) | |
New DegreeDistributionConnections object with given distribution for the either in or out degree. | |
virtual | ~DegreeDistributionConnections () |
virtual void | init (const SimObjectPopulation &source, const SimObjectPopulation &destination) |
Tell the iterator about the populations to connect. | |
virtual void | reset (SimObject::ID::SortedVector::const_iterator src_begin_it, SimObject::ID::SortedVector::const_iterator src_end_it, SimObject::ID::SortedVector::const_iterator dest_begin_it, SimObject::ID::SortedVector::const_iterator dest_end_it) |
Reset/Prepare the iterator to connect src to dst (specified by the begin and end iterators). | |
virtual bool | next (pair< SimObject::ID, SimObject::ID > &connection) |
Move on to the next connection. If true is returned the connection pair is set properly. | |
virtual size_t | estimate () |
Return an estimated number of connections which will be generated (if possible). | |
Protected Attributes | |
RandomDistribution * | dist |
DegreeType | degree_type |
const SimObjectPopulation * | src_popul |
const SimObjectPopulation * | dest_popul |
unsigned | curr_degree |
unsigned | curr_made_connections |
SimObject::ID::SortedVector::const_iterator | from_begin_it |
unsigned | from_seq_size |
SimObject::ID::SortedVector::const_iterator | curr_to_it |
SimObject::ID::SortedVector::const_iterator | to_end_it |
SimpleNonRepeatRandomNG | nonrepeat_rng |
Definition at line 21 of file DegreeDistributionConnections.h.
DegreeDistributionConnections::DegreeDistributionConnections | ( | RandomDistribution const & | distribution, | |
DegreeType | degreeType | |||
) |
New DegreeDistributionConnections object with given distribution for the either in or out degree.
distribution | The random distribution (e.g. ConstantNumber or BinomialDistribution) | |
degreeType | Define either in or out degree: incoming or outgoing |
Definition at line 13 of file DegreeDistributionConnections.cpp.
References RandomDistribution::clone(), and dist.
DegreeDistributionConnections::~DegreeDistributionConnections | ( | ) | [virtual] |
void DegreeDistributionConnections::init | ( | const SimObjectPopulation & | src, | |
const SimObjectPopulation & | dst | |||
) | [virtual] |
Tell the iterator about the populations to connect.
Implements ConnectionIterator.
Definition at line 26 of file DegreeDistributionConnections.cpp.
References dest_popul, and src_popul.
void DegreeDistributionConnections::reset | ( | SimObject::ID::SortedVector::const_iterator | src_begin, | |
SimObject::ID::SortedVector::const_iterator | src_end, | |||
SimObject::ID::SortedVector::const_iterator | dst_begin, | |||
SimObject::ID::SortedVector::const_iterator | dst_end | |||
) | [virtual] |
Reset/Prepare the iterator to connect src to dst (specified by the begin and end iterators).
Implements ConnectionIterator.
Definition at line 33 of file DegreeDistributionConnections.cpp.
References curr_degree, curr_made_connections, curr_to_it, degree_type, dist, from_begin_it, from_seq_size, incoming, nonrepeat_rng, SimpleNonRepeatRandomNG::reset(), and to_end_it.
bool DegreeDistributionConnections::next | ( | pair< SimObject::ID, SimObject::ID > & | connection | ) | [virtual] |
Move on to the next connection. If true is returned the connection pair is set properly.
Implements ConnectionIterator.
Definition at line 61 of file DegreeDistributionConnections.cpp.
References curr_degree, curr_made_connections, curr_to_it, degree_type, dist, from_begin_it, from_seq_size, incoming, ConnectionIterator::last_conn_idx, ConnectionIterator::last_conn_valid, ConnectionIterator::m_rnd_eng, nonrepeat_rng, SimpleNonRepeatRandomNG::reset(), and to_end_it.
virtual size_t DegreeDistributionConnections::estimate | ( | ) | [inline, virtual] |
Return an estimated number of connections which will be generated (if possible).
Reimplemented from ConnectionIterator.
Definition at line 45 of file DegreeDistributionConnections.h.
RandomDistribution* DegreeDistributionConnections::dist [protected] |
Definition at line 47 of file DegreeDistributionConnections.h.
Referenced by DegreeDistributionConnections(), next(), reset(), and ~DegreeDistributionConnections().
DegreeType DegreeDistributionConnections::degree_type [protected] |
const SimObjectPopulation* DegreeDistributionConnections::src_popul [protected] |
const SimObjectPopulation* DegreeDistributionConnections::dest_popul [protected] |
unsigned DegreeDistributionConnections::curr_degree [protected] |
unsigned DegreeDistributionConnections::curr_made_connections [protected] |
unsigned DegreeDistributionConnections::from_seq_size [protected] |