lyra2.go
func reducedSqueezeRow0(state []uint64, rowOut []uint64, nCols int) {
	ptr := (nCols - 1) * blockLenInt64
	//M[row][C-1-col] = H.reduced_squeeze()
	for i := 0; i < nCols; i++ {
		ptrWord := rowOut[ptr:] //In Lyra2: pointer to M[0][C-1]
		ptrWord[0] = state[0]
		ptrWord[1] = state[1]
		ptrWord[2] = state[2]
		ptrWord[3] = state[3]
		ptrWord[4] = state[4]
		ptrWord[5] = state[5]
		ptrWord[6] = state[6]
		ptrWord[7] = state[7]
		ptrWord[8] = state[8]
		ptrWord[9] = state[9]
		ptrWord[10] = state[10]
		ptrWord[11] = state[11]

		//Goes to next block (column) that will receive the squeezed data
		ptr -= blockLenInt64

		//Applies the reduced-round transformation f to the sponge's state
		reducedBlake2bLyra(state)
	}
}
func reducedSqueezeRow0(state []uint64, rowOut []uint64, nCols int) {
	ptr := (nCols - 1) * blockLenInt64
	//M[row][C-1-col] = H.reduced_squeeze()
	for i := 0; i < nCols; i++ {
		ptrWord := rowOut[ptr:] //In Lyra2: pointer to M[0][C-1]
		ptrWord[0] = state[0]
		ptrWord[1] = state[1]
		ptrWord[2] = state[2]
		ptrWord[3] = state[3]
		ptrWord[4] = state[4]
		ptrWord[5] = state[5]
		ptrWord[6] = state[6]
		ptrWord[7] = state[7]
		ptrWord[8] = state[8]
		ptrWord[9] = state[9]
		ptrWord[10] = state[10]
		ptrWord[11] = state[11]

		//Goes to next block (column) that will receive the squeezed data
		ptr -= blockLenInt64

		//Applies the reduced-round transformation f to the sponge's state
		reducedBlake2bLyra(state)
	}
}
/**
 * reducedSqueezeRow0 erforms a reduced squeeze operation for a single row, from the highest to
 * the lowest index, using the reduced-round Blake2b's G function as the
 * internal permutation
 *
 * @param state     The current state of the sponge
 * @param rowOut    Row to receive the data squeezed
 */