some little work here
This commit is contained in:
@@ -23,13 +23,15 @@ time_uf = timeit.repeat("result_uf = gate_uf(qm_state, cl_state)"
|
||||
, number=1_000_000
|
||||
)
|
||||
|
||||
time_py = timeit.repeat("result_py = np.zeros(2**10, dtype=np.cdouble);"
|
||||
"result_py[0::2] = qm_state[1::2];"
|
||||
"result_py[1::2] = qm_state[0::2];"
|
||||
"cl_py = np.zeros(10, dtype=np.int8)"
|
||||
time_py = timeit.repeat(
|
||||
"result_py = np.zeros(2**10, dtype=np.cdouble);"
|
||||
"result_py[~bit_mask] = qm_state[bit_mask];"
|
||||
"result_py[bit_mask] = qm_state[~bit_mask];"
|
||||
"cl_py = np.zeros(10, dtype=np.int8)"
|
||||
, setup="import numpy as np;"
|
||||
"qm_state = np.zeros(2**10, dtype=np.cdouble);"
|
||||
"qm_state[0] = 1;"
|
||||
"bit_mask = np.array([1 if (i & (1 << 0)) else 0 for i in range(2**10)])"
|
||||
, repeat=5
|
||||
, number=1_000_000
|
||||
)
|
||||
@@ -38,10 +40,11 @@ print(" done")
|
||||
print("running test ...", end="", flush=True)
|
||||
result_uf, cl, m = gate_uf(qm_state, cl_state);
|
||||
|
||||
bit_mask = np.array([1 if (i & (1 << 0)) else 0 for i in range(2**10)]).astype(np.bool)
|
||||
result_py = np.zeros(2**10, dtype=np.cdouble)
|
||||
cl_py = np.zeros(10, dtype=np.int8)
|
||||
result_py[0::2] = qm_state[1::2]
|
||||
result_py[1::2] = qm_state[0::2]
|
||||
result_py[~bit_mask] = qm_state[bit_mask]
|
||||
result_py[bit_mask] = qm_state[~bit_mask]
|
||||
|
||||
assert np.allclose(result_py, result_uf)
|
||||
print(" done")
|
||||
|
||||
Reference in New Issue
Block a user