Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ORNL Quantum Computing Institute
qcor
Commits
8f7b3a62
Commit
8f7b3a62
authored
Jul 29, 2020
by
Mccaskey, Alex
Browse files
merged master, updated docker deploy base to point to new llvm fork (for now)
Signed-off-by:
Alex McCaskey
<
mccaskeyaj@ornl.gov
>
parents
c589b8ca
9e548287
Pipeline
#113061
failed with stage
in 10 minutes and 31 seconds
Changes
15
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
8f7b3a62
...
...
@@ -29,7 +29,7 @@ Navigate to ``https://localhost:3000`` in your browser to open the IDE and get s
Compiler (C++14): GNU 6.1+, Clang 3.4+
CMake 3.9+ (for build)
XACC: see https://xacc.readthedocs.io/en/latest/install.html#building-xacc
LLVM/Clang [Syntax Handler Fork](https://github.com/
hfinkel
/llvm-project-csp).
LLVM/Clang [Syntax Handler Fork](https://github.com/
ornl-qci
/llvm-project-csp).
```
## Linux Build Instructions
...
...
benchmarks/circuit_opt_benchmark.cpp
0 → 100644
View file @
8f7b3a62
// Run a suite of circuit optimization benchmarks.
#include "qcor.hpp"
// Need to pass -DTEST_SOURCE_FILE=\"test_case_filename\" and -I resources/ to
// the qcor compiler: e.g.
// qcor -qpu qpp -DTEST_SOURCE_FILE=\"adder_8.qasm\" -I resources/
// circuit_opt_benchmark.cpp
#ifdef TEST_SOURCE_FILE
__qpu__
void
testKernel
(
qreg
q
)
{
using
qcor
::
openqasm
;
#include TEST_SOURCE_FILE
}
int
main
()
{
// Allocate just 1 qubit, we don't actually want to run the simulation.
auto
q
=
qalloc
(
1
);
// Run the kernel
testKernel
(
q
);
}
#endif
\ No newline at end of file
benchmarks/driver.py
0 → 100644
View file @
8f7b3a62
# Run circuit optimization benchmarks
import
glob
import
os
import
sys
import
subprocess
import
pathlib
qcorExe
=
str
(
pathlib
.
Path
.
home
())
+
"/.xacc/bin/qcor"
# Configurations:
# Optimization level to run:
OPT_LEVEL
=
1
dirPath
=
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
))
listOfSrcFiles
=
glob
.
glob
(
dirPath
+
"/resources/*.qasm"
)
listOfTestCases
=
[]
for
srcFile
in
listOfSrcFiles
:
testCaseName
=
os
.
path
.
splitext
(
os
.
path
.
basename
(
srcFile
))[
0
]
+
".out"
listOfTestCases
.
append
(
testCaseName
)
print
(
"Compile test case: "
,
testCaseName
)
process
=
subprocess
.
Popen
([
qcorExe
,
"-DTEST_SOURCE_FILE=
\"
"
+
srcFile
+
"
\"
"
,
"-o"
,
testCaseName
,
"-opt"
,
str
(
OPT_LEVEL
),
"-print-opt-stats"
,
"circuit_opt_benchmark.cpp"
],
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
PIPE
)
stdout
,
stderr
=
process
.
communicate
()
for
testCase
in
listOfTestCases
:
print
(
"Run Benchmark: "
,
testCase
)
testExe
=
dirPath
+
"/"
+
testCase
process
=
subprocess
.
run
([
testExe
],
stdout
=
sys
.
stdout
,
stderr
=
subprocess
.
PIPE
)
benchmarks/resources/adder_8.qasm
0 → 100644
View file @
8f7b3a62
OPENQASM 2.0;
include "qelib1.inc";
qreg qubits[24];
cx qubits[3],qubits[2];
cx qubits[8],qubits[7];
cx qubits[14],qubits[13];
cx qubits[21],qubits[20];
cx qubits[3],qubits[4];
cx qubits[8],qubits[9];
cx qubits[14],qubits[15];
cx qubits[21],qubits[22];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
ccx qubits[18],qubits[19],qubits[21];
ccx qubits[2],qubits[3],qubits[4];
ccx qubits[7],qubits[8],qubits[9];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[15];
ccx qubits[13],qubits[14],qubits[16];
ccx qubits[20],qubits[21],qubits[22];
ccx qubits[20],qubits[21],qubits[23];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
cx qubits[19],qubits[18];
cx qubits[5],qubits[8];
cx qubits[11],qubits[14];
cx qubits[18],qubits[21];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
ccx qubits[20],qubits[21],qubits[23];
ccx qubits[16],qubits[23],qubits[17];
ccx qubits[15],qubits[23],qubits[22];
ccx qubits[4],qubits[10],qubits[9];
ccx qubits[9],qubits[17],qubits[22];
ccx qubits[9],qubits[16],qubits[15];
ccx qubits[16],qubits[23],qubits[17];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
ccx qubits[20],qubits[21],qubits[23];
cx qubits[5],qubits[8];
cx qubits[11],qubits[14];
cx qubits[18],qubits[21];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
cx qubits[19],qubits[18];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
ccx qubits[20],qubits[21],qubits[23];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
ccx qubits[18],qubits[19],qubits[21];
cx qubits[3],qubits[2];
cx qubits[8],qubits[7];
cx qubits[14],qubits[13];
cx qubits[21],qubits[20];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
cx qubits[19],qubits[18];
cx qubits[6],qubits[8];
cx qubits[12],qubits[14];
cx qubits[19],qubits[21];
cx qubits[4],qubits[6];
cx qubits[9],qubits[12];
cx qubits[15],qubits[19];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
ccx qubits[18],qubits[19],qubits[21];
cx qubits[3],qubits[2];
cx qubits[8],qubits[7];
cx qubits[14],qubits[13];
cx qubits[21],qubits[20];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
ccx qubits[18],qubits[19],qubits[21];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
cx qubits[19],qubits[18];
cx qubits[4],qubits[6];
cx qubits[9],qubits[12];
cx qubits[15],qubits[19];
cx qubits[6],qubits[8];
cx qubits[12],qubits[14];
cx qubits[19],qubits[21];
cx qubits[1],qubits[0];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
cx qubits[19],qubits[18];
x qubits[0];
x qubits[2];
x qubits[5];
x qubits[7];
x qubits[11];
x qubits[13];
cx qubits[3],qubits[2];
cx qubits[8],qubits[7];
cx qubits[14],qubits[13];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
cx qubits[5],qubits[8];
cx qubits[11],qubits[14];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
ccx qubits[9],qubits[16],qubits[15];
ccx qubits[4],qubits[10],qubits[9];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
cx qubits[5],qubits[8];
cx qubits[11],qubits[14];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
ccx qubits[7],qubits[8],qubits[9];
ccx qubits[13],qubits[14],qubits[15];
ccx qubits[2],qubits[3],qubits[4];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
cx qubits[3],qubits[4];
cx qubits[8],qubits[9];
cx qubits[14],qubits[15];
cx qubits[3],qubits[2];
cx qubits[8],qubits[7];
cx qubits[14],qubits[13];
x qubits[0];
x qubits[2];
x qubits[5];
x qubits[7];
x qubits[11];
x qubits[13];
benchmarks/resources/grover_5.qasm
0 → 100644
View file @
8f7b3a62
OPENQASM 2.0;
include "qelib1.inc";
qreg qubits[9];
x qubits[5];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[8];
h qubits[5];
ccx qubits[4],qubits[8],qubits[5];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[4];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[4],qubits[8],qubits[5];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[4];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[4],qubits[8],qubits[5];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[4];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[4],qubits[8],qubits[5];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[4];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
benchmarks/resources/mod_adder_1024.qasm
0 → 100644
View file @
8f7b3a62
OPENQASM 2.0;
include "qelib1.inc";
qreg qubits[28];
cx qubits[9],qubits[19];
ccx qubits[8],qubits[18],qubits[19];
cx qubits[8],qubits[18];
ccx qubits[7],qubits[17],qubits[20];
ccx qubits[20],qubits[18],qubits[19];
ccx qubits[7],qubits[17],qubits[20];
ccx qubits[7],qubits[17],qubits[18];
cx qubits[7],qubits[17];
ccx qubits[6],qubits[16],qubits[21];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[20],qubits[18],qubits[19];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[6],qubits[16],qubits[21];
ccx qubits[6],qubits[16],qubits[20];
ccx qubits[20],qubits[17],qubits[18];
ccx qubits[6],qubits[16],qubits[20];
ccx qubits[6],qubits[16],qubits[17];
cx qubits[6],qubits[16];
ccx qubits[5],qubits[15],qubits[22];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[20],qubits[18],qubits[19];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[5],qubits[15],qubits[22];
ccx qubits[5],qubits[15],qubits[21];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[20],qubits[17],qubits[18];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[5],qubits[15],qubits[21];
ccx qubits[5],qubits[15],qubits[20];
ccx qubits[20],qubits[16],qubits[17];
ccx qubits[5],qubits[15],qubits[20];
ccx qubits[5],qubits[15],qubits[16];
cx qubits[5],qubits[15];
ccx qubits[4],qubits[14],qubits[23];
ccx qubits[23],qubits[15],qubits[22];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[20],qubits[18],qubits[19];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[23],qubits[15],qubits[22];
ccx qubits[4],qubits[14],qubits[23];
ccx qubits[4],qubits[14],qubits[22];
ccx qubits[22],qubits[15],qubits[21];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[20],qubits[17],qubits[18];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[22],qubits[15],qubits[21];
ccx qubits[4],qubits[14],qubits[22];
ccx qubits[4],qubits[14],qubits[21];
ccx qubits[21],qubits[15],qubits[20];
ccx qubits[20],qubits[16],qubits[17];
ccx qubits[21],qubits[15],qubits[20];
ccx qubits[4],qubits[14],qubits[21];
ccx qubits[4],qubits[14],qubits[20];
ccx qubits[20],qubits[15],qubits[16];
ccx qubits[4],qubits[14],qubits[20];
ccx qubits[4],qubits[14],qubits[15];
cx qubits[4],qubits[14];
ccx qubits[3],qubits[13],qubits[24];
ccx qubits[24],qubits[14],qubits[23];
ccx qubits[23],qubits[15],qubits[22];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[20],qubits[18],qubits[19];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[23],qubits[15],qubits[22];
ccx qubits[24],qubits[14],qubits[23];
ccx qubits[3],qubits[13],qubits[24];
ccx qubits[3],qubits[13],qubits[23];
ccx qubits[23],qubits[14],qubits[22];
ccx qubits[22],qubits[15],qubits[21];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[20],qubits[17],qubits[18];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[22],qubits[15],qubits[21];
ccx qubits[23],qubits[14],qubits[22];
ccx qubits[3],qubits[13],qubits[23];
ccx qubits[3],qubits[13],qubits[22];
ccx qubits[22],qubits[14],qubits[21];
ccx qubits[21],qubits[15],qubits[20];
ccx qubits[20],qubits[16],qubits[17];
ccx qubits[21],qubits[15],qubits[20];
ccx qubits[22],qubits[14],qubits[21];
ccx qubits[3],qubits[13],qubits[22];
ccx qubits[3],qubits[13],qubits[21];
ccx qubits[21],qubits[14],qubits[20];
ccx qubits[20],qubits[15],qubits[16];
ccx qubits[21],qubits[14],qubits[20];
ccx qubits[3],qubits[13],qubits[21];
ccx qubits[3],qubits[13],qubits[20];
ccx qubits[20],qubits[14],qubits[15];
ccx qubits[3],qubits[13],qubits[20];
ccx qubits[3],qubits[13],qubits[14];
cx qubits[3],qubits[13];
ccx qubits[2],qubits[12],qubits[25];
ccx qubits[25],qubits[13],qubits[24];
ccx qubits[24],qubits[14],qubits[23];
ccx qubits[23],qubits[15],qubits[22];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[20],qubits[18],qubits[19];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[23],qubits[15],qubits[22];
ccx qubits[24],qubits[14],qubits[23];
ccx qubits[25],qubits[13],qubits[24];
ccx qubits[2],qubits[12],qubits[25];
ccx qubits[2],qubits[12],qubits[24];
ccx qubits[24],qubits[13],qubits[23];
ccx qubits[23],qubits[14],qubits[22];
ccx qubits[22],qubits[15],qubits[21];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[20],qubits[17],qubits[18];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[22],qubits[15],qubits[21];
ccx qubits[23],qubits[14],qubits[22];
ccx qubits[24],qubits[13],qubits[23];
ccx qubits[2],qubits[12],qubits[24];
ccx qubits[2],qubits[12],qubits[23];
ccx qubits[23],qubits[13],qubits[22];
ccx qubits[22],qubits[14],qubits[21];
ccx qubits[21],qubits[15],qubits[20];
ccx qubits[20],qubits[16],qubits[17];
ccx qubits[21],qubits[15],qubits[20];
ccx qubits[22],qubits[14],qubits[21];
ccx qubits[23],qubits[13],qubits[22];
ccx qubits[2],qubits[12],qubits[23];
ccx qubits[2],qubits[12],qubits[22];
ccx qubits[22],qubits[13],qubits[21];
ccx qubits[21],qubits[14],qubits[20];
ccx qubits[20],qubits[15],qubits[16];
ccx qubits[21],qubits[14],qubits[20];
ccx qubits[22],qubits[13],qubits[21];
ccx qubits[2],qubits[12],qubits[22];
ccx qubits[2],qubits[12],qubits[21];
ccx qubits[21],qubits[13],qubits[20];
ccx qubits[20],qubits[14],qubits[15];
ccx qubits[21],qubits[13],qubits[20];
ccx qubits[2],qubits[12],qubits[21];
ccx qubits[2],qubits[12],qubits[20];
ccx qubits[20],qubits[13],qubits[14];
ccx qubits[2],qubits[12],qubits[20];
ccx qubits[2],qubits[12],qubits[13];
cx qubits[2],qubits[12];
ccx qubits[1],qubits[11],qubits[26];
ccx qubits[26],qubits[12],qubits[25];
ccx qubits[25],qubits[13],qubits[24];
ccx qubits[24],qubits[14],qubits[23];
ccx qubits[23],qubits[15],qubits[22];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[20],qubits[18],qubits[19];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[23],qubits[15],qubits[22];
ccx qubits[24],qubits[14],qubits[23];
ccx qubits[25],qubits[13],qubits[24];
ccx qubits[26],qubits[12],qubits[25];
ccx qubits[1],qubits[11],qubits[26];
ccx qubits[1],qubits[11],qubits[25];
ccx qubits[25],qubits[12],qubits[24];
ccx qubits[24],qubits[13],qubits[23];
ccx qubits[23],qubits[14],qubits[22];
ccx qubits[22],qubits[15],qubits[21];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[20],qubits[17],qubits[18];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[22],qubits[15],qubits[21];
ccx qubits[23],qubits[14],qubits[22];
ccx qubits[24],qubits[13],qubits[23];
ccx qubits[25],qubits[12],qubits[24];
ccx qubits[1],qubits[11],qubits[25];
ccx qubits[1],qubits[11],qubits[24];
ccx qubits[24],qubits[12],qubits[23];
ccx qubits[23],qubits[13],qubits[22];
ccx qubits[22],qubits[14],qubits[21];
ccx qubits[21],qubits[15],qubits[20];
ccx qubits[20],qubits[16],qubits[17];
ccx qubits[21],qubits[15],qubits[20];
ccx qubits[22],qubits[14],qubits[21];
ccx qubits[23],qubits[13],qubits[22];
ccx qubits[24],qubits[12],qubits[23];
ccx qubits[1],qubits[11],qubits[24];
ccx qubits[1],qubits[11],qubits[23];
ccx qubits[23],qubits[12],qubits[22];
ccx qubits[22],qubits[13],qubits[21];
ccx qubits[21],qubits[14],qubits[20];
ccx qubits[20],qubits[15],qubits[16];
ccx qubits[21],qubits[14],qubits[20];
ccx qubits[22],qubits[13],qubits[21];
ccx qubits[23],qubits[12],qubits[22];
ccx qubits[1],qubits[11],qubits[23];
ccx qubits[1],qubits[11],qubits[22];
ccx qubits[22],qubits[12],qubits[21];
ccx qubits[21],qubits[13],qubits[20];
ccx qubits[20],qubits[14],qubits[15];
ccx qubits[21],qubits[13],qubits[20];
ccx qubits[22],qubits[12],qubits[21];
ccx qubits[1],qubits[11],qubits[22];
ccx qubits[1],qubits[11],qubits[21];
ccx qubits[21],qubits[12],qubits[20];
ccx qubits[20],qubits[13],qubits[14];
ccx qubits[21],qubits[12],qubits[20];
ccx qubits[1],qubits[11],qubits[21];
ccx qubits[1],qubits[11],qubits[20];
ccx qubits[20],qubits[12],qubits[13];
ccx qubits[1],qubits[11],qubits[20];
ccx qubits[1],qubits[11],qubits[12];
cx qubits[1],qubits[11];
ccx qubits[0],qubits[10],qubits[27];
ccx qubits[27],qubits[11],qubits[26];
ccx qubits[26],qubits[12],qubits[25];
ccx qubits[25],qubits[13],qubits[24];
ccx qubits[24],qubits[14],qubits[23];
ccx qubits[23],qubits[15],qubits[22];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[20],qubits[18],qubits[19];
ccx qubits[21],qubits[17],qubits[20];
ccx qubits[22],qubits[16],qubits[21];
ccx qubits[23],qubits[15],qubits[22];
ccx qubits[24],qubits[14],qubits[23];
ccx qubits[25],qubits[13],qubits[24];
ccx qubits[26],qubits[12],qubits[25];
ccx qubits[27],qubits[11],qubits[26];
ccx qubits[0],qubits[10],qubits[27];
ccx qubits[0],qubits[10],qubits[26];
ccx qubits[26],qubits[11],qubits[25];
ccx qubits[25],qubits[12],qubits[24];
ccx qubits[24],qubits[13],qubits[23];
ccx qubits[23],qubits[14],qubits[22];
ccx qubits[22],qubits[15],qubits[21];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[20],qubits[17],qubits[18];
ccx qubits[21],qubits[16],qubits[20];
ccx qubits[22],qubits[15],qubits[21];
ccx qubits[23],qubits[14],qubits[22];
ccx qubits[24],qubits[13],qubits[23];
ccx qubits[25],qubits[12],qubits[24];
ccx qubits[26],qubits[11],qubits[25];
ccx qubits[0],qubits[10],qubits[26];
ccx qubits[0],qubits[10],qubits[25];
ccx qubits[25],qubits[11],qubits[24];
ccx qubits[24],qubits[12],qubits[23];
ccx qubits[23],qubits[13],qubits[22];
ccx qubits[22],qubits[14],qubits[21];
ccx qubits[21],qubits[15],qubits[20];
ccx qubits[20],qubits[16],qubits[17];
ccx qubits[21],qubits[15],qubits[20];
ccx qubits[22],qubits[14],qubits[21];
ccx qubits[23],qubits[13],qubits[22];
ccx qubits[24],qubits[12],qubits[23];
ccx qubits[25],qubits[11],qubits[24];
ccx qubits[0],qubits[10],qubits[25];
ccx qubits[0],qubits[10],qubits[24];
ccx qubits[24],qubits[11],qubits[23];
ccx qubits[23],qubits[12],qubits[22];
ccx qubits[22],qubits[13],qubits[21];
ccx qubits[21],qubits[14],qubits[20];