Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func AbsDiff ¶ added in v1.9.1
func AbsDiff[T constraints.Unsigned](a, b T) T
func Add ¶ added in v1.11.10
func Add[T constraints.Unsigned](a, b T) (T, error)
Add returns: 1) a + b 2) If there is overflow, an error
func MaxUint ¶ added in v1.11.10
func MaxUint[T constraints.Unsigned]() T
MaxUint returns the maximum value of an unsigned integer of type T.
func Mul ¶ added in v1.11.10
func Mul[T constraints.Unsigned](a, b T) (T, error)
Mul returns: 1) a * b 2) If there is overflow, an error
func Sub ¶ added in v1.9.1
func Sub[T constraints.Unsigned](a, b T) (T, error)
Sub returns: 1) a - b 2) If there is underflow, an error
Types ¶
type Averager ¶ added in v1.0.4
type Averager interface {
// Observe the value at the given time
Observe(value float64, currentTime time.Time)
// Read returns the average of the provided values.
Read() float64
}
Averager tracks a continuous time exponential moving average of the provided values.
func NewAverager ¶ added in v1.0.4
func NewSyncAverager ¶ added in v1.2.4
func NewUninitializedAverager ¶ added in v1.7.15
NewUninitializedAverager creates a new averager with the given halflife. If [Read] is called before [Observe], the zero value will be returned. When [Observe] is called the first time, the averager will be initialized with [value] at that time.
type AveragerHeap ¶ added in v1.7.13
type AveragerHeap interface {
// Add the average to the heap. If [nodeID] is already in the heap, the
// average will be replaced and the old average will be returned. If there
// was not an old average, false will be returned.
Add(nodeID ids.NodeID, averager Averager) (Averager, bool)
// Remove attempts to remove the average that was added with the provided
// [nodeID], if none is contained in the heap, [false] will be returned.
Remove(nodeID ids.NodeID) (Averager, bool)
// Pop attempts to remove the node with either the largest or smallest
// average, depending on if this is a max heap or a min heap, respectively.
Pop() (ids.NodeID, Averager, bool)
// Peek attempts to return the node with either the largest or smallest
// average, depending on if this is a max heap or a min heap, respectively.
Peek() (ids.NodeID, Averager, bool)
// Len returns the number of nodes that are currently in the heap.
Len() int
}
TODO replace this interface with utils/heap AveragerHeap maintains a heap of the averagers.
func NewMaxAveragerHeap ¶ added in v1.7.13
func NewMaxAveragerHeap() AveragerHeap
NewMaxAveragerHeap returns a new empty max heap. The returned heap is not thread safe.