Skip to content

Implementing estimator interface #145

Description

@doichanj

What should we add?

Qiskit C++ currently only has sampler interface to run circuit to get sampling bitstrings. Estimator interface is also demanding to get estimation on Pauli strings.

Implementing a BackendEstimatorV2 class as well as BackendSamplerV2 class
(https://github.com/Qiskit/qiskit-cpp/blob/main/src/primitives/backend_sampler_v2.hpp)
and implementing estimator.run() function that will accept an EstimatorPub class as well as SamplerPub (https://github.com/Qiskit/qiskit-cpp/blob/main/src/primitives/containers/sampler_pub.hpp)
An EstimatorPub will have ISA circuit and observables (see https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/estimator-v2)

estimator.run() function will return BackendEstimatorJob class as well as BackendSamplerJob class (https://github.com/Qiskit/qiskit-cpp/blob/main/src/primitives/backend_sampler_job.hpp) containing estimation values.

[added 9 June]
Using SparseObservable class for input pubs.

Implement Backend::run function that accepts std::vector<EstimatorPub> (at least for QRMI backend) to run as estimator program id.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions