For pairs from two separate halves, yes. For all pairs like you have, it just makes it harder to read. If you need to update both at once then split_at_mut, or swap to computing a list of deltas in one pass and applying them in a second. The second is often what you want for a simulation anyway, otherwise particle 0 moves before particle 1 has looked at it.