代码封装
Some checks failed
Build wheels / build (ubuntu-latest, 3.11) (push) Has been cancelled
Build wheels / build (ubuntu-latest, 3.12) (push) Has been cancelled
Build wheels / build (ubuntu-latest, 3.13) (push) Has been cancelled
Tests / check (push) Has been cancelled
Tests / build (ubuntu-latest, 3.11) (push) Has been cancelled
Tests / build (ubuntu-latest, 3.12) (push) Has been cancelled
Tests / build (ubuntu-latest, 3.13) (push) Has been cancelled

This commit is contained in:
2026-05-18 22:58:57 +08:00
parent eed42dcfa9
commit f93c95b3a1
56 changed files with 3414 additions and 5849 deletions

View File

@@ -10,6 +10,11 @@ from qibotn.benchmark_cases import (
exact_pauli_sum,
)
from qibotn import cpu_expectation, mps_expectation, pauli_pattern, pauli_sum
from qibotn.backends.quimb import (
build_expectation_tn,
contract_tn,
search_contraction_tree,
)
def build_circuit(nqubits=6):
@@ -61,6 +66,31 @@ def test_public_cpu_expectation_api_matches_statevector():
assert math.isclose(value, exact, abs_tol=1e-12)
def test_public_quimb_torch_pipeline_matches_statevector():
circuit = build_circuit(nqubits=4)
observable = hamiltonians.SymbolicHamiltonian(form=X(0) * Z(1))
exact = exact_pauli_sum(circuit, [(1.0, (("X", 0), ("Z", 1)))], 4)
built = build_expectation_tn(
circuit,
observable,
dtype="complex128",
merge_1q=True,
merge_2q=True,
)
search = search_contraction_tree(
built.tn,
method="serial",
total_repeats=1,
max_time=30,
n_workers=1,
search_seed=0,
)
value = built.coeff * complex(contract_tn(built.tn, search.tree))
assert math.isclose(value.real, exact, abs_tol=1e-12)
def test_public_mps_expectation_api_accepts_pauli_pattern():
circuit = build_circuit()
exact_hamiltonian = hamiltonians.SymbolicHamiltonian(