qat.purr.integrations.tket module

class TketBuilder(*args, **kwargs)

Bases: object

Builds a Tket circuit using a builder API. No direct relation to our other builders as the API is a little too different.

barrier(qubits)
creg(name, size)
custom_gate(gate_def, qubits, params=None, conditions=None)
gate(name, qubits, params=None, conditions=None)
is_basic_gate(name)
measure(qubits, bits, conditions=None)
qreg(name, size)
class TketQasmParser(order_result_vars=False, raw_results=False)

Bases: Qasm2Parser

QASM parser that turns QASM into Tket structures. Switch to Tkets QASM parser when it’s more mature.

process_barrier(node, context, builder, **kwargs)
process_cnot(node, context, builder, conditions=None, **kwargs)
process_creg(node, context, builder, **kwargs)
process_gate(method, context, builder, conditions=None, **kwargs)

Process a gate call.

process_gate_definition(node, context, _, **kwargs)
process_if(node, context, builder, *kwargs)
process_measure(node, context, builder, conditions=None, **kwargs)
process_program(builder, qasm)
process_qreg(node, context, builder, **kwargs)
process_reset(node, context, builder, conditions=None, **kwargs)
process_unitary(node, context, builder, conditions=None, **kwargs)

Unitary in QASM terms is just U(...).

apply_default_transforms(circuit, architecture, opts)
check_validity(circuit, architecture)
fetch_default_passes(architecture, opts, pass_list=None, add_delay=True)
get_coupling_subgraphs(couplings)

Given a list of connections which potentially describe a disconnected graph, this returns a list of connected subgraphs

optimize_circuit(circ, architecture, opts)

Apply all Tket optimizations to the circuit provided as defined in the options flag.

run_tket_optimizations(qasm_string, opts, hardware)

Runs tket-based optimizations and modifications. Routing will always happen no matter the level.

Will run optimizations in sections if a full suite fails until a minimal subset of passing optimizations is found.

Return type:

str