@@ -60,21 +60,24 @@ def estimate_observables(
6060 else :
6161 observables_list = observables
6262
63- observables_list = _handle_zero_ops (observables_list )
64- quantum_state = [quantum_state ] * len (observables )
65- if parameter_values is not None :
66- parameter_values = [parameter_values ] * len (observables )
67- try :
68- estimator_job = estimator .run (quantum_state , observables_list , parameter_values )
69- expectation_values = estimator_job .result ().values
70- except Exception as exc :
71- raise AlgorithmError ("The primitive job failed!" ) from exc
72-
73- metadata = estimator_job .result ().metadata
74- # Discard values below threshold
75- observables_means = expectation_values * (np .abs (expectation_values ) > threshold )
76- # zip means and metadata into tuples
77- observables_results = list (zip (observables_means , metadata ))
63+ if len (observables_list ) > 0 :
64+ observables_list = _handle_zero_ops (observables_list )
65+ quantum_state = [quantum_state ] * len (observables )
66+ if parameter_values is not None :
67+ parameter_values = [parameter_values ] * len (observables )
68+ try :
69+ estimator_job = estimator .run (quantum_state , observables_list , parameter_values )
70+ expectation_values = estimator_job .result ().values
71+ except Exception as exc :
72+ raise AlgorithmError ("The primitive job failed!" ) from exc
73+
74+ metadata = estimator_job .result ().metadata
75+ # Discard values below threshold
76+ observables_means = expectation_values * (np .abs (expectation_values ) > threshold )
77+ # zip means and metadata into tuples
78+ observables_results = list (zip (observables_means , metadata ))
79+ else :
80+ observables_results = []
7881
7982 return _prepare_result (observables_results , observables )
8083
0 commit comments