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.
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
BackendEstimatorV2class as well asBackendSamplerV2class(https://github.com/Qiskit/qiskit-cpp/blob/main/src/primitives/backend_sampler_v2.hpp)
and implementing
estimator.run()function that will accept anEstimatorPubclass as well asSamplerPub(https://github.com/Qiskit/qiskit-cpp/blob/main/src/primitives/containers/sampler_pub.hpp)An
EstimatorPubwill have ISA circuit and observables (see https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/estimator-v2)estimator.run()function will returnBackendEstimatorJobclass as well asBackendSamplerJobclass (https://github.com/Qiskit/qiskit-cpp/blob/main/src/primitives/backend_sampler_job.hpp) containing estimation values.[added 9 June]
Using
SparseObservableclass for input pubs.Implement
Backend::runfunction that acceptsstd::vector<EstimatorPub>(at least for QRMI backend) to run asestimatorprogram id.