procedure vmprod(var m: matrix; var v1,v2: vector);
var
  i,j: integer;
  s0,s1,s2: scalar;
begin { vmprod }
  write('(vmprod'); flush(output);
  v2:=v1;
  for i:=0 to lmax do begin
    szero(s0);
    for j:=0 to lmax do begin
      sprod(m[i,j],v1[j],s1);
      ssum(s0,s1,s2);
      s0:=s2;
    end;
    v2[i]:=s0;
  end;
  write(')'); flush(output);
end { vmprod };

