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

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions