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  }