procedure dkkinit(var u: ltuple; var v,ve: vector; var vv: vtuple);
var
  i,j: integer;
  te,txe,t1,st: scalar;
  dfu,m: matrix;
  vxe,vt,vt1,vt2: vector;
  vvt: vtuple;
begin { dkkinit }
  write('(dkkinit'); flush(output);
  sabs(u[1],st);
  ismult(4,st);
  st.l:=st.u;
  squot(sone,st,te);
  txe:=te;
  ismult(vdim,txe);
  isdiv(vdim+1,txe);
  squot(rho,u[2],t1);

  vtrans(vdim,rho,u[3],v,vt);
  vscale(u[2],vt,vt1);
  vexp(u[1],vt2);
  vprod(te,t1,vt2,vt1,vvt[0]);

  vsprod(u[0],vt2,ve);
  for i:=vdim downto 1 do vxe[i]:=ve[i-1];
  szero(vxe[0]);
  vprod(txe,t1,vxe,vt1,vvt[1]);

  vder(rho,vt,vt2);
  vscale(u[2],vt2,vt1);
  vprod(txe,t1,vxe,vt1,vvt[2]);
  vprod(te,t1,ve,vt1,vvt[3]);

  for i:=0 to 3 do for j:=0 to 3 do dfu[j,i]:=vvt[i,j];
  minverse(dfu,m);
  vvmtprod(m,vvt,vv);

  write(')'); flush(output);
end { dkkinit };

