Suppose op is a LazyTensor whose basis is a CompositeBasis with just one site. Then the basis of dense(op) is not the same as the basis of op. Specifically the basis of dense(op) is a single-site non composite basis (e.g., NLevel(N=10) instead of [NLevel(N=10)]). This then causes an "incompatible basis" error in a more complex implementation of dense where it sums over many "densified" operators.
It looks like this is ultimately due to the implementation of the embed method here https://github.com/qojulia/QuantumInterface.jl/blob/main/src/embed_permute.jl#L55 and how the function tensor works for a single-site operator https://github.com/qojulia/QuantumInterface.jl/blob/main/src/tensor.jl#L7C1-L7C7.
Would it be possible to fix these methods so that the basis is preserved under operations like embed and dense?
Suppose
opis a LazyTensor whose basis is a CompositeBasis with just one site. Then the basis ofdense(op)is not the same as the basis ofop. Specifically the basis ofdense(op)is a single-site non composite basis (e.g.,NLevel(N=10)instead of[NLevel(N=10)]). This then causes an "incompatible basis" error in a more complex implementation ofdensewhere it sums over many "densified" operators.It looks like this is ultimately due to the implementation of the
embedmethod here https://github.com/qojulia/QuantumInterface.jl/blob/main/src/embed_permute.jl#L55 and how the functiontensorworks for a single-site operator https://github.com/qojulia/QuantumInterface.jl/blob/main/src/tensor.jl#L7C1-L7C7.Would it be possible to fix these methods so that the basis is preserved under operations like
embedanddense?