stepAll

Compute one Euler step for every agent in agents without applying any of them — a Jacobi (synchronous) update. Every step reads the current shared state, so the result is independent of the order of agents, unlike calling step and applying per agent in a loop (a Gauss-Seidel update that depends on iteration order). The caller applies the returned triples.

Throws

if dt is non-positive