git subrepo clone (merge) https://github.com/kubernetes-incubator/metrics-server.git metrics-server
subrepo:
subdir: "metrics-server"
merged: "92d8412"
upstream:
origin: "https://github.com/kubernetes-incubator/metrics-server.git"
branch: "master"
commit: "92d8412"
git-subrepo:
version: "0.4.0"
origin: "???"
commit: "???"
diff --git a/metrics-server/vendor/github.com/petar/GoLLRB/llrb/llrb-stats.go b/metrics-server/vendor/github.com/petar/GoLLRB/llrb/llrb-stats.go
new file mode 100644
index 0000000..47126a3
--- /dev/null
+++ b/metrics-server/vendor/github.com/petar/GoLLRB/llrb/llrb-stats.go
@@ -0,0 +1,46 @@
+// Copyright 2010 Petar Maymounkov. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package llrb
+
+// GetHeight() returns an item in the tree with key @key, and it's height in the tree
+func (t *LLRB) GetHeight(key Item) (result Item, depth int) {
+ return t.getHeight(t.root, key)
+}
+
+func (t *LLRB) getHeight(h *Node, item Item) (Item, int) {
+ if h == nil {
+ return nil, 0
+ }
+ if less(item, h.Item) {
+ result, depth := t.getHeight(h.Left, item)
+ return result, depth + 1
+ }
+ if less(h.Item, item) {
+ result, depth := t.getHeight(h.Right, item)
+ return result, depth + 1
+ }
+ return h.Item, 0
+}
+
+// HeightStats() returns the average and standard deviation of the height
+// of elements in the tree
+func (t *LLRB) HeightStats() (avg, stddev float64) {
+ av := &avgVar{}
+ heightStats(t.root, 0, av)
+ return av.GetAvg(), av.GetStdDev()
+}
+
+func heightStats(h *Node, d int, av *avgVar) {
+ if h == nil {
+ return
+ }
+ av.Add(float64(d))
+ if h.Left != nil {
+ heightStats(h.Left, d+1, av)
+ }
+ if h.Right != nil {
+ heightStats(h.Right, d+1, av)
+ }
+}