These two functions are declared here but used only in QuantumClifford (where historically they come from).
In principle, they can have general API, but the QuantumClifford implementation does not conform to a nice general API.
One of the two needs to happen:
- a very breaking release to QuantumClifford so that it can have
project! and projectrand! which follow an API that would make sense for QuantumOptics and others
- removing
project! and projectrand! from here and leaving them only in QuantumClifford
Choices here need to also be kept consistent with project_traceout! which is used a bit more.
These two functions are declared here but used only in QuantumClifford (where historically they come from).
In principle, they can have general API, but the QuantumClifford implementation does not conform to a nice general API.
One of the two needs to happen:
project!andprojectrand!which follow an API that would make sense for QuantumOptics and othersproject!andprojectrand!from here and leaving them only inQuantumCliffordChoices here need to also be kept consistent with
project_traceout!which is used a bit more.