Commit 8f7b3a62 authored by Mccaskey, Alex's avatar Mccaskey, Alex
Browse files

merged master, updated docker deploy base to point to new llvm fork (for now)


Signed-off-by: Mccaskey, Alex's avatarAlex McCaskey <mccaskeyaj@ornl.gov>
parents c589b8ca 9e548287
Pipeline #113061 failed with stage
in 10 minutes and 31 seconds
......@@ -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
......
// 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
# 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)
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];
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];
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];