function [R22] = M22(ZT,RT,P,Q,eq,n);
       
% we calculate:  right-down block
% R22 = G(VT*inv(Z)*VT'*Gt_{P,Q}(*)*VT*R*VT')_{P,Q};   
% 28.11.'01 rsotirov
% call: [R22] = M22(ZT,RT,P,Q,eq,n);


ZBtR = [];
for k = 1:eq,
  j = P(k);   % row
  i = Q(k);   % column
  % simetrized Bt and finally simetrized B: ( i ...  coulumn; j ... row )  
  k=sub2ind([n^2+1,n^2+1],P,Q);
  zu1 =  (ZT(:,i)*(RT(:,j))' + RT(:,i)*(ZT(:,j))')/2  ;
  zu1 = zu1(k);
  zu2 =  (ZT(:,j)*(RT(:,i))' + RT(:,j)*(ZT(:,i))')/2  ;
  zu2 = zu2(k);
  zbtr2=zu1+zu2;
  zbtr2 = (zbtr2+zbtr2')/4;
  zbtr2=zbtr2(k);
  zl1 = ( ZT(P,i).*(RT(j,Q))' + ZT(Q,j).*(RT(i,P))' )/2;
  zl2 = ( ZT(P,j).*(RT(Q,i)) + ZT(Q,i).*(RT(P,j)) )/2;
   temp=( ZT(Q,j).*(RT(i,P))' + ZT(Q,i).*(RT(j,P))' )/2 ;
  zbtr = (( ZT(P,j).*(RT(i,Q))' + ZT(P,i).*(RT(j,Q))' )/2 ...
	           +( ZT(Q,j).*(RT(i,P))' + ZT(Q,i).*(RT(j,P))' )/2 )/2;
%%original in next two lines
  %zbtr = (( ZT(P,j).*(RT(i,Q))' + ZT(P,i).*(RT(j,Q))' )/2 ...
%	           +( ZT(Q,j).*(RT(i,P))' + ZT(Q,i).*(RT(j,P))' )/2 )/2;
 
  ZBtR = [ZBtR,zbtr];
'in m22'
keyboard
end;



R22 = ZBtR;

% for checking:
%rez = [];
%for j = 1:eq,
%    ej=zeros(eq,1); ej(j)=1;
%    [GTt] = GT(ej,P,Q,eq,n);
%    pom = ZT*GTt*RT;
%    [Gpom] = G(pom,P,Q,eq,n);
%    rez = [rez,Gpom];
%end;
%norm(rez - R22)
