from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 5
p = ql.Program('one-two-three-v2_100', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('one-two-three-v2_100', platform)
k.gate('x', 0)
k.gate('cnot', 4, 1)
k.gate('cnot', 2, 0)
k.gate('h', 2)
k.gate('t', 1)
k.gate('t', 3)
k.gate('t', 2)
k.gate('cnot', 3, 1)
k.gate('cnot', 2, 3)
k.gate('cnot', 1, 2)
k.gate('tdag', 3)
k.gate('cnot', 1, 3)
k.gate('tdag', 1)
k.gate('tdag', 3)
Пример #2
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 5
p = ql.Program('alu-v4_36', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('alu-v4_36', platform)
k.gate('h', 1)
k.gate('t', 2)
k.gate('t', 0)
k.gate('t', 1)
k.gate('cnot', 0, 2)
k.gate('cnot', 1, 0)
k.gate('cnot', 2, 1)
k.gate('tdag', 0)
k.gate('cnot', 2, 0)
k.gate('tdag', 2)
k.gate('tdag', 0)
k.gate('t', 1)
k.gate('cnot', 1, 0)
k.gate('cnot', 2, 1)
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(curdir, '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json')
platform  = ql.Platform('platform_none', config_fn)
sweep_points = [1,2]
num_circuits = 1
num_qubits = 10
p = ql.Program('benstein_vazirani_8b_secret_128', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('benstein_vazirani_8b_secret_128', platform)
k.gate('prepx',8)
k.gate('x',8)
k.gate('h',0)
k.gate('h',1)
k.gate('h',2)
k.gate('h',3)
k.gate('h',4)
k.gate('h',5)
k.gate('h',6)
k.gate('h',7)
k.gate('h',8)
k.gate('cnot',7y)
k.gate('h',0)
k.gate('h',1)
k.gate('h',2)
k.gate('h',3)
k.gate('h',4)
Пример #4
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(curdir, '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json')
platform  = ql.Platform('platform_none', config_fn)
sweep_points = [1,2]
num_circuits = 1
num_qubits = 5
p = ql.Program('4mod5-v0_20', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('4mod5-v0_20', platform)
k.gate('cnot',3,1)
k.gate('x',0)
k.gate('cnot',0,2)
k.gate('cnot',2,1)
k.gate('h',4)
k.gate('t',2)
k.gate('t',1)
k.gate('t',4)
k.gate('cnot',1,2)
k.gate('cnot',4,1)
k.gate('cnot',2,4)
k.gate('tdag',1)
k.gate('cnot',2,1)
k.gate('tdag',2)
k.gate('tdag',1)
k.gate('t',4)
k.gate('cnot',4,1)
Пример #5
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 16
p = ql.Program('cnt3-5_179', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('cnt3-5_179', platform)
k.gate('cnot', 12, 15)
k.gate('h', 12)
k.gate('t', 14)
k.gate('t', 13)
k.gate('t', 12)
k.gate('cnot', 13, 14)
k.gate('cnot', 12, 13)
k.gate('cnot', 14, 12)
k.gate('tdag', 13)
k.gate('cnot', 14, 13)
k.gate('tdag', 14)
k.gate('tdag', 13)
k.gate('t', 12)
k.gate('cnot', 12, 13)
Пример #6
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(curdir, '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json')
platform  = ql.Platform('platform_none', config_fn)
sweep_points = [1,2]
num_circuits = 1
num_qubits = 62
p = ql.Program('vbeAdder_20b', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('vbeAdder_20b', platform)
k.gate('toffoli',1b1,c1)
k.gate('cnot',1b1)
k.gate('toffoli',0b1,c1)
k.gate('toffoli',4b2,c2)
k.gate('cnot',4b2)
k.gate('toffoli',3b2,c2)
k.gate('toffoli',7b3,c3)
k.gate('cnot',7b3)
k.gate('toffoli',6b3,c3)
k.gate('toffoli',10b4,c4)
k.gate('cnot',10b4)
k.gate('toffoli',9b4,c4)
k.gate('toffoli',13b5,c5)
k.gate('cnot',13b5)
k.gate('toffoli',12b5,c5)
k.gate('toffoli',16b6,c6)
k.gate('cnot',16b6)
Пример #7
0
from openql import openql as ql
import os
import numpy as np

curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 6
p = ql.Program('4gt4-v0_73', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('4gt4-v0_73', platform)
k.gate('cnot', 0, 1)
k.gate('cnot', 2, 1)
k.gate('cnot', 1, 2)
k.gate('cnot', 3, 2)
k.gate('cnot', 2, 3)
k.gate('cnot', 4, 3)
k.gate('cnot', 3, 4)
k.gate('cnot', 4, 3)
k.gate('cnot', 4, 2)
k.gate('cnot', 4, 1)
k.gate('cnot', 4, 0)
k.gate('h', 5)
k.gate('t', 0)
Пример #8
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 5
p = ql.Program('4_49_16', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('4_49_16', platform)
k.gate('h', 1)
k.gate('t', 3)
k.gate('t', 4)
k.gate('t', 1)
k.gate('cnot', 4, 3)
k.gate('cnot', 1, 4)
k.gate('cnot', 3, 1)
k.gate('tdag', 4)
k.gate('cnot', 3, 4)
k.gate('tdag', 3)
k.gate('tdag', 4)
k.gate('t', 1)
k.gate('cnot', 1, 4)
k.gate('cnot', 3, 1)
Пример #9
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 5
p = ql.Program('alu-v1_29', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('alu-v1_29', platform)
k.gate('cnot', 3, 4)
k.gate('x', 3)
k.gate('cnot', 1, 2)
k.gate('h', 1)
k.gate('t', 3)
k.gate('t', 2)
k.gate('t', 1)
k.gate('cnot', 2, 3)
k.gate('cnot', 1, 2)
k.gate('cnot', 3, 1)
k.gate('tdag', 2)
k.gate('cnot', 3, 2)
k.gate('tdag', 3)
k.gate('tdag', 2)
Пример #10
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 6
p = ql.Program('ex1_226', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('ex1_226', platform)
k.gate('cnot', 3, 0)
k.gate('cnot', 1, 0)
k.gate('cnot', 5, 0)
k.gate('x', 2)
k.gate('cnot', 2, 0)
k.gate('x', 4)
k.gate('cnot', 4, 0)
p.add_kernel(k)
p.compile(optimize=False)
Пример #11
0
def QPD():
    '''
    w2di = Image.open("/mnt/7A06EEA206EE5E9F/GoogleDrive/TUD_CE/Thesis/SimQG/QuInE/examples/qtm_a2/panda18.png")    
    w2d = w2di.convert('RGBA')
    wbw = w2d
    for i in range(0,w2d.size[0]):
        for j in range(0,w2d.size[1]):
            if w2d.getpixel((i,j))[3] == 0:		# Set transparent to white
                wbw.putpixel((i,j),(255,255,255))
            elif w2d.getpixel((i,j))[0] > 150:
                wbw.putpixel((i,j),(255,255,255))
            else:
                wbw.putpixel((i,j),(0,0,0))
    wbw.save("/mnt/7A06EEA206EE5E9F/GoogleDrive/TUD_CE/Thesis/SimQG/QuInE/examples/qtm_a2/panda18bw.png")
    '''

    A = 2  # Binary Alphabet {0,1} := {(0,0,0),(255,255,255)} Black and White Image
    D = 2

    w2di = Image.open(
        "/mnt/7A06EEA206EE5E9F/GoogleDrive/TUD_CE/Thesis/SimQG/QuInE/examples/qtm_a2/panda18bw.png"
    )
    w2d = w2di.convert('RGB')
    N0 = w2di.size[0]
    N1 = w2di.size[1]
    '''
    for Msz in range(1,20):
        M0 = Msz
        M1 = Msz
        Q_tag = ceil(log2(N0-M0+1)) + ceil(log2(N1-M1+1))
        Q_data = ceil(log2(A)) * M0 * M1
        Q_anc = 1  
        print([Msz,Q_tag+Q_data+Q_anc])
    # Template Size vs Total Qubits: [1, 14],[2, 17],[3, 22],[4, 29],[5, 38],[6, 49],[7, 62]
    '''
    '''
    M0 = 3
    M1 = 3
    idx0 = 9		# Expected Answer i_0
    idx1 = 8		# Expected Answer i_1
    p2d = w2d.crop((idx0,idx1,idx0+M0,idx1+M1)) 
    p2d.save("/mnt/7A06EEA206EE5E9F/GoogleDrive/TUD_CE/Thesis/SimQG/QuInE/examples/qtm_a2/panda_p.png")
    
    ans = w2d
    for i in range(idx0,idx0+M0):
        for j in range(idx1,idx1+M1):
            if ans.getpixel((i,j))[0] == 255:
                ans.putpixel((i,j),(0,255,0))
            else:
                ans.putpixel((i,j),(255,0,0))
    ans.save("/mnt/7A06EEA206EE5E9F/GoogleDrive/TUD_CE/Thesis/SimQG/QuInE/examples/qtm_a2/answer.png")
    '''

    p2di = Image.open(
        "/mnt/7A06EEA206EE5E9F/GoogleDrive/TUD_CE/Thesis/SimQG/QuInE/examples/qtm_a2/panda_p.png"
    )
    p2d = p2di.convert('RGB')
    M0 = p2di.size[0]
    M1 = p2di.size[1]

    Q_tag = ceil(log2(N0 - M0 + 1)) + ceil(log2(N1 - M1 + 1))
    Q_data = ceil(log2(A)) * M0 * M1
    Q_anc = 1
    anc = Q_tag + Q_data

    config_fn = os.path.join('gateConfig.json')
    platform = ql.Platform('platform_none', config_fn)

    Q_total = Q_tag + Q_data + Q_anc
    prog = ql.Program('qg', Q_total, platform)

    # Kernel 1: Construct Quantum Phone Directory
    qk1 = ql.Kernel('QCirc1', platform)
    Circ1(qk1, w2d, N0, N1, M0, M1, Q_total, Q_tag, Q_data, anc)

    # Kernel 2: Calculate Hamming Distance
    qk2 = ql.Kernel('QCirc2', platform)
    Circ2(qk2, p2d, M0, M1, Q_tag)

    # Kernel 3: Oracle to Mark Hamming Distance of 0
    qk3 = ql.Kernel('QCirc3', platform)
    Circ3(qk3, Q_tag, Q_data)

    # Kernel 4: Amplitude Amplification
    qk4 = ql.Kernel('QCirc4', platform)
    Circ4(qk4, Q_tag, Q_data, Q_anc)

    # Kernel 5: Partial Amplitude Amplification
    qk5 = ql.Kernel('QCirc5', platform)
    Circ5(qk5, Q_tag, Q_data, Q_anc)

    prog.add_kernel(qk1)
    prog.add_kernel(qk2)
    for i in range(0, 1):  # Optimal iteration from calculation is 111
        prog.add_kernel(qk3)
        prog.add_kernel(qk5)
        prog.add_kernel(qk3)
        prog.add_kernel(qk4)

    prog.compile(False, "ASAP", False)
    display()
Пример #12
0
# Quantum Shor Code

from openql import openql as ql
import os

curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'cqasm_files')
ql.set_option('output_dir', output_dir)
ql.set_option('write_qasm_files', 'yes')

config_fn  = os.path.join(curdir, 'config_qx.json')
platform   = ql.Platform('platform_none', config_fn)

num_qubits = 9
p = ql.Program('exercise_qasm_008', platform, num_qubits)

k1 = ql.Kernel("initialize", platform, num_qubits)
for i in range(0, num_qubits):
	k1.gate('prep_z', [i])	# Initialize all qubits to |0>
k1.gate('rx', [0], 0, 1.3)	# Create a arbitrary state
k1.gate('ry', [0], 0, 0.3)	# Create a arbitrary state
k1.display()
p.add_kernel(k1)

k2 = ql.Kernel("phase_encode", platform, num_qubits)
k2.gate('cnot', [0,3])
k2.gate('cnot', [0,6])
k2.gate('h', [0])
k2.gate('h', [3])
k2.gate('h', [6])
k2.display()
Пример #13
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 11
p = ql.Program('wim_266', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('wim_266', platform)
k.gate('x', 6)
k.gate('x', 5)
k.gate('x', 4)
k.gate('x', 2)
k.gate('x', 1)
k.gate('x', 0)
k.gate('x', 10)
k.gate('h', 5)
k.gate('t', 7)
k.gate('t', 6)
k.gate('t', 5)
k.gate('cnot', 6, 7)
k.gate('cnot', 5, 6)
k.gate('cnot', 7, 5)
Пример #14
0
from openql import openql as ql
import os
import numpy as np

curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 5
p = ql.Program('mod5d1_63', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('mod5d1_63', platform)
k.gate('cnot', 3, 1)
k.gate('cnot', 2, 0)
k.gate('cnot', 1, 4)
k.gate('cnot', 0, 4)
k.gate('h', 4)
k.gate('t', 1)
k.gate('t', 0)
k.gate('t', 4)
k.gate('cnot', 0, 1)
k.gate('cnot', 4, 0)
k.gate('cnot', 1, 4)
k.gate('tdag', 0)
k.gate('cnot', 1, 0)
Пример #15
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(curdir, '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json')
platform  = ql.Platform('platform_none', config_fn)
sweep_points = [1,2]
num_circuits = 1
num_qubits = 5
p = ql.Program('4mod7-v1_96', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('4mod7-v1_96', platform)
k.gate('x',0)
k.gate('x',0)
k.gate('h',0)
k.gate('t',4)
k.gate('t',1)
k.gate('t',0)
k.gate('cnot',1,4)
k.gate('cnot',0,1)
k.gate('cnot',4,0)
k.gate('tdag',1)
k.gate('cnot',4,1)
k.gate('tdag',4)
k.gate('tdag',1)
k.gate('t',0)
k.gate('cnot',0,1)
k.gate('cnot',4,0)
k.gate('cnot',1,4)
Пример #16
0
from openql import openql as ql
import os
import numpy as np

curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 7
p = ql.Program('ex2_227', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('ex2_227', platform)
k.gate('h', 0)
k.gate('t', 2)
k.gate('t', 6)
k.gate('t', 0)
k.gate('cnot', 6, 2)
k.gate('cnot', 0, 6)
k.gate('cnot', 2, 0)
k.gate('tdag', 6)
k.gate('cnot', 2, 6)
k.gate('tdag', 2)
k.gate('tdag', 6)
k.gate('t', 0)
k.gate('cnot', 0, 6)
Пример #17
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 5
p = ql.Program('4gt13-v1_93', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('4gt13-v1_93', platform)
k.gate('x', 0)
k.gate('cnot', 4, 0)
k.gate('cnot', 0, 4)
k.gate('h', 4)
k.gate('t', 1)
k.gate('t', 0)
k.gate('t', 4)
k.gate('cnot', 0, 1)
k.gate('cnot', 4, 0)
k.gate('cnot', 1, 4)
k.gate('tdag', 0)
k.gate('cnot', 1, 0)
k.gate('tdag', 1)
k.gate('tdag', 0)
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 10
p = ql.Program('mini_alu_305', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('mini_alu_305', platform)
k.gate('x', 6)
k.gate('x', 7)
k.gate('x', 8)
k.gate('h', 4)
k.gate('t', 1)
k.gate('t', 2)
k.gate('t', 4)
k.gate('cnot', 2, 1)
k.gate('cnot', 4, 2)
k.gate('cnot', 1, 4)
k.gate('tdag', 2)
k.gate('cnot', 1, 2)
k.gate('tdag', 1)
k.gate('tdag', 2)
Пример #19
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 5
p = ql.Program('mod5mils_65', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('mod5mils_65', platform)
k.gate('cnot', 1, 3)
k.gate('x', 3)
k.gate('h', 4)
k.gate('t', 3)
k.gate('t', 0)
k.gate('t', 4)
k.gate('cnot', 0, 3)
k.gate('cnot', 4, 0)
k.gate('cnot', 3, 4)
k.gate('tdag', 0)
k.gate('cnot', 3, 0)
k.gate('tdag', 3)
k.gate('tdag', 0)
k.gate('t', 4)
Пример #20
0
def QPM():
    
    A = 4
    N = 8                           # Reference Genome size
    w = "22013220"  # 22013200 #randStr(2,N)    # Reference Genome
    M = 2                           # Short Read size
    p = "13"        #randStr(2,M)   # Short Read
    s = ceil(log2(N-M))
    print(s)
    config_fn = os.path.join('gateConfig.json')
    platform = ql.Platform('platform_none', config_fn)

    total_qubits = 2*s*M-2
    prog = ql.Program('qg', total_qubits, platform)
    
    # Initialization
    qk1 = ql.Kernel('QCirc1',platform)
    Circ1(qk1,s,M)
    prog.add_kernel(qk1)

    # Oracle Kernels
    qk2a = ql.Kernel('QCirc2a',platform)
    qk2c = ql.Kernel('QCirc2c',platform)
    qk2g = ql.Kernel('QCirc2g',platform)
    qk2t = ql.Kernel('QCirc2t',platform)

    # Grover Amplitude Amplification
    qk3 = ql.Kernel('QCirc3',platform)
    Circ3(qk3,s,M)
    
    # WATSON : define custom gate from python code... not json...
    # WATSON : get back display output in code
    
    fa = []
    fc = []
    fg = []
    ft = []
    for wi in range(0,N):
        if w[wi] == '0':
            fa.append(True)
            fc.append(False)
            fg.append(False)
            ft.append(False)
        elif w[wi] == '1':
            fa.append(False)
            fc.append(True)
            fg.append(False)
            ft.append(False)
        elif w[wi] == '2':
            fa.append(False)
            fc.append(False)
            fg.append(True)
            ft.append(False)
        else:
            fa.append(False)
            fc.append(False)
            fg.append(False)
            ft.append(True)

    print(w,p)

    for pi in range(0,M):
        if p[pi] == '0':
            Circ2(qk2a,fa,s,pi*s,s*M)
            prog.add_kernel(qk2a)
        elif p[pi] == '1':
            Circ2(qk2c,fc,s,pi*s,s*M)
            prog.add_kernel(qk2c)
        elif p[pi] == '2':
            Circ2(qk2g,fg,s,pi*s,s*M)
            prog.add_kernel(qk2g)
        else:
            Circ2(qk2t,ft,s,pi*s,s*M)
            prog.add_kernel(qk2t)
        # Reset Kernels
        prog.add_kernel(qk3)

    # Run multiple times to get average result
    #qk4 = ql.Kernel('QCirc4',platform)
    #qk4.measure(9)
    #qk4.measure(8)
    #qk4.measure(7)
    #qk4.measure(6)
    #prog.add_kernel(qk4)


    prog.compile(False, "ASAP", False)
    display()
    #showQasm(1)
    return
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 5
p = ql.Program('decod24-v3_45', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('decod24-v3_45', platform)
k.gate('x', 0)
k.gate('x', 1)
k.gate('h', 0)
k.gate('t', 1)
k.gate('t', 4)
k.gate('t', 0)
k.gate('cnot', 4, 1)
k.gate('cnot', 0, 4)
k.gate('cnot', 1, 0)
k.gate('tdag', 4)
k.gate('cnot', 1, 4)
k.gate('tdag', 1)
k.gate('tdag', 4)
k.gate('t', 0)
Пример #22
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 12
p = ql.Program('cm152a_212', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('cm152a_212', platform)
k.gate('h', 0)
k.gate('t', 1)
k.gate('t', 11)
k.gate('t', 0)
k.gate('cnot', 11, 1)
k.gate('cnot', 0, 11)
k.gate('cnot', 1, 0)
k.gate('tdag', 11)
k.gate('cnot', 1, 11)
k.gate('tdag', 1)
k.gate('tdag', 11)
k.gate('t', 0)
k.gate('cnot', 0, 11)
k.gate('cnot', 1, 0)
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(curdir, '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json')
platform  = ql.Platform('platform_none', config_fn)
sweep_points = [1,2]
num_circuits = 1
num_qubits = 19
p = ql.Program('cuccaroAdder_8b', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('cuccaroAdder_8b', platform)
k.gate('cnot',1b0)
k.gate('cnot',1c0)
k.gate('toffoli',0b0,a0)
k.gate('cnot',3b1)
k.gate('cnot',3a0)
k.gate('toffoli',1b1,a1)
k.gate('cnot',5b2)
k.gate('cnot',5a1)
k.gate('toffoli',3b2,a2)
k.gate('cnot',7b3)
k.gate('cnot',7a2)
k.gate('toffoli',5b3,a3)
k.gate('cnot',9b4)
k.gate('cnot',9a3)
k.gate('toffoli',7b4,a4)
k.gate('cnot',11b5)
k.gate('cnot',11a4)
Пример #24
0
from openql import openql as ql
import os
import numpy as np

curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 13
p = ql.Program('squar5_261', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('squar5_261', platform)
k.gate('h', 5)
k.gate('t', 11)
k.gate('t', 10)
k.gate('t', 5)
k.gate('cnot', 10, 11)
k.gate('cnot', 5, 10)
k.gate('cnot', 11, 5)
k.gate('tdag', 10)
k.gate('cnot', 11, 10)
k.gate('tdag', 11)
k.gate('tdag', 10)
k.gate('t', 5)
k.gate('cnot', 5, 10)
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(curdir, '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json')
platform  = ql.Platform('platform_none', config_fn)
sweep_points = [1,2]
num_circuits = 1
num_qubits = 258
p = ql.Program('benstein_vazirani_256b_secret_32', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('benstein_vazirani_256b_secret_32', platform)
k.gate('prepx',256)
k.gate('x',256)
k.gate('h',0)
k.gate('h',1)
k.gate('h',2)
k.gate('h',3)
k.gate('h',4)
k.gate('h',5)
k.gate('h',6)
k.gate('h',7)
k.gate('h',8)
k.gate('h',9)
k.gate('h',10)
k.gate('h',11)
k.gate('h',12)
k.gate('h',13)
k.gate('h',14)
Пример #26
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(
    curdir,
    '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json'
)
platform = ql.Platform('platform_none', config_fn)
sweep_points = [1, 2]
num_circuits = 1
num_qubits = 4
p = ql.Program('decod24-v0_38', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('decod24-v0_38', platform)
k.gate('h', 0)
k.gate('t', 3)
k.gate('t', 2)
k.gate('t', 0)
k.gate('cnot', 2, 3)
k.gate('cnot', 0, 2)
k.gate('cnot', 3, 0)
k.gate('tdag', 2)
k.gate('cnot', 3, 2)
k.gate('tdag', 3)
k.gate('tdag', 2)
k.gate('t', 0)
k.gate('cnot', 0, 2)
k.gate('cnot', 3, 0)
Пример #27
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(curdir, '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json')
platform  = ql.Platform('platform_none', config_fn)
sweep_points = [1,2]
num_circuits = 1
num_qubits = 5
p = ql.Program('alu-v0_26', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('alu-v0_26', platform)
k.gate('cnot',2,1)
k.gate('cnot',2,0)
k.gate('h',2)
k.gate('t',3)
k.gate('t',0)
k.gate('t',2)
k.gate('cnot',0,3)
k.gate('cnot',2,0)
k.gate('cnot',3,2)
k.gate('tdag',0)
k.gate('cnot',3,0)
k.gate('tdag',3)
k.gate('tdag',0)
k.gate('t',2)
k.gate('cnot',2,0)
k.gate('cnot',3,2)
k.gate('cnot',0,3)
Пример #28
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(curdir, '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json')
platform  = ql.Platform('platform_none', config_fn)
sweep_points = [1,2]
num_circuits = 1
num_qubits = 6
p = ql.Program('sf_274', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('sf_274', platform)
k.gate('h',4)
k.gate('t',2)
k.gate('t',5)
k.gate('t',4)
k.gate('cnot',5,2)
k.gate('cnot',4,5)
k.gate('cnot',2,4)
k.gate('tdag',5)
k.gate('cnot',2,5)
k.gate('tdag',2)
k.gate('tdag',5)
k.gate('t',4)
k.gate('cnot',4,5)
k.gate('cnot',2,4)
k.gate('cnot',5,2)
k.gate('h',4)
k.gate('h',5)
Пример #29
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(curdir, '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json')
platform  = ql.Platform('platform_none', config_fn)
sweep_points = [1,2]
num_circuits = 1
num_qubits = 45
p = ql.Program('benstein_vazirani_43b_secret_4', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('benstein_vazirani_43b_secret_4', platform)
k.gate('prepx',43)
k.gate('x',43)
k.gate('h',0)
k.gate('h',1)
k.gate('h',2)
k.gate('h',3)
k.gate('h',4)
k.gate('h',5)
k.gate('h',6)
k.gate('h',7)
k.gate('h',8)
k.gate('h',9)
k.gate('h',10)
k.gate('h',11)
k.gate('h',12)
k.gate('h',13)
k.gate('h',14)
Пример #30
0
from openql import openql as ql
import os
import numpy as np
curdir = os.path.dirname(__file__)
output_dir = os.path.join(curdir, 'test_output')
ql.set_output_dir(output_dir)
config_fn = os.path.join(curdir, '/home/daniel/Master/Quantum_Computing_and_Quantum_Information/OpenQL/tests/hardware_config_cc_light.json')
platform  = ql.Platform('platform_none', config_fn)
sweep_points = [1,2]
num_circuits = 1
num_qubits = 7
p = ql.Program('cuccaroMultiplier_1b', num_qubits, platform)
p.set_sweep_points(sweep_points, num_circuits)
k = ql.Kernel('cuccaroMultiplier_1b', platform)
k.gate('prepx',2)
k.gate('prepx',3)
k.gate('prepx',4)
k.gate('prepx',5)
k.gate('toffoli',0a0,out0)
k.gate('cnot',1anc0)
k.gate('toffoli',5out0,a0)
k.gate('toffoli',0a0,out1)
k.gate('toffoli',5out0,a0)
k.gate('cnot',1anc0)
k.gate('toffoli',0anc0,out0)
p.add_kernel(k)
p.compile(optimize=False)