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
Default Qutrit #2783
Default Qutrit #2783
Conversation
…o qutrit_merge
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work @mudit2812 👌 Mostly questions in my review
Did I miss it or is there a test for the new qutrit unitary operation missing? Or would this fall into a separate PR?
The building of docs also failed when I was checking it, so I did not look at the documentation yet.
I think I've accidentally merged changes from a different branch into this PR. I'm going to push a new commit with reverted changes for all files that shouldn't be here. |
Should be good for review again :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry I completely missed the whole file test_default_qutrit.py
in my first review as it was not automatically expanded in the files changed
tab. I am bit confused what is going on here with include_verses_with_test_data
function and the fixtures allowing to use qutrit_device_1_wire
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work @mudit2812! 🎉 👏
No real blockers, would just like to make another pass once the comments have been addressed.
Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: antalszava <antalszava@gmail.com>
…into qutrit_device
I think all comments have been addressed. Assuming all checks pass, let me know if any other changes are needed 😄 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good 🙂 🎉
One thing: it would be great to have the ADR explicitly reflect the decisions made in the PR w.r.t. the device class organization.
Context:
There are very few simulators available today that offer qudit simulation. One notable example is Google's Cirq, which includes support for qudit operations. However, the simulator is far from complete, and a key drawback is the lack of operations available, which creates a need for users to define operations themselves. Popular libraries such as Qiskit and QuTiP also include some qudit manipulation capabilities, but with few use cases. Beyond these libraries, qudit simulation solutions are quite limited. Moreover, qudit simulation is a feature that is already in demand, as seen in this issue on the PennyLane repository.
This PR adds a
default.qutrit
plugin to PennyLane to support pure state simulation of qutrits.Description of the Change:
default.qutrit
plugin to PennyLane to support pure state simulation of qutrits. The device currently supports the operationqml.QutritUnitary
and measurementsqml.probs()
andqml.state()
.Benefits:
Possible Drawbacks:
Related GitHub Issues:
#2190