Public Member Functions | Private Attributes

# SymmetricScaler Class Reference

Scaler for symmetric distribution. More...

`#include <demands.h>`

Inheritance diagram for SymmetricScaler:

## Public Member Functions
| SymmetricScaler (uint mod_size)
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 | DemandLeft (Node &to)
| Check if there is any acceptance left for this node.
void | SetDemands (LinkGraphComponent *graph, 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 25 of file demands.h.

## 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 33 of file demands.h.

References Node::supply, and supply_sum.

bool SymmetricScaler::DemandLeft | ( | 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 | The node to be checked.

Definition at line 65 of file demands.h.

References Node::demand, Node::supply, and Node::undelivered_supply.

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 54 of file demands.h.

References max(), and Node::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 42 of file demands.h.

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

void SymmetricScaler::SetDemands | ( | LinkGraphComponent * | graph,
|  | 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:

  | graph | The link graph.
  | 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 22 of file demands.cpp.

References Node::demand, LinkGraphComponent::GetNode(), max(), mod_size, and Node::undelivered_supply.

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

- src/linkgraph/demands.h
- src/linkgraph/demands.cpp