go-ml.dev/pkg/base@v0.0.0-20200610162856-60c38abac71b/fu/index.go (about) 1 package fu 2 3 import ( 4 "math/rand" 5 "reflect" 6 "unsafe" 7 ) 8 9 func Index(i int, p interface{}) unsafe.Pointer { 10 pv := reflect.ValueOf(p) 11 of := pv.Elem().Type().Size() * uintptr(i) 12 return unsafe.Pointer(pv.Pointer() + of) 13 } 14 15 func RandomIndex(ln, seed int) []int { 16 return rand.New(rand.NewSource(int64(seed))).Perm(ln) 17 }