Skip to content

"Parameter" not defined in the current context? #9627

@ArfatSalman

Description

@ArfatSalman

Environment

  • Qiskit Terra version: {'qiskit-terra': '0.23.1', 'qiskit-aer': '0.11.2', 'qiskit-ignis': None, 'qiskit-ibmq-provider': '0.20.0', 'qiskit': '0.41.0', 'qiskit-nature': None, 'qiskit-finance': None, 'qiskit-optimization': None, 'qiskit-machine-learning': None}
  • Python version: Python 3.9.12
  • Operating system: MacOS Ventura 13.1

Code

This doesn't work.

from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister
from qiskit.circuit.library.standard_gates import CUGate, RZGate
from qiskit.circuit import Parameter

p1 = Parameter("p1")

qr = QuantumRegister(4, name="qr")
cr = ClassicalRegister(4, name="cr")
qc = QuantumCircuit(qr, cr, name="qc")

qc.append(
    CUGate(p1, 2.3864521352475245, 5.897054719225356, 0.5112149185250571),
    qargs=[qr[0], qr[2]],
    cargs=[],
)

qc = qc.bind_parameters(
    {
        p1: 0.5112149185250571,
    }
)


from qiskit.qasm3 import dumps

print(dumps(qc))
# KeyError: "'p1' is not defined in the current context"

whereas this works. Not sure if I understand the reason.

from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister
from qiskit.circuit.library.standard_gates import CUGate, RZGate
from qiskit.circuit import Parameter

p1 = Parameter("p1")


qr = QuantumRegister(4, name="qr")
cr = ClassicalRegister(4, name="cr")
qc = QuantumCircuit(qr, cr, name="qc")

qc.append(
    RZGate(p1),
    qargs=[qr[0]],
    cargs=[],
)

qc = qc.bind_parameters(
    {
        p1: 0.5112149185250571,
    }
)


from qiskit.qasm3 import dumps

print(dumps(qc))

# OPENQASM 3;
# include "stdgates.inc";
# bit[4] cr;
# qubit[4] _all_qubits;
# let qr = _all_qubits[0:3];
# rz(0.511214918525057) qr[0];

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions