•ZPL’s permute operation allows data to be moved around
arbitrarily
•Old syntax New syntax
• A:=<##[I1, I2] B; A:=B#[I1,I2]; Gather
• A:=>##[I1, I2] B; A#[I1,I2]:=B; Scatter
•The lists in brackets
are arrays of indices s.t. the i,jth element comes from /goes to I1[i,j],I2[i,j]
•Referring to the new
syntax, the intuitive idea is that the simple array is enumerated, and
the #-array is referenced from the given
indices