quri_parts.qsub.lib.std.multi_control_gates module¶
- MCX: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCX object>)¶
Multi-controlled X gate. Applies X gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCY: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCY object>)¶
Multi-controlled Y gate. Applies Y gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCZ: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCZ object>)¶
Multi-controlled Z gate. Applies Z gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCS: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCS object>)¶
Multi-controlled S gate. Applies S gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCSdag: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCSdag object>)¶
Multi-controlled S† gate. Applies S† gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCT: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCT object>)¶
Multi-controlled T gate. Applies T gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCTdag: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCTdag object>)¶
Multi-controlled T† gate. Applies T† gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCSqrtX: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCSqrtX object>)¶
Multi-controlled √X gate. Applies √X gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCSqrtXdag: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCSqrtXdag object>)¶
Multi-controlled √X† gate. Applies √X† gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCSqrtY: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCSqrtY object>)¶
Multi-controlled √Y gate. Applies √Y gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCSqrtYdag: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCSqrtYdag object>)¶
Multi-controlled √Y† gate. Applies √Y† gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCH: OpFactory[(<class 'int'>,)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCH object>)¶
Multi-controlled Hadamard gate. Applies H gate to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCRZ: OpFactory[(<class 'int'>, <class 'float'>)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCRZ object>)¶
Multi-controlled RZ rotation gate. Applies RZ(angle) to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCRX: OpFactory[(<class 'int'>, <class 'float'>)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCRX object>)¶
Multi-controlled RX rotation gate. Applies RX(angle) to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCRY: OpFactory[(<class 'int'>, <class 'float'>)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCRY object>)¶
Multi-controlled RY rotation gate. Applies RY(angle) to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MCPhase: OpFactory[(<class 'int'>, <class 'float'>)] = _ParamOpFactory(op_def=<quri_parts.qsub.lib.std.multi_control_gates._MCPhase object>)¶
Multi-controlled Phase gate. Applies Phase(angle) to target qubit when all control qubits are in |1⟩ state.
- Parameters:
params (Params.args)
- Return type:
- MultiControlledNamedMCGatesSub(target_op, control_bits, control_value)¶
Resolves MultiControlled operations using named multi-controlled gates.
Maps known target operations to their corresponding named MC gate variants (MCX, MCY, MCZ, MCS, etc.) when available. For unknown operations, returns None to allow the system to fall back to the standard MultiControlledSub resolver.
Please use
generate_multicontrolled_to_mc_sub_resolver()instead, which also resolves MultiControlled gates, generating known MC? gates and fallback with unknown ops.
- generate_multicontrolled_to_mc_sub_resolver(s_and=<function scoped_and>)¶
Generates a resolver that expands MultiControlled to named MC operations when possible.
This resolver is useful when you expect named MC gates as final primitives, especially when converting circuits to SimulatorBasicSet. In other cases, it may emit redundant Toffoli (or s_and) chains during the compilation process.
From the end-user perspective, all MultiControlled operations work: known operations use optimized named gates, while unknown operations use the standard decomposition.
Algorithm: 1. Evaluate MultiControlledNamedMCGatesSub to try converting the MultiControlled
operation to a named MC gate.
If that fails, try to resolve the target operation. If successful, wrap each operation in the sub with MultiControlled.
If that also fails, decompose the MultiControlled using Toffoli or s_and (default behavior).
During expansion, adds MultiControlled Phase gates according to the global phase of the operation.
Example
>>> new_repo = default_repository().copy() >>> new_repo.register_sub_resolver( ... MultiControlled, generate_multicontrolled_to_mc_sub_resolver() ... )
- Parameters:
s_and (Callable[[SubBuilder, Qubit, Qubit], AbstractContextManager[Qubit]])
- Return type:
- mcx_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcy_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcz_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcs_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcsdag_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mct_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mctdag_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcsqrtx_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcsqrtxdag_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcsqrty_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcsqrtydag_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mch_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcphase_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcrz_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcrx_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type:
- mcry_resolver(op, repository)¶
- Parameters:
op (Op)
repository (SubRepository)
- Return type: