github.com/gorgonia/agogo@v0.1.1/naughty.go (about) 1 package agogo 2 3 import ( 4 "reflect" 5 "unsafe" 6 ) 7 8 // MakeIterator makes a generic iterator of a board 9 func MakeIterator(board []float32, m, n int) (retVal [][]float32) { 10 retVal = borrowIterator(m, n) 11 for i := range retVal { 12 start := i * int(m) 13 hdr := (*reflect.SliceHeader)(unsafe.Pointer(&retVal[i])) 14 hdr.Data = uintptr(unsafe.Pointer(&board[start])) 15 hdr.Len = int(n) 16 hdr.Cap = int(n) 17 } 18 return 19 }