cirq.qasm¶
-
cirq.qasm(val: Any, *, args: Optional[cirq.protocols.qasm.QasmArgs] = None, qubits: Optional[Iterable[cirq.QubitId]] = None, default: TDefault = ([], )) → Union[str, TDefault][source]¶ Returns QASM code for the given value, if possible.
Different values require different sets of arguments. The general rule ofthumb is that circuits don’t need any, operations need aQasmArgs, andgates need both aQasmArgsandqubits.Parameters: - val – The value to turn into QASM code.
- args – A QasmArgs object to pass into the value’s _qasm_ method. This is for needed for objects that only have a local idea of what’s going on, e.g. a cirq.Operation in a bigger cirq.Circuit involving qubits that the operation wouldn’t otherwise know about.
- qubits – A list of qubits that the value is being applied to. This is needed for cirq.Gate values, which otherwise wouldn’t know what qubits to talk about.
- default – A default result to use if the value doesn’t have a _qasm_ method or that method returns NotImplemented or None. If not specified, undecomposable values cause a TypeError.
Returns: The result of val._qasm_(…), if val has a _qasm_ method and it didn’t return NotImplemented or None. Otherwise default is returned, if it was specified. Otherwise an error is raised.
- TypeError:
- val didn’t have a _qasm_ method (or that method returned NotImplemented or None) and default wasn’t set.