-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Open
Labels
Description
Environment
- Qiskit version: 2.1
- Python version:
- Operating system:
What is happening?
Need to improve the tolerance of the cosine-sine decomposition in cos_sin_decomp.rs, which is used in the Quantum Shannon Decomposition (QSD).
As QSD is using the cosine-sine recursively, the tolerance errors are getting accumulated, especially when handling multi-controlled unitary operators, see the discussion in #13688, so in certain cases we should use the Isometry
synthesis which requires more CX gates.
The current code for the cosine-sine decomposition is based on rust nalgebra SVD function.
How can we reproduce the issue?
see the discussion in #13688, call:
Operator(qsd.qs_decomposition(mat))
for certain matrices gives a matrix way different than the original mat
What should happen?
Operator(qsd.qs_decomposition(mat))
should give back mat
up to a reasonable tolerance level
Any suggestions?
No response