A scaler for asymmetric distribution. More...
#include <demands.h>
Public Member Functions | |
FORCEINLINE void | AddNode (const Node &node) |
Count a node's demand into the sum of demands. | |
FORCEINLINE void | SetDemandPerNode (uint num_demands) |
Calculate the mean demand per node using the sum of demands. | |
FORCEINLINE uint | EffectiveSupply (const Node &from, const Node &to) |
Get the effective supply of one node towards another one. | |
FORCEINLINE bool | DemandLeft (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 80 of file demands.h.
FORCEINLINE 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 88 of file demands.h.
References Node::demand, and demand_sum.
FORCEINLINE bool AsymmetricScaler::DemandLeft | ( | 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. |
Definition at line 118 of file demands.h.
References Node::demand.
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 108 of file demands.h.
References Node::demand, max(), and Node::supply.
FORCEINLINE 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 97 of file demands.h.
References Scaler::demand_per_node, demand_sum, and max().