Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
fusion_cases.py
Go to the documentation of this file.
1 """Representative fused-runtime workload iterators for API tests (mirrors benchmarks fusion_case_selection)."""
2 
3 from __future__ import annotations
4 
5 from squander.partitioning.noisy_planner import build_phase3_continuity_partition_descriptor_set
6 
7 from .continuity import build_phase2_continuity_vqe
8 from .runtime import build_initial_parameters
9 from .workloads import iter_microcase_descriptor_sets, iter_structured_descriptor_sets
10 
11 CONTINUITY_QUBITS = (4, 6, 8, 10)
12 
13 
15  for qbit_num in CONTINUITY_QUBITS:
16  vqe, hamiltonian, topology = build_phase2_continuity_vqe(qbit_num)
18  parameters = build_initial_parameters(vqe.get_Parameter_Num())
19  metadata = {
20  "case_name": f"phase2_xxz_hea_q{qbit_num}_continuity",
21  "workload_id": f"phase2_xxz_hea_q{qbit_num}_continuity",
22  "case_kind": "continuity",
23  "qbit_num": qbit_num,
24  "topology": topology,
25  "continuity_energy_real": float(vqe.Optimization_Problem(parameters)),
26  }
27  yield metadata, descriptor_set, parameters, hamiltonian
28 
29 
31  for metadata, descriptor_set in iter_microcase_descriptor_sets():
32  case_metadata = dict(metadata)
33  case_metadata["workload_id"] = case_metadata.get("workload_id", case_metadata["case_name"])
34  case_metadata["case_kind"] = "microcase"
35  yield case_metadata, descriptor_set, build_initial_parameters(
36  descriptor_set.parameter_count
37  )
38 
39 
41  for metadata, descriptor_set in iter_structured_descriptor_sets():
42  case_metadata = dict(metadata)
43  case_metadata["case_kind"] = "structured_family"
44  yield case_metadata, descriptor_set, build_initial_parameters(
45  descriptor_set.parameter_count
46  )
def build_phase2_continuity_vqe
def build_phase3_continuity_partition_descriptor_set