summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/facebookgo/stats/aggregation.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2017-02-18 23:00:46 +0100
committerWim <wim@42.be>2017-02-18 23:11:48 +0100
commit930b639cc9cd2d2873302f30303378c0e53816a8 (patch)
tree8cd3f1d464fb5d4e5607fe16255c35a31a9d8b62 /vendor/github.com/facebookgo/stats/aggregation.go
parent58483ea70c2c99a352592c5e50686fb03985650e (diff)
downloadmatterbridge-msglm-930b639cc9cd2d2873302f30303378c0e53816a8.tar.gz
matterbridge-msglm-930b639cc9cd2d2873302f30303378c0e53816a8.tar.bz2
matterbridge-msglm-930b639cc9cd2d2873302f30303378c0e53816a8.zip
Update vendor
Diffstat (limited to 'vendor/github.com/facebookgo/stats/aggregation.go')
-rw-r--r--vendor/github.com/facebookgo/stats/aggregation.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/github.com/facebookgo/stats/aggregation.go b/vendor/github.com/facebookgo/stats/aggregation.go
new file mode 100644
index 00000000..8f57fb7f
--- /dev/null
+++ b/vendor/github.com/facebookgo/stats/aggregation.go
@@ -0,0 +1,35 @@
+package stats
+
+import "sort"
+
+// Average returns the average value
+func Average(values []float64) float64 {
+ if len(values) == 0 {
+ return 0
+ }
+
+ var val float64
+ for _, point := range values {
+ val += point
+ }
+ return val / float64(len(values))
+}
+
+// Sum returns the sum of all the given values
+func Sum(values []float64) float64 {
+ var val float64
+ for _, point := range values {
+ val += point
+ }
+ return val
+}
+
+// Percentiles returns a map containing the asked for percentiles
+func Percentiles(values []float64, percentiles map[string]float64) map[string]float64 {
+ sort.Float64s(values)
+ results := map[string]float64{}
+ for label, p := range percentiles {
+ results[label] = values[int(float64(len(values))*p)]
+ }
+ return results
+}