Documentation
¶
Overview ¶
Package statistics provides reducers for gathering statistics from an iterator.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Max ¶
Max is a iterator.Reducer, which collects the maximum value of a stream. acc must be initialized to the minimum value of the type.
Example ¶
package main import ( "fmt" "math" "github.com/KrischanCS/go-toolbox/iterator" statistics2 "github.com/KrischanCS/go-toolbox/iterator/reducer/statistics" ) func main() { i := iterator.Of(5, 2, 8, 1, 7) acc := math.MinInt // Reduce a sequence to find the maximum value iterator.Reduce(i, &acc, statistics2.Max[int]) fmt.Println(acc) }
Output: 8
func Mean ¶
func Mean[T constraints.RealNumber](acc *MeanAccumulator[T], in T)
Mean is a iterator.Reducer, which collects the mean value of a stream.
Example ¶
package main import ( "fmt" "github.com/KrischanCS/go-toolbox/iterator" statistics2 "github.com/KrischanCS/go-toolbox/iterator/reducer/statistics" ) func main() { i := iterator.Of(0, -3, 5, 8, -2, 7) acc := statistics2.MeanAccumulator[int]{} iterator.Reduce(i, &acc, statistics2.Mean[int]) fmt.Println(acc.Mean()) }
Output: 2.5
func Min ¶
Min is a iterator.Reducer, which collects the minimum value of a stream. acc must be initialized to the maximum value of the type.
Example ¶
package main import ( "fmt" "math" "github.com/KrischanCS/go-toolbox/iterator" statistics2 "github.com/KrischanCS/go-toolbox/iterator/reducer/statistics" ) func main() { i := iterator.Of(5, 2, 8, 1, 7) acc := math.MaxInt // Reduce a sequence to find the maximum value iterator.Reduce(i, &acc, statistics2.Min[int]) fmt.Println(acc) }
Output: 1
func MinMax ¶
func MinMax[T cmp.Ordered](acc *MinMaxAccumulator[T], in T)
MinMax is a iterator.Reducer, which collects the minimum and maximum value of a stream.
acc min must be initialized to the maximum value of the type, acc max must be initialized to the minimum value of the type.
For real numbers, a correctly initialized MinMaxAccumulator can be created with NewMinMaxAccumulator.
Example ¶
package main import ( "fmt" "github.com/KrischanCS/go-toolbox/iterator" statistics2 "github.com/KrischanCS/go-toolbox/iterator/reducer/statistics" ) func main() { i := iterator.Of(-6.28, 2.78, 9.81, 1.41) acc := statistics2.NewMinMaxAccumulator[float64]() iterator.Reduce(i, &acc, statistics2.MinMax[float64]) fmt.Printf("Min: %.2f, Max: %.2f\n", acc.Min(), acc.Max()) }
Output: Min: -6.28, Max: 9.81
Types ¶
type MeanAccumulator ¶
type MeanAccumulator[T constraints.RealNumber] struct { // contains filtered or unexported fields }
MeanAccumulator is the accumulator type for the Mean reducer.
func (MeanAccumulator[T]) Mean ¶
func (m MeanAccumulator[T]) Mean() float64
Mean returns the arithmetic mean of the gathered values.
type MinMaxAccumulator ¶
type MinMaxAccumulator[T any] interface { Min() T Max() T // contains filtered or unexported methods }
MinMaxAccumulator is the accumulator type for the MinMax reducer.
func NewMinMaxAccumulator ¶
func NewMinMaxAccumulator[T constraints.RealNumber]() MinMaxAccumulator[T]
NewMinMaxAccumulator creates a new MinMaxAccumulator with the correct initial values.