Computing Logarithmic Negativity with an MPO

Hi,

I would like to compute the logarithmic negativity of a density represented in ITensors by an MPO.

LN(\rho) = \log_2 ||\rho_{AB}^{T_B}||_1

Where ||. ||_1 is the trace norm and \rho_{AB}^{T_B} is the partial transpose of the density matrix. Any tips on how I can implement this efficiently where the density is represented by an MPO?

I am familiar with how to compute the partial transpose:

function partial_transpose(A::MPO, sites)
    A = copy(A)
    for n in sites
        A[n] = swapinds(A[n], siteinds(A, n)...)
    end
    return A
end

However, I’m not sure of an efficient way to compute the trace norm.

Thank you!
Roman

2 Likes