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  }