code 36404;
procedure VECPERM(PERM,LOW,UPP,VECTOR);value LOW,UPP;
integer LOW,UPP;integer array PERM;real array VECTOR;
begin integer T,J,K;real A;boolean array TODO[LOW:UPP];
for T:=LOW step 1 until UPP do TODO[T]:=true;
for T:=LOW step 1 until UPP do
begin if TODO[T] then
begin K:=T;A:=VECTOR[K];
for J:=PERM[K] while J^=T do
begin VECTOR[K]:=VECTOR[J];TODO[K]:=false;K:=J
end;VECTOR[K]:=A;TODO[K]:=false
end CYCLE;
end FOR T;
end VECPERM;
eop