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