-
Notifications
You must be signed in to change notification settings - Fork 4
/
utils.go
41 lines (35 loc) · 880 Bytes
/
utils.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package wann
import (
"sort"
)
// Pair is used for sorting dictionaries by value.
// Thanks https://stackoverflow.com/a/18695740/131264
type Pair struct {
Key int
Value float64
}
// PairList is a slice of Pair
type PairList []Pair
func (p PairList) Len() int { return len(p) }
func (p PairList) Less(i, j int) bool { return p[i].Value < p[j].Value }
func (p PairList) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
// SortByValue sorts a map[int]float64 by value
func SortByValue(m map[int]float64) PairList {
pl := make(PairList, len(m))
i := 0
for k, v := range m {
pl[i] = Pair{k, v}
i++
}
sort.Sort(sort.Reverse(pl))
return pl
}
// In returns true if this NeuronIndex is in the given *[]NeuronIndex slice
func (ni NeuronIndex) In(nodes *[]NeuronIndex) bool {
for _, ni2 := range *nodes {
if ni2 == ni {
return true
}
}
return false
}