Skip to main content

Documentation Index

Fetch the complete documentation index at: https://prod-mint.classiq.io/llms.txt

Use this file to discover all available pages before exploring further.

View on GitHub

Open this notebook in GitHub to run it yourself
This notebook shows how to generate data for discrete quantum walk using pytket 1.34.0
# import time
# from pytket.circuit import Circuit, CircBox, OpType, QControlBox
# from pytket.extensions.qiskit import AerBackend
# from pytket.passes import DecomposeBoxes, SynthesiseTket

# SIZE = 6
# backend = AerBackend()

# # mcx from control on X
# def mcx_gate(num_ctrl_qubits):
#     my_mcx_gate = QControlBox(CircBox(Circuit(1).X(0)), num_ctrl_qubits)
#     return my_mcx_gate

# # get increment circuit as an MCX cascade
# def get_increment_circuit(num_qubits):
#     increment_circuit = Circuit(num_qubits)
#     for j in range(num_qubits - 1):
#         increment_circuit.add_gate(mcx_gate(num_qubits-1-j),[k for k in range(num_qubits-j)])
#     increment_circuit.X(0)

#     return increment_circuit

# # run an example
# start_time = time.time()
# q_walk_step = Circuit(SIZE+1)
# q_walk_step.H(0)
# q_walk_step.add_gate(QControlBox(CircBox(get_increment_circuit(SIZE))),
#     [k for k in range(SIZE+1)])
# q_walk_step.add_gate(QControlBox(CircBox(get_increment_circuit(SIZE)).dagger,n_controls=1,
# control_state=[0]),[k for k in range(SIZE+1)])

# DecomposeBoxes().apply(q_walk_step)
# SynthesiseTket().apply(q_walk_step)
# compiled_circ = backend.get_compiled_circuit(q_walk_step)
# transpilation_time = time.time()-start_time
# depth = compiled_circ.depth()
# cx_counts = compiled_circ.n_gates_of_type(OpType.CX)
# width = compiled_circ.n_qubits

# print(f'==== tket for {SIZE}==== time {transpilation_time}')