Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to sample a random_clifford unitary? #313

Open
Mi-Peng opened this issue Nov 12, 2024 · 1 comment
Open

How to sample a random_clifford unitary? #313

Mi-Peng opened this issue Nov 12, 2024 · 1 comment

Comments

@Mi-Peng
Copy link

Mi-Peng commented Nov 12, 2024

I'm trying to sample a unitary from the random_clifford set. I'm sure I can use the qiskit.quantum_info.random_clifford() in qiskit. However, I can not find a similar API in PastaQ. How should I sample a random clifford unitary?

@mtfishman
Copy link
Collaborator

mtfishman commented Nov 13, 2024

I don't think it is practical for this package or other ITensor packages like ITensorMPS.jl to provide a complete suite of circuit generators, especially given that there are other libraries that provide that functionality.

If you output the circuit from Qiskit in the OpenQASM format, you could use a package like Quasar.jl to parse the circuit in Julia and then convert it to the circuit format used by ITensorMPS.jl/PastaQ.jl. It would be a good project for someone (maybe us if we have the time, but no promises on a timeline for that) to convert OpenQASM circuits, perhaps loaded with Quasar.jl into Julia, to the ITensorMPS.jl/PastaQ.jl circuit format.

Another option would be to see if Yao.jl provides a function for generating that circuit, and if it does you could convert the circuit with YaoPastaQ.jl to the ITensorMPS.jl/PastaQ.jl circuit format, if you are looking to use the circuit in an MPS/MPO simulation.

Finally, this package itself has become difficult to maintain given our limited developer resources and focus on ITensor packages like ITensorMPS.jl and ITensorNetworks.jl that provide the same, or more general, circuit simulation functionality but are more aligned with our broader development plans of ITensor. So I would recommend using ITensorMPS.jl directly for MPS/MPO circuit simulation, which is better maintained. Having said that, my comments above about how to generate the circuit with another library and convert it for use in ITensorMPS.jl still hold. Though probably we should update the package YaoPastaQ.jl that I mentioned above to be based directly off of ITensorMPS.jl, i.e. create a new package YaoITensorMPS.jl.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants