Collects values down a potential field.
Collects values down a potential field.
type of the potential field
type of the values to be collected/accumulated
the field providing the direction of the collection process
the function describing how values are to be collected
the value field providing the value to be collected for each device
zero value for accumulation and for neighbours for which the current device is *not* a parent in the field
the accumulation value for each device according to its position in the potential field
Curried version of G
Breaks simmetry using UIDs.
Breaks simmetry using UIDs. UIDs are used to break symmetry by a competition between devices for leadership.
Broadcast information outward from a source field.
Broadcast information outward from a source field.
Type of the value to be broadcast
The source of the broadcast
Field denoting (1) at the source, the value to be broadcast; and (2) in other places, the default value of the broadcast field.
Metric that parameterises the gradient-based construction of the the propagation structure
A broadcast field.
true only when a discontinuity (i.e., a change) is observed on x
(you may choose how to handle the first observation)
A channel from a source
to a target
with width width
.
A channel from a source
to a target
with width width
.
A channel is a boolean field which is true in correspondence of the device positioned
along the minimum path from source to target.
the collection of the number of devices for which predicate
is true
Collects a set by merging values
Collects a set by merging values
Collects a map by merging map entries
Collects a map by merging map entries
potential field
maps to be merged
function specifying how to merge entries with the same key
the collect field of the merged maps
the collect field of the mean of the value
field
Collects a set by merging sets
Collects a set by merging sets
Collects values as a map by preserving the sources of those values
Collects values as a map by preserving the sources of those values
Alias for remember()
Alias for remember()
Periodically invoke a function.
Periodically invoke a function.
FiniteDuratrion, timeout
() -> T, function to be invoked
T, default value
T, apply f if the timeout is expired, NULL otherwise
Periodically invoke a function.
Periodically invoke a function.
T, timeout
T, decay rate
() -> V, function to be invoked
V, default value
V, apply f if the timeout is expired, NULL otherwise
Cyclic timer with a default unitary decay
Cyclic timer with a default unitary decay
timeout
true if the timeout is expired, false otherwise
Cyclic timer.
Cyclic timer.
timeout
decay rate
true if the timeout is expired, false otherwise
It is a simple building block which returns the same values it receives in input delayed by one computation round.
It is a simple building block which returns the same values it receives in input delayed by one computation round.
Distance between source
to target
based on metric
Distance between source
to target
based on metric
Candidate leader devices surrender leadership to the lowest nearby UID.
Candidate leader devices surrender leadership to the lowest nearby UID.
A field of distance (i.e., a gradient) from a source
, based on a given metric
A field of distance (i.e., a gradient) from a source
, based on a given metric
Evaporation pattern.
Evaporation pattern. Starting from [lenght, info] descends to [0, info] with a predefined unitary decay (The floor values depends on length's type)
T, duration
V, information
[V, T]
Evaporation pattern.
Evaporation pattern. Starting from [lenght, info] descends to [0, info] with a custom decay (The floor values depends on length's type)
T, duration
T => T, decay rate
V, information
[V, T]
Exponential back-off filter.
Exponential back-off filter.
T, signal to be filtered
T, alpha value
T, filtered signal
the ID of the "parent device" along a potential
field, i.e.,
the neighbour with the smallest value of the potential field.
the parent device UID of the current device along field potential
,
or None if no such a parent is there (so that the device is parent of itself).
Idea: a device should change its estimate only for significant errors.
Idea: a device should change its estimate only for significant errors. Useful when devices far from the source need only coarse estimates. Flex gradient provides tunable trade-off between precision and communication cost.
Parameter expressing tolerance wrt changes
Distortion into the distance measure, such that neighbor distance is never considered to be less than delta * communicationRadius.
Source fields of devices from which the gradient is calculated
true when the given parameter goes from true to false (starting from false); false otherwise
true when the given parameter goes from false to true (starting from false); false otherwise
Hop distance
Hop distance
Remembers the occurrence of some condition or event
Remembers the occurrence of some condition or event
Remembers the provided optional value, unless empty
Remembers the provided optional value, unless empty
Returns a non-empty optional with the provided value just once, then None
Returns a non-empty optional with the provided value just once, then None
Generates a field of random unique identifiers.
Generates a field of random unique identifiers.
a tuple where the first element is a random number, end the second element is the device identifier to ensure uniqueness of the field elements.
Remembers the provided value
Remembers the provided value
Counts the number of rounds, refreshing each time the computation is re-entered.
Counts the number of rounds, refreshing each time the computation is re-entered. TODO: consider boundedness as a limitation for long-lived/eternal systems
the number of the round
Timer synchronized within a neighborhood
Timer synchronized within a neighborhood
Version of G (Gradient-Cast) that takes a potential field g
as input
Version of G (Gradient-Cast) that takes a potential field g
as input
type of the value to be accumulated
potential field
metric to use for the "last step"
value of the field for sources
aggregator
a field that locally provides the value of the gradient-cast (field
at sources, and an accumulation value along the way)
As it seems buggy.
Version of G (Gradient-Cast) that takes a Gradient algorithm as input.
Version of G (Gradient-Cast) that takes a Gradient algorithm as input. This is motivated by the desire of speeding G up by using
The gradient algorithm to use -- notice that this encapsulates details about the gradient field (e.g., the sources)
As it seems buggy: see G_along
method.
(Since version ) see corresponding Javadoc for more information.