A scaler for asymmetric distribution. More...
Public Member Functions | |
AsymmetricScaler () | |
Constructor. | |
void | AddNode (const Node &node) |
Count a node's demand into the sum of demands. | |
void | SetDemandPerNode (uint num_demands) |
Calculate the mean demand per node using the sum of demands. | |
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. | |
Private Attributes | |
uint | demand_sum |
Sum of all demands in the component. |
A scaler for asymmetric distribution.
Definition at line 90 of file demands.cpp.
void AsymmetricScaler::AddNode | ( | const Node & | node | ) | [inline] |
Count a node's demand into the sum of demands.
node | The node to be counted. |
Definition at line 101 of file demands.cpp.
References LinkGraph::NodeWrapper< Tnode, Tedge >::Demand(), and demand_sum.
Get the effective supply of one node towards another one.
In asymmetric distribution the demand of the other node is weighed in.
from | The supplying node. | |
to | The receiving node. |
Definition at line 121 of file demands.cpp.
References LinkGraph::NodeWrapper< Tnode, Tedge >::Demand(), Scaler::demand_per_node, max(), and LinkGraph::NodeWrapper< Tnode, Tedge >::Supply().
bool AsymmetricScaler::HasDemandLeft | ( | const Node & | to | ) | [inline] |
Check if there is any acceptance left for this node.
In asymmetric distribution nodes always accept as long as their demand > 0.
to | The node to be checked. | |
to_anno | Unused. |
Definition at line 132 of file demands.cpp.
References LinkGraph::NodeWrapper< Tnode, Tedge >::Demand().
void AsymmetricScaler::SetDemandPerNode | ( | uint | num_demands | ) | [inline] |
Calculate the mean demand per node using the sum of demands.
num_demands | Number of accepting nodes. |
Definition at line 110 of file demands.cpp.
References Scaler::demand_per_node, demand_sum, and max().