>>> A = mat('[1 3 2; 1 4 5; 2 3 6]')
>>> T,Z = linalg.schur(A)
>>> T1,Z1 = linalg.schur(A,'complex')
>>> T2,Z2 = linalg.rsf2csf(T,Z)
>>> print T
Matrix([[ 9.9001, 1.7895, -0.655 ],
[ 0. , 0.5499, -1.5775],
[ 0. , 0.5126, 0.5499]])
>>> print T2
Matrix([[ 9.9001+0.j , -0.3244+1.5546j, -0.8862+0.569j ],
[ 0. +0.j , 0.5499+0.8993j, 1.0649-0.j ],
[ 0. +0.j , 0. +0.j , 0.5499-0.8993j]])
>>> print abs(T1-T2) # different
[[ 0. 2.1184 0.1949]
[ 0. 0. 1.2676]
[ 0. 0. 0. ]]
>>> print abs(Z1-Z2) # different
[[ 0.0683 1.1175 0.1973]
[ 0.1186 0.5644 0.247 ]
[ 0.1262 0.7645 0.1916]]
>>> T,Z,T1,Z1,T2,Z2 = map(mat,(T,Z,T1,Z1,T2,Z2))
>>> print abs(A-Z*T*Z.H)
Matrix([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> print abs(A-Z1*T1*Z1.H)
Matrix([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> print abs(A-Z2*T2*Z2.H)
Matrix([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])