# MCXGrayCode

*class *`MCXGrayCode(num_ctrl_qubits, label=None, ctrl_state=None)`

Bases: `qiskit.circuit.library.standard_gates.x.MCXGate`

Implement the multi-controlled X gate using the Gray code.

This delegates the implementation to the MCU1 gate, since $X = H \cdot U1(\pi) \cdot H$.

Create new MCX gate.

## Methods Defined Here

### inverse

`MCXGrayCode.inverse()`

Invert this gate. The MCX is its own inverse.

## Attributes

### condition_bits

### ctrl_state

Return the control state of the gate as a decimal integer.

**Return type**

`int`

### decompositions

Get the decompositions of the instruction from the SessionEquivalenceLibrary.

### definition

Return definition in terms of other basic gates. If the gate has open controls, as determined from self.ctrl_state, the returned definition is conjugated with X without changing the internal _definition.

**Return type**

`List`

### duration

Get the duration.

### label

Return instruction label

**Return type**

`str`

### name

Get name of gate. If the gate has open controls the gate name will become:

<original_name_o<ctrl_state>

where <original_name> is the gate name for the default case of closed control qubits and <ctrl_state> is the integer value of the control state for the gate.

**Return type**

`str`

### num_ancilla_qubits

The number of ancilla qubits.

### num_clbits

Return the number of clbits.

### num_ctrl_qubits

Get number of control qubits.

**Returns**

The number of control qubits for the gate.

**Return type**

int

### num_qubits

Return the number of qubits.

### params

Get parameters from base_gate.

**Returns**

List of gate parameters.

**Return type**

list

**Raises**

**CircuitError** – Controlled gate does not define a base gate

### unit

Get the time unit of duration.