Add datatype as an input in eval() [skip ci]
This commit is contained in:
@@ -3,8 +3,8 @@ from QiboCircuitConvertor import QiboCircuitToEinsum
|
|||||||
from cuquantum import contract
|
from cuquantum import contract
|
||||||
|
|
||||||
|
|
||||||
def eval(qibo_circ):
|
def eval(qibo_circ,datatype):
|
||||||
myconvertor = QiboCircuitToEinsum(qibo_circ, dtype="complex128")
|
myconvertor = QiboCircuitToEinsum(qibo_circ, dtype=datatype)
|
||||||
operands_expression = myconvertor.state_vector()
|
operands_expression = myconvertor.state_vector()
|
||||||
results = contract(*operands_expression)
|
results = contract(*operands_expression)
|
||||||
return results.flatten()
|
return results.flatten()
|
||||||
|
|||||||
@@ -32,7 +32,8 @@ def test_eval(nqubits: int):
|
|||||||
qibo_time, (qibo_circ, result_sv) = time(lambda: qibo_qft(nqubits, swaps=True))
|
qibo_time, (qibo_circ, result_sv) = time(lambda: qibo_qft(nqubits, swaps=True))
|
||||||
|
|
||||||
# Test Cuquantum
|
# Test Cuquantum
|
||||||
cutn_time, result_tn = time(lambda: qibotn.cutn.eval(qibo_circ))
|
data_type = "complex128"
|
||||||
|
cutn_time, result_tn = time(lambda: qibotn.cutn.eval(qibo_circ,data_type))
|
||||||
|
|
||||||
assert 1e-2 * qibo_time < cutn_time < 1e2 * qibo_time
|
assert 1e-2 * qibo_time < cutn_time < 1e2 * qibo_time
|
||||||
assert np.allclose(result_sv, result_tn), "Resulting dense vectors do not match"
|
assert np.allclose(result_sv, result_tn), "Resulting dense vectors do not match"
|
||||||
|
|||||||
Reference in New Issue
Block a user