GTorlai / PastaQ.jl

Package for Simulation, Tomography and Analysis of Quantum Computers
Apache License 2.0
142 stars 23 forks source link

Trivial states and bit/phase flip noise #191

Closed GTorlai closed 3 years ago

mtfishman commented 3 years ago

Just a few small comments.

I think the bigger question for me is about what the defaults should be, and making the trivialstate/trivialprocess interface consistent with the randomstate/randomprocess interface. For the sake of consistency, I think in the mixed = true case they should both default to either outputting MPO or LPDO. MPO may be nicer since they are easier to work with, however LPDO is a more efficient representation (especially for trivial states/processes, since the Krauss dimension is 1). Over all I would lean towards defaulting to output an LPDO in both cases, particularly because it is easier to convert from LPDO to MPO and we can always try to make more functions work with LPDO (even if it means just converting to MPO internally).

Also, in the mixed = true case, I think this is a good place to actually not put the Krauss dimensions at all in the LPDO, since they aren't needed. However, then the question is if trivialstate/trivialprocess with mixed = true should output an LPDO{MPS} or an LPDO{MPO}. To me it makes sense to output LPDO{MPS}, which gets interpreted as a "lazy" outer product of two MPS.