unitaryfund / mitiq

Mitiq is an open source toolkit for implementing error mitigation techniques on most current intermediate-scale quantum computers.
https://mitiq.readthedocs.io
GNU General Public License v3.0
363 stars 160 forks source link

Unify structure of executor functions in mitiq_[frontend] for all frontends #1434

Open andreamari opened 2 years ago

andreamari commented 2 years ago

We currently have many versions of executor functions in mitiq/interface/mitiq_<frontend> for frontend in [cirq, qiskit, etc...] . Some of them have been coded years ago, some of them are more recent.

We should probably deprecate most of them in favor of 2 or 3 types of executors. For example, good executors that we should keep if present and add for all frontends are:

Probably we should deprecate all executors taking a matrix observable of type np.array. If they are necessary for tests, they can be moved to test files.

natestemen commented 2 years ago

Took a look at this today to see where we're at. Looks like a slightly larger chunk of work than I expected if we want all of these interfaces to have a unified API (which I think is a great idea). Here's the current state of things:

sample_bitstrings compute_density_matrix
braket
cirq
pennylane
pyquil
qiskit

Hence we will need to implement all of the ❌ spots.