def run_exp_ham(num_qubits=1,
                t=1,
                num_tests=1,
                test_custom_sparse=False,
                test_custom=False,
                test_linalg=False):
    used_memory = virtual_memory().used

    for i in range(num_tests):

        if print_mem_status and i > 0:
            print("i=", i, "\t System memory used loop : ",
                  virtual_memory().used)

        ham = h.random_hamiltonian(num_qubits)
        t = random.random()

        if test_custom_sparse:
            expd = h.exp_ham(ham, t, enable_sparse_functionality=True)
        elif test_custom:
            expd = h.exp_ham(ham, t, enable_sparse_functionality=False)
        elif test_linalg:
            expd = linalg.expm(-1j * ham * t)
        else:
            print("Must choose one method to test")

        del ham
        del expd
Пример #2
0
def run_linalg(num_qubits=1, t=1, num_tests=1):
    print("\n\nLINALG")
    for i in range(num_tests):
        print("Num qubits : ", num_qubits)
        print("Line ", lineno(), "\t Memory % used : ", virtual_memory().free)
        ham = h.random_hamiltonian(num_qubits)
        print("Line ", lineno(), "\t Memory % used : ", virtual_memory().free)
        expd = linalg.expm(-1j * ham * t)
        print("Line ", lineno(), "\t Memory % used : ", virtual_memory().free)
        del ham
        del expd
        print("Line ", lineno(), "\t Memory % used : ", virtual_memory().free)
Пример #3
0
def run_exp_ham(num_qubits=1, t=1, num_tests=1, use_sparse=True):
    if use_sparse == True:
        print("\n\nSPARSE")
    elif use_sparse == False:
        print("\n\nNONSPARSE")
    else:
        print("use_sparse must be True or False")

    for i in range(num_tests):
        print("Num qubits : ", num_qubits)
        print("Line ", lineno(), "\t Memory % used : ", virtual_memory().free)
        ham = h.random_hamiltonian(num_qubits)
        print("Line ", lineno(), "\t Memory % used : ", virtual_memory().free)
        expd = h.exp_ham(ham, t, enable_sparse_functionality=use_sparse)
        print("Line ", lineno(), "\t Memory % used : ", virtual_memory().free)
        del ham
        del expd
        print("Line ", lineno(), "\t Memory % used : ", virtual_memory().free)
def run_exp_ham(num_qubits=1, t=1, num_tests=1):
    used_memory = virtual_memory().used

    for i in range(num_tests):

        if print_mem_status:
            print("Line ", lineno(), "\t Memory % used : ",
                  virtual_memory().used - used_memory)
        used_memory = virtual_memory().used
        ham = h.random_hamiltonian(num_qubits)

        #        if print_mem_status: print("Line ", lineno(), "\t Memory % used : ", virtual_memory().used - used_memory)
        #        used_memory = virtual_memory().used

        expd = h.exp_ham(ham, t, enable_sparse_functionality=True)
        #        expd = h.exp_ham(ham, t, enable_sparse_functionality=False)
        #        expd = linalg.expm(-1j*ham*t)
        #        if print_mem_status: print("Line ", lineno(), "\t Memory % used : ", virtual_memory().used - used_memory)
        #        used_memory = virtual_memory().used

        del ham
        del expd
Пример #5
0
import hamiltonian_exponentiation as h

sparse = True
ham = h.random_hamiltonian(8)
t = 1.4

#h.exp_ham(ham, t, enable_sparse_functionality = sparse)

h.test_exp_ham_function(max_qubit=10,
                        test_large_cases=True,
                        test_sparse_speedup=True,
                        num_tests=1,
                        threshold=1e-15)
Пример #6
0
import yep
import hamiltonian_exponentiation as h

num_qubits = 2
ham = h.random_hamiltonian(num_qubits)
t = 1

yep.start('yep_output.prof')
h.exp_ham(ham, t)
yep.stop()