1 """Runtime test helpers using squander.partitioning only (mirrors benchmarks partitioned_runtime.common).""" 3 from __future__
import annotations
10 from squander.partitioning.noisy_planner
import NoisyPartitionDescriptorSet
11 from squander.partitioning.noisy_runtime
import (
12 NoisyRuntimeExecutionResult,
13 execute_partitioned_density,
14 execute_partitioned_density_fused,
15 execute_sequential_density_reference,
18 PHASE3_RUNTIME_DENSITY_TOL = 1e-10
19 PHASE3_RUNTIME_ENERGY_TOL = 1e-8
23 return np.linspace(0.05, 0.05 * param_num, param_num, dtype=np.float64)
26 def density_energy(hamiltonian, density_matrix: np.ndarray) -> tuple[float, float]:
27 energy = np.trace(hamiltonian.dot(density_matrix))
28 return float(np.real(energy)), float(np.imag(energy))
32 if isinstance(density_matrix, DensityMatrix):
33 return np.asarray(density_matrix.to_numpy())
34 return np.asarray(density_matrix)
38 partitioned_density: DensityMatrix | np.ndarray,
39 reference_density: DensityMatrix | np.ndarray,
43 delta = partitioned - reference
45 "frobenius_norm_diff": float(np.linalg.norm(delta)),
46 "max_abs_diff": float(np.max(np.abs(delta))),
51 descriptor_set: NoisyPartitionDescriptorSet,
52 parameters: np.ndarray,
54 allow_fusion: bool =
False,
55 ) -> tuple[NoisyRuntimeExecutionResult, DensityMatrix, dict[str, Any]]:
63 runtime_result.density_matrix, reference_density
65 return runtime_result, reference_density, metrics
69 descriptor_set: NoisyPartitionDescriptorSet,
70 parameters: np.ndarray,
71 ) -> tuple[NoisyRuntimeExecutionResult, DensityMatrix, dict[str, Any]]:
73 descriptor_set, parameters, allow_fusion=
True def execute_sequential_density_reference
Execute a sequential density reference.
def coerce_density_matrix_array
def execute_partitioned_density
def build_density_comparison_metrics
def execute_partitioned_density_fused
def execute_fused_with_reference
def execute_partitioned_with_reference
def build_initial_parameters