Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 115 additions & 0 deletions example/algorithms/16QBT_10CYC_TFL_1.cq
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
/*
* QUEKO benchmark circuit: 16 qubits, 10 cycles, TFL gate density.
*
* QUEKO (QUantum Examples for Knowing Optimality) circuits are
* synthetic benchmarks designed with a known-optimal mapping depth.
* They are used to evaluate quantum circuit mapping and routing
* algorithms by providing a ground truth: the gap between a
* compiler's output depth and the known optimum measures compiler
* quality.
*
* Naming convention: <qubits>QBT_<cycles>CYC_<density>_<instance>
* - 16QBT: 16-qubit device graph
* - 10CYC: known-optimal circuit depth of 10 cycles
* - TFL: Toffoli gate density vector
* - _1: instance number 1
*
*/


version 3.0

qubit[16] q
bit[16] b


X q[3]
X q[9]
X q[12]
CNOT q[13], q[15]
CNOT q[7], q[0]
X q[1]
X q[5]
CNOT q[3], q[12]
CNOT q[10], q[2]
CNOT q[8], q[9]
CNOT q[7], q[0]
X q[12]
X q[10]
X q[1]
X q[11]
X q[0]
CNOT q[13], q[15]
CNOT q[8], q[9]
CNOT q[5], q[6]
CNOT q[4], q[14]
X q[7]
X q[11]
X q[8]
X q[10]
X q[15]
CNOT q[3], q[12]
CNOT q[4], q[14]
CNOT q[0], q[9]
X q[3]
X q[4]
X q[10]
CNOT q[11], q[13]
CNOT q[15], q[2]
CNOT q[0], q[1]
CNOT q[6], q[7]
X q[3]
X q[14]
X q[5]
X q[1]
X q[6]
X q[11]
X q[12]
CNOT q[0], q[9]
CNOT q[10], q[2]
X q[11]
X q[0]
X q[1]
X q[12]
CNOT q[3], q[5]
X q[3]
X q[2]
X q[14]
X q[13]
CNOT q[0], q[9]
CNOT q[1], q[11]
CNOT q[12], q[4]
X q[3]
X q[2]
X q[12]
X q[5]
CNOT q[7], q[0]
CNOT q[4], q[14]
CNOT q[1], q[11]
CNOT q[13], q[15]
X q[3]
X q[2]
X q[5]
X q[6]
X q[7]
X q[1]
X q[12]
CNOT q[13], q[15]
CNOT q[8], q[9]

b[0] = measure q[0]
b[1] = measure q[1]
b[2] = measure q[2]
b[3] = measure q[3]
b[4] = measure q[4]
b[5] = measure q[5]
b[6] = measure q[6]
b[7] = measure q[7]
b[8] = measure q[8]
b[9] = measure q[9]
b[10] = measure q[10]
b[11] = measure q[11]
b[12] = measure q[12]
b[13] = measure q[13]
b[14] = measure q[14]
b[15] = measure q[15]
201 changes: 201 additions & 0 deletions example/algorithms/grover_n3.cq
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
/*
* Grover's search algorithm on 3 qubits.
*
* Grover's algorithm finds a marked item in an unstructured database
* of N items with O(sqrt(N)) queries, providing a quadratic speedup
* over classical search. It works by repeatedly applying two steps:
* 1) An oracle that flips the phase of the target state.
* 2) A diffusion operator that amplifies the amplitude of the
* marked state by inverting all amplitudes about their mean.
* After O(sqrt(N)) iterations, measuring yields the target state
* with high probability. This circuit uses 3 qubits (N = 8) and
* performs 2 iterations.
*
*/

version 3.0

qubit[3] q
bit[3] b

H q[0]
H q[1]
H q[2]

X q[0]
H q[2]
Y90 q[0]
Rx(-0.7854) q[0]
Y q[0]
Y90 q[1]
Rx(-0.7854) q[1]
mY90 q[1]
X q[2]
mY90 q[2]
CZ q[2], q[0]
Y q[0]
Rx(0.7854) q[0]
Y q[0]
mY90 q[2]
CZ q[1], q[2]
Y q[2]
CZ q[1], q[0]
Y q[0]
Rx(0.7854) q[2]
Y q[2]
Rx(-0.7854) q[0]
Y q[0]
CZ q[1], q[2]
Y90 q[2]
CZ q[2], q[0]
Y q[0]
Rx(0.7854) q[0]
Y q[0]
Y90 q[2]
Rx(-0.7854) q[2]
mY90 q[2]
CZ q[1], q[0]
Y90 q[0]
X q[2]
mY90 q[2]
H q[2]
X q[0]
H q[0]
H q[1]
H q[2]
X q[1]
X q[0]
X q[2]
H q[2]
Y90 q[0]
Rx(-0.7854) q[0]
Y q[0]
Y90 q[1]
Rx(-0.7854) q[1]
mY90 q[1]
X q[2]
mY90 q[2]
CZ q[2], q[0]
Y q[0]
Rx(0.7854) q[0]
Y q[0]
mY90 q[2]
CZ q[1], q[2]
Y q[2]
CZ q[1], q[0]
Y q[0]
Rx(0.7854) q[2]
Y q[2]
Rx(-0.7854) q[0]
Y q[0]
CZ q[1], q[2]
Y90 q[2]
CZ q[2], q[0]
Y q[0]
Rx(0.7854) q[0]
Y q[0]
Y90 q[2]
Rx(-0.7854) q[2]
mY90 q[2]
CZ q[1], q[0]
Y90 q[0]
X q[2]
mY90 q[2]
H q[2]
X q[1]
X q[0]
X q[2]
H q[0]
H q[1]
H q[2]

X q[0]
H q[2]
Y90 q[0]
Rx(-0.7854) q[0]
Y q[0]
Y90 q[1]
Rx(-0.7854) q[1]
mY90 q[1]
X q[2]
mY90 q[2]
CZ q[2], q[0]
Y q[0]
Rx(0.7854) q[0]
Y q[0]
mY90 q[2]
CZ q[1], q[2]
Y q[2]
CZ q[1], q[0]
Y q[0]
Rx(0.7854) q[2]
Y q[2]
Rx(-0.7854) q[0]
Y q[0]
CZ q[1], q[2]
Y90 q[2]
CZ q[2], q[0]
Y q[0]
Rx(0.7854) q[0]
Y q[0]
Y90 q[2]
Rx(-0.7854) q[2]
mY90 q[2]
CZ q[1], q[0]
Y90 q[0]
X q[2]
mY90 q[2]
H q[2]
X q[0]
H q[0]
H q[1]
H q[2]
X q[1]
X q[0]
X q[2]
H q[2]
Y90 q[0]
Rx(-0.7854) q[0]
Y q[0]
Y90 q[1]
Rx(-0.7854) q[1]
mY90 q[1]
X q[2]
mY90 q[2]
CZ q[2], q[0]
Y q[0]
Rx(0.7854) q[0]
Y q[0]
mY90 q[2]
CZ q[1], q[2]
Y q[2]
CZ q[1], q[0]
Y q[0]
Rx(0.7854) q[2]
Y q[2]
Rx(-0.7854) q[0]
Y q[0]
CZ q[1], q[2]
Y90 q[2]
CZ q[2], q[0]
Y q[0]
Rx(0.7854) q[0]
Y q[0]
Y90 q[2]
Rx(-0.7854) q[2]
mY90 q[2]
CZ q[1], q[0]
Y90 q[0]
X q[2]
mY90 q[2]
H q[2]
X q[1]
X q[0]
X q[2]
H q[0]
H q[1]
H q[2]

b[0] = measure q[0]
b[1] = measure q[1]
b[2] = measure q[2]
Loading
Loading