I’m trying to compute the complex conjugate transpose of a vectorized MPO where the 2 physical legs are fused. For example, I have an MPS rho0
rho0 =
ITensor ord=2: (dim=4|id=79|"n=1,Site,Boson") (dim=1|id=297|"l=1,Link")
{norm=0.56 (Dense Cplx)}
(2,1) 0.000000+0.250000i
(3,1) 0.000000+0.500000i
ITensor ord=3: (dim=1|id=297|"l=1,Link") (dim=4|id=828|"n=2,Site,Boson") (dim=1|id=749|"l=2,Link")
{norm=0.56 (Dense Cplx)}
(1,2,1) 0.000000+0.250000i
(1,3,1) 0.000000+0.500000i
ITensor ord=2: (dim=1|id=749|"l=2,Link") (dim=4|id=908|"n=3,Site,Boson")
{norm=0.56 (Dense Cplx)}
(1,2) 0.000000+0.250000i
(1,3) 0.000000+0.500000i
I think its complex conjugate transpose should be
rho0DAG =
ITensor ord=2: (dim=4|id=79|"n=1,Site,Boson") (dim=1|id=297|"l=1,Link")
{norm=0.56 (Dense Cplx)}
(2,1) 0.000000-0.500000i
(3,1) 0.000000-0.250000i
ITensor ord=3: (dim=1|id=297|"l=1,Link")(dim=4|id=828|"n=2,Site,Boson") (dim=1|id=749|"l=2,Link")
{norm=0.56 (Dense Cplx)}
(1,2,1) 0.000000-0.500000i
(1,3,1) 0.000000-0.250000i
ITensor ord=2: (dim=1|id=749|"l=2,Link") (dim=4|id=908|"n=3,Site,Boson")
{norm=0.56 (Dense Cplx)}
(1,2) 0.000000-0.500000i
(1,3) 0.000000-0.250000i
However, I only know how to take the complex conjugate with dag
but not tranpose the legs. My questions are
- Is
rho0DAG
the complex conjugate tranpose ofrho0
? - How to create
rho0DAG
with ITensor in C++?