procedure vconv(d2: integer; var c: scalar; var vk,v1,v2: vector);
var
  i: integer;
  sf,st1,st2: scalar;  
  vc: vector;

begin { vconv }
  write('(vconv'); flush(output);
  vc[0]:=sone;
  for i:=1 to vdim do begin             { vc[i]=(c^i)/(i!)  }
    sprod(c,vc[i-1],vc[i]);
    isdiv(i,vc[i]);
  end;
  pconv(d2,vc,v1,v2);                        { poly -> poly }

  sf:=v1[vdim];
  if not seq0(sf) then begin                   { ho -> poly }
    for i:=0 to d2 do begin
      sprod(sf,vk[i],st1);
      ssum(st1,v2[i],st2);
      v2[i]:=st2;
    end;
  end;  
  write(')'); flush(output);
end { vconv };

