void BitMatrixSlice::randomize(int row, PRNG& G) { const int block_size = RAND_SIZE / sizeof(bm.squares[0].rows[0]); auto iSquare = bm.squares.begin() + start; for ( ; iSquare < bm.squares.end() - block_size; ) { G.next(); for (int j = 0; j < block_size; j++) (iSquare++)->rows[row] = G.get_doubleword_no_check(); } for ( ; iSquare < bm.squares.end(); iSquare++) iSquare->randomize(row, G); }