function [R11] =  M11(ZT,RT,n);
 
% we calculate:  left block column
% tested: 17.01.2001
% call: [R11] = M11(ZT,RT,n);


r = zeros(n*n+1);                  % first part
joj = 2 : n*n+1;
for j = 1 : n*n +1
   r(joj,j) = ZT(1,j)*RT(joj,j) + ZT(joj,j)* RT(1,j);
end;


R11 =  ZT.* RT -  r/2;              % second part (calculate part without 1/2)

for j = 2 : n*n+1
            R11(:,j) = R11(:,j) - (ZT(:,1).* RT(:,j) + ZT(:,j).* RT(:,1))/2;
end;                             

%for j = 2 : n*n+1
% R11(:,j) = R11(:,j) - (ZT(:,1).* RT(:,j) + ZT(:,j).* RT(:,1))/2 + ([0; ...
%		    ZT(1,1)*RT(joj,j)] + [0;RT(1,j)*ZT(joj,1) ]+[0; ...
%		    ZT(1,j)*RT(joj,1)]  + [0; RT(1,1)*ZT(joj,j)])/4;
%end;               % try to improve this part!


% ovo je poboljsanje gornjeg!
%r1 = zeros(n*n+1);
%joj = 2:n*n+1;
%for j = 2 : n*n +1
%   r1(joj,j) = (ZT(1,1)*RT(joj,j) + RT(1,j)*ZT(joj,1) + ZT(1,j)*RT(joj,1) + RT(1,1)*ZT(joj,j))/4;
%end;                        % here we add part with 1/2

% ovo je poboljsanje (ubrzanje) prethodnog
r1 = zeros(n*n+1);
zt11 = ZT(1,1);
rt11 = RT(1,1);
ztjoj1 = ZT(joj,1);
rtjoj1 = RT(joj,1);
joj = 2:n*n+1;
for j = 2 : n*n +1
   r1(joj,j) = (zt11*RT(joj,j) + RT(1,j)*ztjoj1 + ZT(1,j)*rtjoj1 + rt11*ZT(joj,j))/4;
end;                        % here we add part with 1/2


R11 = R11 + r1;            % finally



% testing  ZT*Arrow*RT (! works !)

%% for  j = 0;
%ZAR = ZT(:,1)*RT(1,:);

%% for  j = 1,2,....;
%ZAR =  ZT(:,j)*RT(j,:) - (ZT(:,1)*RT(j,:)+ZT(:,j)*RT(1,:))/2;


% THIS WORKS!

% pom = 2:n*n+1;
% arrow = [];
% for  i = 1 : n*n+1,
%     w = zeros(10,1); w(i,1)=1;
%     Arrow = [w(1,1), - w(pom,1)'/2; - w(pom,1)/2, diag(w(pom,1)) ];
%     zar = ZT*Arrow*RT;
%     arrow1 = diag(zar) - [0; (zar(pom,1) + zar(1,pom)')/2];
%     arrow = [arrow,arrow1];
%     disp(arrow);
%     pause;
% end;
   