function [R21] = M21(ZT,RT,P,Q,eq,n);
  
% M21 = G(VT*inv(Z)*VT'*Arrow(*)*VT*R*VT')_{P,Q};  (for each unit vector!)
% (P;Q) ... gangster indices  
% we calculate:  left-down block of the big matrix
% 15.01.'02,  rsotirov, klagenfurt
% call: [R21] = M21(ZT,RT,P,Q,ineq,n);


% FIRST VERSION 
%pom =[];  
%for j = 1 : n*n+1,
%  [ZAR] = ZArrowR(ZT,RT,n,j);
%  [GZARj] = G(ZAR,P,Q,eq,n);
%  pom = [pom, GZARj];  
%end;
%R21 =  pom;

%%%%%%%%%%%%%%%%%%%%%%%%
% SECOND  VERSION   
%for  j = 0;
rez = ( ZT(P,1).*(RT(1,Q))' + ZT(Q,1).*(RT(1,P))' )/2;
BZAwR = rez;

% for the rest
for  j = 2:n*n+1;

ZAwR = ( ZT(P,j).*(RT(j,Q))' - ( ZT(P,1).*(RT(j,Q))'+ZT(P,j).*(RT(1,Q))')/2 ...
  + ZT(Q,j).*(RT(j,P))' - ( ZT(Q,1).* (RT(j,P))'+  ZT(Q,j).*(RT(1,P))')/2  )/2;

BZAwR = [BZAwR,ZAwR];  % to put all vectors together
end;

R21 = BZAwR; 
%norm(R211 - R21) 

%%%%%%%%%%%%%%%%%%%%%%

% THIRD  VERSION   
%pom1 = [];
%cnt = 2:n*n+1;
%for i = 1 : eq,
%  ej = zeros(eq); ej(i)=1;
%  [GTt] = GT(ej,P,Q,eq,n);
%  joj = ZT*GTt*RT;
%  arrow = diag(joj) - [0; (joj(cnt,1) + joj(1,cnt)')/2];
%  pom1 = [pom1, arrow];  
%end;
%R2111 =  pom1';
%norm(R211 - R2111)

% all three versions are ok!