Public Member Functions | Private Attributes

SymmetricScaler Class Reference

Scaler for symmetric distribution. More...

Inheritance diagram for SymmetricScaler:
Scaler

Public Member Functions

 SymmetricScaler (uint mod_size)
 Constructor.
void AddNode (const Node &node)
 Count a node's supply into the sum of supplies.
void SetDemandPerNode (uint num_demands)
 Calculate the mean demand per node using the sum of supplies.
uint EffectiveSupply (const Node &from, const Node &to)
 Get the effective supply of one node towards another one.
bool HasDemandLeft (const Node &to)
 Check if there is any acceptance left for this node.
void SetDemands (LinkGraphJob &job, NodeID from, NodeID to, uint demand_forw)
 Set the demands between two nodes using the given base demand.

Private Attributes

uint mod_size
 Size modifier. Determines how much demands increase with the supply of the remote station.
uint supply_sum
 Sum of all supplies in the component.

Detailed Description

Scaler for symmetric distribution.

Definition at line 28 of file demands.cpp.


Constructor & Destructor Documentation

SymmetricScaler::SymmetricScaler ( uint  mod_size  )  [inline]

Constructor.

Parameters:
mod_size Size modifier to be used. Determines how much demands increase with the supply of the remote station.

Definition at line 35 of file demands.cpp.


Member Function Documentation

void SymmetricScaler::AddNode ( const Node node  )  [inline]

Count a node's supply into the sum of supplies.

Parameters:
node Node.

Definition at line 42 of file demands.cpp.

References LinkGraph::NodeWrapper< Tnode, Tedge >::Supply(), and supply_sum.

uint SymmetricScaler::EffectiveSupply ( const Node from,
const Node to 
) [inline]

Get the effective supply of one node towards another one.

In symmetric distribution the supply of the other node is weighed in.

Parameters:
from The supplying node.
to The receiving node.
Returns:
Effective supply.

Definition at line 63 of file demands.cpp.

References Scaler::demand_per_node, max(), mod_size, and LinkGraph::NodeWrapper< Tnode, Tedge >::Supply().

bool SymmetricScaler::HasDemandLeft ( const Node to  )  [inline]

Check if there is any acceptance left for this node.

In symmetric distribution nodes only accept anything if they also supply something. So if undelivered_supply == 0 at the node there isn't any demand left either.

Parameters:
to Node to be checked.
Returns:
If demand is left.

Definition at line 75 of file demands.cpp.

References LinkGraph::NodeWrapper< Tnode, Tedge >::Demand(), and LinkGraph::NodeWrapper< Tnode, Tedge >::Supply().

void SymmetricScaler::SetDemandPerNode ( uint  num_demands  )  [inline]

Calculate the mean demand per node using the sum of supplies.

Parameters:
num_demands Number of accepting nodes.

Definition at line 51 of file demands.cpp.

References Scaler::demand_per_node, max(), and supply_sum.

void SymmetricScaler::SetDemands ( LinkGraphJob job,
NodeID  from_id,
NodeID  to_id,
uint  demand_forw 
)

Set the demands between two nodes using the given base demand.

In symmetric mode this sets demands in both directions.

Parameters:
job The link graph job.
from_id The supplying node. @þaram to_id The receiving node.
demand_forw Demand calculated for the "forward" direction.

Reimplemented from Scaler.

Definition at line 146 of file demands.cpp.

References max(), and mod_size.


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