procedure vpowers(var s: scalar; var v: vector);
var
  i,i2,n: integer;
begin { vpowers }
  v[0]:=sone;
  v[1]:=s;
  i2:=1;
  repeat
    i:=i2;
    i2:=min(2*i,vdim);
    for n:=i+1 to i2 do sprod(v[n-i],v[i],v[n]);
  until i2=vdim;
end { vpowers };

