I just saw your email. Of course we can do that.
Example (in MATLAB):
% --------------------------------------------- n=3; a=2+3j; b=4-3j;
A=a*eye(n); B=b*eye(n); n2=2*n; X=zeros(n2); X(1:n,1:n)=A; X(n+1:n2,n+1:n2)=B; [U,T]=Grigoryan_code(X); U'*T % = X
% --------------------------- end of code U =
0.5547 - 0.8321i 0 0 0 0 0
0 0.5547 - 0.8321i 0 0 0 0
0 0 0.5547 - 0.8321i 0 0 0
0 0 0 0.8000 + 0.6000i 0 0
0 0 0 0 0.8000 + 0.6000i 0
0 0 0 0 0 1.0000
T =
3.6056 0 0 0 0 0
0 3.6056 0 0 0 0
0 0 3.6056 0 0 0
0 0 0 5.0000 0 0
0 0 0 0 5.0000 0
0 0 0 0 0 4.0000 - 3.0000i
ans =
2.0000 + 3.0000i 0 0 0 0 0
0 2.0000 + 3.0000i 0 0 0 0
0 0 2.0000 + 3.0000i 0 0 0
0 0 0 4.0000 - 3.0000i 0 0
0 0 0 0 4.0000 - 3.0000i 0
0 0 0 0 0 4.0000 - 3.0000i
You can check it. It works.
Art Grigoryan UTSA