shiftm2 := proc(A,i,j,mstart,mmod,B,l,dir1) read(mergeshift): for k from 0 to mmod-1 do if(k = 0 and dir1 = -1) then mergeshift(i,4*mmod - ((k+mstart mod mmod)*4+1 mod 4*mmod),j,4*mmod,B,l+k*4*mmod,-1,A,4*mmod): else mergeshift(i,1 - ((k+mstart mod mmod)*4 mod 4*mmod),j,2,B,l+k*4*mmod,1,A,4*mmod): fi od: end;