-
Notifications
You must be signed in to change notification settings - Fork 615
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
[labs.dla 5] All Cartan involutions + Cartan subalgebra #6396
Conversation
Hello. You may have forgotten to update the changelog!
|
…into structure_constants_dense
Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>
…nnylane into lie_closure_dense
…into structure_constants_dense
Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>
…aneAI/pennylane into structure_constants_dense
@dwierichs feel free to push suggestions straight away 👍 |
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.
Nice! My outputs for the cartan_subalgebra
section look a little different (some plus and minus signs). If you could double-check that would be great
Co-authored-by: Pietropaolo Frisoni <pietropaolo.frisoni@xanadu.ai>
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.
Happy to see this conclude! 💯
Amazing job pulling this one through!
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.
🥇
Providing dense implementations for all Cartan involutions listed in appendix C of https://arxiv.org/abs/2406.04418 Adds * `recursive_cartan_decomp` function for recursive cartan decompositions with the appropriate basis changes in between * All canonical Cartan involutions working both with dense and operator representations * `cartan_subalgebra` function to compute the Cartan subalgebra (CSA), i.e. the maximal Abelian subalgebra of $\mathfrak{m}$ using the adjoint representation * misc. helper functions Iterative Cartan decomposition: ```python from pennylane.labs.dla import AI, AII, AIII, BDI, CI, CII, DIII, cartan_decomposition, check_cartan_decomp g = list(qml.pauli.pauli_group(3)) # su(8) g = [qml.matrix(_, wire_order=range(3)) for _ in g] k0, m0 = cartan_decomposition(g, AII) print(f"First iteration: {len(k0)}, {len(m0)}") assert check_cartan_decomp(k0, m0) k1, m1 = cartan_decomposition(k0, CI) assert check_cartan_decomp(k1, m1) print(f"Second iteration: {len(k1)}, {len(m1)}") ``` ```pycon First iteration: 36, 28 Second iteration: 16, 20 ``` [sc-76116] --------- Co-authored-by: David Wierichs <david.wierichs@xanadu.ai> Co-authored-by: Pietropaolo Frisoni <pietropaolo.frisoni@xanadu.ai>
Providing dense implementations for all Cartan involutions listed in appendix C of https://arxiv.org/abs/2406.04418
Adds
recursive_cartan_decomp
function for recursive cartan decompositions with the appropriate basis changes in betweencartan_subalgebra
function to compute the Cartan subalgebra (CSA), i.e. the maximal Abelian subalgebra ofIterative Cartan decomposition:
[sc-76116]