diff --git a/qiskit/circuit/library/data_preparation/state_preparation.py b/qiskit/circuit/library/data_preparation/state_preparation.py index 26c37334cfe4..df69f9eab8c5 100644 --- a/qiskit/circuit/library/data_preparation/state_preparation.py +++ b/qiskit/circuit/library/data_preparation/state_preparation.py @@ -173,7 +173,7 @@ def _define_synthesis_isom(self): q = QuantumRegister(self.num_qubits, "q") initialize_circuit = QuantumCircuit(q, name="init_def") - isom = Isometry(self._params_arg, 0, 0) + isom = Isometry(self.params, 0, 0) initialize_circuit.append(isom, q[:]) # invert the circuit to create the desired vector from zero (assuming diff --git a/releasenotes/notes/fix-stateprep-normalize-a8057c339ba619bd.yaml b/releasenotes/notes/fix-stateprep-normalize-a8057c339ba619bd.yaml new file mode 100644 index 000000000000..0175f8c1c026 --- /dev/null +++ b/releasenotes/notes/fix-stateprep-normalize-a8057c339ba619bd.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixed a bug in :class:`.StatePreparation` where the ``normalize`` + argument was ignored for input arrays. + Fixed `#12984 `__. diff --git a/test/python/circuit/library/test_state_preparation.py b/test/python/circuit/library/test_state_preparation.py index adad848a2777..b5446ed37e9c 100644 --- a/test/python/circuit/library/test_state_preparation.py +++ b/test/python/circuit/library/test_state_preparation.py @@ -113,6 +113,16 @@ def test_repeats(self): qc.append(StatePreparation("01").repeat(2), [0, 1]) self.assertEqual(qc.decompose().count_ops()["state_preparation"], 2) + def test_normalize(self): + """Test the normalization. + + Regression test of #12984. + """ + qc = QuantumCircuit(1) + qc.compose(StatePreparation([1, 1], normalize=True), range(1), inplace=True) + + self.assertTrue(Statevector(qc).equiv(np.array([1, 1]) / np.sqrt(2))) + if __name__ == "__main__": unittest.main()