quantum-debugger 0.8.0__tar.gz → 0.9.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/CHANGELOG.md +196 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/PKG-INFO +28 -26
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/README.md +29 -27
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/__init__.py +1 -1
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/__init__.py +126 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/adiabatic.py +66 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/channel_capacity.py +3 -2
- quantum_debugger-0.9.1/quantum_debugger/algorithms/classical_shadows.py +113 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/cloning.py +3 -3
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/contextuality.py +3 -1
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/decoherence_free.py +3 -1
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/distillation.py +8 -2
- quantum_debugger-0.9.1/quantum_debugger/algorithms/entanglement_growth.py +50 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/entanglement_negativity.py +58 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/hamiltonian_simulation.py +75 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/holevo.py +12 -4
- quantum_debugger-0.9.1/quantum_debugger/algorithms/hubbard.py +91 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/imaginary_time.py +67 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/jordan_wigner.py +101 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/kitaev_chain.py +69 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/krylov.py +79 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/level_statistics.py +87 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/loschmidt.py +72 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/magic_state.py +3 -1
- quantum_debugger-0.9.1/quantum_debugger/algorithms/many_body_correlations.py +99 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/mbqc.py +4 -2
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/nonlocality.py +1 -3
- quantum_debugger-0.9.1/quantum_debugger/algorithms/otoc.py +92 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/qec_noise.py +6 -4
- quantum_debugger-0.9.1/quantum_debugger/algorithms/quantum_phase_transition.py +62 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/schmidt.py +83 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/spin_squeezing.py +100 -0
- quantum_debugger-0.9.1/quantum_debugger/algorithms/ssh_model.py +71 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/steane_code.py +12 -2
- quantum_debugger-0.9.1/quantum_debugger/algorithms/thermal.py +67 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/density_matrix.py +15 -5
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/noise_models.py +18 -5
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger.egg-info/PKG-INFO +28 -26
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger.egg-info/SOURCES.txt +35 -0
- quantum_debugger-0.9.1/tests/test_adiabatic.py +61 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_channel_capacity.py +3 -1
- quantum_debugger-0.9.1/tests/test_classical_shadows.py +72 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_contextuality.py +15 -5
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_density_matrix.py +49 -18
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_distillation.py +4 -2
- quantum_debugger-0.9.1/tests/test_entanglement_growth.py +75 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_geometric_phase.py +8 -5
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_holevo.py +3 -1
- quantum_debugger-0.9.1/tests/test_hubbard.py +71 -0
- quantum_debugger-0.9.1/tests/test_imaginary_time.py +75 -0
- quantum_debugger-0.9.1/tests/test_jordan_wigner.py +89 -0
- quantum_debugger-0.9.1/tests/test_kitaev_chain.py +62 -0
- quantum_debugger-0.9.1/tests/test_krylov.py +74 -0
- quantum_debugger-0.9.1/tests/test_level_statistics.py +69 -0
- quantum_debugger-0.9.1/tests/test_loschmidt.py +87 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_magic_measures.py +11 -5
- quantum_debugger-0.9.1/tests/test_many_body_extra.py +130 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_mbqc.py +17 -5
- quantum_debugger-0.9.1/tests/test_otoc.py +77 -0
- quantum_debugger-0.9.1/tests/test_pauli_decompose.py +68 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_perfect_code.py +3 -1
- quantum_debugger-0.9.1/tests/test_schmidt.py +83 -0
- quantum_debugger-0.9.1/tests/test_spin_squeezing.py +44 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_steane_code.py +28 -12
- quantum_debugger-0.9.1/tests/test_thermal.py +73 -0
- quantum_debugger-0.9.1/tests/test_trotter_scaling.py +53 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_weak_values.py +9 -3
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise.py +88 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/AUTHORS.md +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/LICENSE +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/MANIFEST.in +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/bell_state_debug.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/benchmarks.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/grover_profiling.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/interactive_demo.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/qaoa_maxcut_example.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/qiskit_integration_demo.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/qml_basic_example.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/vqe_h2_example.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/amplitude_amplification.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/amplitude_estimation.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/arithmetic.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/bb84.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/bell_test.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/decomposition.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/discrimination.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/dynamical_decoupling.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/error_correction.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/error_detection.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/geometric_phase.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/grover.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/grover_optimize.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/hhl.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/loss_robustness.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/magic_measures.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/maxcut.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/metrology.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/multicontrol.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/oracles.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/perfect_code.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/petz.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/phase_estimation.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/protocols.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/qec_threshold.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/qft.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/quantum_counting.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/quantum_walk.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/randomized_benchmarking.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/sat_solver.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/shor.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/simon.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/spectroscopy.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/state_preparation.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/swap_test.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/uncertainty.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/vqe_solver.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/weak_values.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/zeno.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/_cuda_dll.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/aws_backend.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/base.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/base_backend.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/cupy_backend.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/gpu_backend.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/ibm_backend.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/numba_backend.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/numpy_backend.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/sparse_backend.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/benchmarks/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/benchmarks/optimization_benchmarks.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/benchmarks/qml_benchmarks.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/benchmarks/report_generator.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/benchmarks/scalability_benchmarks.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/core/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/core/circuit.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/core/gates.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/core/quantum_state.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/debugger/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/debugger/breakpoints.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/debugger/debugger.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/debugger/inspector.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/gpu/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/gpu/memory.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/gpu/mixed_precision.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/gpu/multi_gpu.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/cirq_adapter.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/cirq_bridge.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/pennylane_bridge.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/qiskit_adapter.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/qiskit_bridge.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/mitigation/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/mitigation/core/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/mitigation/core/extrapolator.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/mitigation/core/folder.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/mitigation/zne.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/composite_noise.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/hardware_profiles.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/noise_helpers.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/stochastic_sampler.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/optimization/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/optimization/circuit_compiler.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/optimization/gate_reduction.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/optimization/optimization_passes.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/optimization/transpiler.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/parallel/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/parallel/executor.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/profiler/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/profiler/metrics.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/profiler/profiler.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/ansatz_analysis.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/autoencoder.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/data_reuploading.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/qcnn.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/vqc.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/actor_critic.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/dqn.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/policy_gradient.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/qaoa.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/qgan.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/qrl.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/vqd.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/vqe.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/ansatz/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/ansatz/excitation_preserving.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/ansatz/real_amplitudes.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/ansatz/strongly_entangling.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/ansatz/two_local.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/automl/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/automl/ansatz_selector.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/automl/architecture_search.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/automl/auto_qnn.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/automl/hyperparameter_tuner.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/data/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/data/dataset.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/data/feature_maps.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/error_mitigation/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/error_mitigation/zne.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/gates/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/gates/parameterized.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hamiltonians/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hamiltonians/molecular.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hybrid/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hybrid/layers.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hybrid/pytorch_integration.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hybrid/tensorflow_integration.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/kernels/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/kernels/alignment.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/kernels/qsvm.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/kernels/quantum_kernel.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/mitigation/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/mitigation/cdr.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/mitigation/error_characterization.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/mitigation/noise_models.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/mitigation/pec.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/optimizers/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/optimizers/advanced.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/optimizers/basics.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/optimizers/spsa.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/base.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/encoding.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/losses.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/network.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/variational.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/training/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/transfer/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/transfer/fine_tuning.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/transfer/model_zoo.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/transfer/pretrained.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/transfer/serialization.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/utils/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/utils/gradients.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/stabilizer.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/tomography.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/visualization/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/visualization/bloch_sphere.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/visualization/state_viz.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger.egg-info/dependency_links.txt +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger.egg-info/requires.txt +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger.egg-info/top_level.txt +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/requirements.txt +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/setup.cfg +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/setup.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/cirq/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/cirq/test_cirq_advanced.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/cirq/test_cirq_edge_cases.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/cirq/test_cirq_integration.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/conftest.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/integration/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/integration/test_integration.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/integration/test_qiskit_integration.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_actor_critic.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_advanced_algorithms.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_advanced_optimizers.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_advanced_qml.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_ansatz_library.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_automl.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_dataset.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_dqn.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_edge_cases.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_hamiltonians.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_hybrid.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_kernels.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_mitigation.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_policy_gradient.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_qaoa.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_qml_parameterized_gates.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_qnn.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_spsa.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_transfer.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_transfer_extended.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_vqd.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_vqe.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_zne.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_algorithms.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_arithmetic.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_backends.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_bb84.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_bell_test.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_benchmarks.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_cloning.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_decoherence_free.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_decomposition.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_discrimination.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_dynamical_decoupling.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_error_correction.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_error_detection.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_grover_optimize.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_hamiltonian_simulation.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_integrations.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_loss_robustness.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_magic_state.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_maxcut.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_metrology.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_multicontrol.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_nonlocality.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_optimization.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_petz.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_protocols_shor.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_qec_noise.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_qec_threshold.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_randomized_benchmarking.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_sat_solver.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_simon.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_spectroscopy.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_stabilizer.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_state_preparation.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_tomography.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_uncertainty.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_vqe_solver.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_zeno.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/CONVERSION_TRACKER.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/__init__.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_advanced.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backend_comprehensive.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backend_integration.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backends.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backends_advanced.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backends_comprehensive.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backends_fast.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_circuit_noise.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_circuit_noise_advanced.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_circuit_noise_unique.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_compatibility.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_comprehensive.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_distribution.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_docstrings.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_error_handling.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_extreme.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_gpu_quick.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_hardware_profiles_extended.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_hardware_profiles_phase3.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_mitigation_comprehensive.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_mitigation_final.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_mitigation_observables.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_mitigation_zne.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_advanced.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_extreme.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_final.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_performance.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_quantum_info.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_ultimate.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_parallel.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_performance.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_production.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qiskit_complex.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qiskit_extreme.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qiskit_ultra.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qml_advanced.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qml_comprehensive.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qml_memory.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qml_threading.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qml_tricky.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_quickstart.py +0 -0
- {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_validation.py +0 -0
|
@@ -5,6 +5,202 @@ All notable changes to QuantumDebugger will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.9.1]
|
|
9
|
+
|
|
10
|
+
Theme: correctness patch for the depolarizing noise channel.
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **`DepolarizingNoise.get_kraus_operators()`** now implements the same channel as
|
|
14
|
+
`DepolarizingNoise.apply()` and the class docstring — the Pauli-error convention
|
|
15
|
+
`ρ → (1−p)ρ + (p/3)(XρX + YρY + ZρZ)`, giving `K₀ = √(1−p)·I` and `K₁₋₃ = √(p/3)·{X, Y, Z}`.
|
|
16
|
+
It previously used a `√(p/4)` weighting (the uniform `ρ → (1−p)ρ + pI/2` convention), which
|
|
17
|
+
agrees with `apply()` only under the substitution `p → 4p/3`. Because
|
|
18
|
+
`StochasticNoiseSampler` consumes the Kraus path, Monte-Carlo–sampled depolarizing noise was
|
|
19
|
+
silently `4/3×` too strong for a given `p`. The operators remain trace-preserving
|
|
20
|
+
(`Σ Kᵢ†Kᵢ = I`). Added channel-equivalence, trace-preservation, edge-case, and sampler
|
|
21
|
+
regression tests. (Present in 0.8.0 and 0.9.0; fixed here.)
|
|
22
|
+
|
|
23
|
+
## [0.9.0]
|
|
24
|
+
|
|
25
|
+
Theme: quantum chemistry, many-body physics & advanced simulation. Fermionic systems
|
|
26
|
+
(Jordan-Wigner, Fermi-Hubbard, the Kitaev topological chain), ground- and
|
|
27
|
+
excited-state solvers (chemistry-via-VQE with Pauli decomposition, imaginary-time
|
|
28
|
+
cooling, Krylov/Lanczos, adiabatic evolution), finite-temperature physics (Gibbs
|
|
29
|
+
states & thermodynamics), quantum dynamics (Trotter error scaling, Loschmidt echo &
|
|
30
|
+
DQPTs, out-of-time-order correlators, entanglement growth), quantum chaos (level-
|
|
31
|
+
spacing statistics), metrology (spin squeezing, mixed-state QFI), and the modern
|
|
32
|
+
measurement/tensor-network toolkit (classical shadows, Schmidt decomposition & the
|
|
33
|
+
area law). Every routine verified against a closed form or an independent
|
|
34
|
+
computation. (Open systems, noise, and fault tolerance landed in 0.8.0.)
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
- **SSH topological insulator** (`algorithms.ssh_hamiltonian`) — the Su-Schrieffer-Heeger
|
|
38
|
+
chain with alternating hoppings `v, w`, the textbook 1D topological insulator; the
|
|
39
|
+
single-particle Hamiltonian is exactly diagonalized and verified to have a
|
|
40
|
+
chiral-symmetric spectrum.
|
|
41
|
+
- **SSH winding number** (`algorithms.ssh_winding_number`) — the bulk `Z` invariant of the
|
|
42
|
+
chiral class BDI: `1` (topological) when `|w| > |v|`, `0` (trivial) otherwise.
|
|
43
|
+
- **SSH edge modes** (`algorithms.ssh_zero_modes`, `ssh_edge_polarization`) — the
|
|
44
|
+
bulk-boundary correspondence made concrete: `2` protected zero-energy modes localized on
|
|
45
|
+
the ends in the topological phase, `0` in the trivial phase, verified against the exact
|
|
46
|
+
spectrum and eigenvectors.
|
|
47
|
+
- **Ground-state fidelity** (`algorithms.ground_state_fidelity`) — the overlap
|
|
48
|
+
`|<psi(lambda)|psi(lambda+dlambda)>|` between neighbouring ground states, near 1 inside a
|
|
49
|
+
phase and dipping sharply at a quantum phase transition.
|
|
50
|
+
- **Fidelity susceptibility** (`algorithms.fidelity_susceptibility`, `tfim_critical_field`)
|
|
51
|
+
— the intensive response `chi_F = 2(1-F)/dlambda^2` that peaks at a critical point;
|
|
52
|
+
verified to locate the transverse-field Ising transition, its finite-size peak drifting
|
|
53
|
+
toward the exact `h_c = 1` as the system grows.
|
|
54
|
+
- **Connected correlation functions** (`algorithms.connected_correlation`) —
|
|
55
|
+
`<O_i O_j> - <O_i><O_j>`, the probe of correlations beyond mean field; verified `1` on a
|
|
56
|
+
GHZ state and `0` on a product state.
|
|
57
|
+
- **Correlation length** (`algorithms.correlation_length`) — `xi` from the exponential
|
|
58
|
+
decay of the connected correlator; verified `0` for a product state and growing toward
|
|
59
|
+
criticality for the TFIM ground state.
|
|
60
|
+
- **Static structure factor** (`algorithms.structure_factor`) — `S(k)` from the spatial
|
|
61
|
+
correlations, the Fourier probe of order; verified to Bragg-peak at `k=0` for a
|
|
62
|
+
ferromagnet and `k=pi` for an antiferromagnet.
|
|
63
|
+
- **Entanglement negativity** (`algorithms.negativity`, `logarithmic_negativity`) — the
|
|
64
|
+
computable mixed-state entanglement measure from the partial transpose; verified
|
|
65
|
+
`E_N = 1` for a Bell pair, `0` for a product state.
|
|
66
|
+
- **Peres-Horodecki (PPT) criterion** (`algorithms.partial_transpose`, `is_entangled_ppt`)
|
|
67
|
+
— the partial transpose and its negative-eigenvalue entanglement witness; verified to
|
|
68
|
+
reproduce the Werner-state entanglement threshold `p > 1/3`.
|
|
69
|
+
- **Schmidt decomposition & the area law** (`algorithms.schmidt_decomposition`,
|
|
70
|
+
`truncation_fidelity`, `area_law_compressibility`) — the tensor-network bridge:
|
|
71
|
+
write any bipartite pure state as `sum lambda_i |i>_A|i>_B` via SVD. Verified that a
|
|
72
|
+
Bell pair gives two equal Schmidt values (1 bit), a product state rank 1, the values
|
|
73
|
+
are normalized and descending, and the Schmidt entropy matches the density-matrix
|
|
74
|
+
entanglement entropy exactly. The headline result: a gapped 1D ground state (TFIM)
|
|
75
|
+
keeps > 99% of its weight in a handful of Schmidt values (area law → compressible to
|
|
76
|
+
a low-bond-dimension MPS), while a random volume-law state has a flat spectrum that
|
|
77
|
+
refuses to compress — exactly why matrix product states work.
|
|
78
|
+
- **Classical shadows** (`algorithms.collect_shadows`, `estimate_observable`,
|
|
79
|
+
`shadow_estimates`) — estimate many observables from few measurements
|
|
80
|
+
(Huang-Kueng-Preskill): measure each qubit in a random Pauli basis, build the
|
|
81
|
+
unbiased single-shot snapshot `prod_q (3|b_q><b_q| - I)`, and read off `<O> =
|
|
82
|
+
Tr(O rho_hat)` for *any* observable from the *same* dataset. Verified: Bell-pair
|
|
83
|
+
correlators (`<XX>=1`, `<YY>=-1`, `<ZZ>=1`, `<ZI>=0`) all recovered from one
|
|
84
|
+
collection, the error shrinks with shot count, `<I...I>=1` exactly per snapshot, and
|
|
85
|
+
a shadow set is reusable across observables — the cost set by observable locality,
|
|
86
|
+
not Hilbert-space dimension.
|
|
87
|
+
- **Spin squeezing (one-axis twisting)** (`algorithms.one_axis_twisting`,
|
|
88
|
+
`best_squeezing`) — metrologically useful entanglement that beats the standard
|
|
89
|
+
quantum limit. Evolving a coherent spin state under `H = chi J_z^2` (Kitagawa-Ueda)
|
|
90
|
+
redistributes the transverse noise; the Wineland parameter `xi^2 = N min Var(J_perp)
|
|
91
|
+
/ |<J>|^2` (minimum variance computed in closed form from the 2x2 covariance matrix)
|
|
92
|
+
drops below 1. Verified: `xi^2 = 1` exactly at zero twisting (the SQL), squeezing
|
|
93
|
+
reaches -2.9 to -4.5 dB, improves with atom number, and `1/xi^2` gives the
|
|
94
|
+
phase-sensitivity gain — the interferometric payoff of the entanglement.
|
|
95
|
+
- **Kitaev chain (topological superconductor)** (`algorithms.kitaev_chain_hamiltonian`,
|
|
96
|
+
`kitaev_ground_degeneracy`) — the simplest model with Majorana edge modes, built on
|
|
97
|
+
the Jordan-Wigner operators: `-mu sum n_j - t sum hopping + Delta sum pairing`.
|
|
98
|
+
Verified the topological hallmarks — for `|mu| < 2t` the ground state is doubly
|
|
99
|
+
degenerate (splitting < 1e-9 at `mu = 0`) with the bulk gap staying open, while for
|
|
100
|
+
`|mu| > 2t` it is unique and gapped; the topological flag flips exactly at the
|
|
101
|
+
`|mu| = 2t` transition; fermion parity is conserved; and the ground-state splitting
|
|
102
|
+
decays *exponentially* with chain length (halving per site) — the localization of
|
|
103
|
+
the two Majorana modes at the chain ends, the nonlocal storage behind topological
|
|
104
|
+
qubits.
|
|
105
|
+
- **Level-spacing statistics (quantum chaos)** (`algorithms.level_spacing_ratio`,
|
|
106
|
+
`goe_reference`, `poisson_reference`, `classify_spectrum`) — the symmetry-free
|
|
107
|
+
Oganesyan-Huse gap-ratio `<r>` that distinguishes integrable from chaotic spectra
|
|
108
|
+
without unfolding. Validated against both defining ensembles: Gaussian Orthogonal
|
|
109
|
+
Ensemble spectra give `<r> ~ 0.531` (Wigner-Dyson level repulsion) and uncorrelated
|
|
110
|
+
Poisson spectra give `~ 0.386`, with a rigid equally-spaced spectrum giving exactly
|
|
111
|
+
1. `classify_spectrum` labels a spectrum against these universal values.
|
|
112
|
+
Honestly documented: physical Hamiltonians only show the clean values within a
|
|
113
|
+
single symmetry sector (mixed sectors bias toward Poisson).
|
|
114
|
+
- **Entanglement growth after a quench** (`algorithms.entanglement_growth`) — how
|
|
115
|
+
isolated systems thermalize: start in a product state, evolve under an entangling
|
|
116
|
+
Hamiltonian, and watch a subregion's entanglement entropy grow and saturate near
|
|
117
|
+
the volume-law value. Verified against the analytic two-qubit case (an `X x X`
|
|
118
|
+
quench of `|00>` gives exactly the binary entropy `h(sin^2(gt))`, reaching 1 bit at
|
|
119
|
+
a quarter period), and for larger TFIM/Heisenberg quenches the entropy starts at 0,
|
|
120
|
+
grows, saturates below its `min(|A|, n-|A|)` bound, and stays static for an energy
|
|
121
|
+
eigenstate.
|
|
122
|
+
- **Out-of-time-order correlators (scrambling)** (`algorithms.otoc`,
|
|
123
|
+
`scrambling_time`) — the butterfly effect of quantum chaos: the growth of
|
|
124
|
+
`C(t) = <|[W(t), V]|^2>` as a local operator spreads across the lattice. Verified
|
|
125
|
+
the exact structure — `C(0) = 0` for spatially-separated operators (they commute),
|
|
126
|
+
`C(0) = 4` for anticommuting same-site operators, `C(t) >= 0` always, and the exact
|
|
127
|
+
identity `C(t) = 2(1 - Re F(t))` with the OTOC `F(0) = 1`. `scrambling_time` tracks
|
|
128
|
+
a perturbation from one edge to the other and finds when it arrives — the far qubit
|
|
129
|
+
lagging the near one, the operator light cone made quantitative.
|
|
130
|
+
- **Loschmidt echo & dynamical quantum phase transitions**
|
|
131
|
+
(`algorithms.loschmidt_echo`, `rate_function`, `quench_dynamics`) — quench a state
|
|
132
|
+
under a Hamiltonian and track `L(t) = |<psi_0|e^{-iHt}|psi_0>|^2` and its rate
|
|
133
|
+
function `-ln L / N`, whose non-analytic cusps mark DQPTs. Verified: an eigenstate
|
|
134
|
+
never dephases (`L = 1`), a two-level superposition reproduces the analytic
|
|
135
|
+
`1 - sin^2(2θ) sin^2(Δt/2)` exactly, the rate function peaks precisely where the
|
|
136
|
+
echo dips, and at `θ = π/4` the echo hits zero — a genuine dynamical phase
|
|
137
|
+
transition where the evolved state becomes orthogonal to the start.
|
|
138
|
+
- **Krylov subspace diagonalization (Lanczos)** (`algorithms.krylov_spectrum`,
|
|
139
|
+
`krylov_ground_energy`) — build a small subspace `span{|psi>, H|psi>, ...,
|
|
140
|
+
H^{m-1}|psi>}` and diagonalize `H` inside it. The Ritz values converge to the exact
|
|
141
|
+
extreme eigenvalues — ground energy to machine precision by `m = 8` on TFIM
|
|
142
|
+
(Fermi-Hubbard, Heisenberg too), and, unlike imaginary-time evolution, the lowest
|
|
143
|
+
Ritz values recover the low-lying *excited* states as well. Solved through a
|
|
144
|
+
thresholded generalized eigenproblem for stability against the near-parallel Krylov
|
|
145
|
+
vectors; Ritz values are provably bracketed by the exact spectrum.
|
|
146
|
+
- **Adiabatic quantum computation** (`algorithms.adiabatic_evolution`) — the
|
|
147
|
+
alternative computing paradigm: start in the easy ground state of a driver
|
|
148
|
+
Hamiltonian and slowly interpolate `H(s) = (1-s)H_i + s H_f` to the problem
|
|
149
|
+
Hamiltonian, ending in *its* ground state. Verified across both regimes of the
|
|
150
|
+
adiabatic theorem: a slow sweep (T=50) reaches the target ground state at fidelity
|
|
151
|
+
> 0.99, a fast one (T=0.5) is left excited at < 0.5 (diabatic transition), fidelity
|
|
152
|
+
is monotone in the total time, and the minimum spectral gap along the path is
|
|
153
|
+
tracked — the quantity that sets how slow "slow enough" must be.
|
|
154
|
+
- **Trotter error scaling** (`algorithms.trotter_unitary`,
|
|
155
|
+
`trotter_error_scaling`) — assemble the full Trotterized evolution operator and
|
|
156
|
+
measure how its error `|| U_trotter - exp(-iHt) ||` shrinks with the step count.
|
|
157
|
+
Verified against the theoretical rates: the first-order formula converges as
|
|
158
|
+
`~ t^2/n` (measured log-log slope -1.03) and the symmetric second-order Suzuki
|
|
159
|
+
formula as `~ t^3/n^2` (slope -2.02) on TFIM and Heisenberg Hamiltonians, with
|
|
160
|
+
second order strictly beating first at fixed step count — quantifying the accuracy
|
|
161
|
+
of Hamiltonian-simulation circuits.
|
|
162
|
+
- **Imaginary-time evolution** (`algorithms.imaginary_time_evolution`) — cool any
|
|
163
|
+
state to a Hamiltonian's ground state via normalized `e^{-tau H}`, the engine
|
|
164
|
+
behind QITE and projector Monte Carlo — no optimizer, no local minima. Verified to
|
|
165
|
+
converge to the exact ground energy (Fermi-Hubbard, TFIM, Heisenberg) with the
|
|
166
|
+
energy decreasing monotonically and the converged state a true ground eigenstate.
|
|
167
|
+
Honestly bounded: because the ground component decays slowest, even a start made
|
|
168
|
+
orthogonal to the ground state still cools *to* it (its ~1e-16 residual overlap is
|
|
169
|
+
re-amplified) — so plain ITE targets the ground state, never an excited level.
|
|
170
|
+
- **Gibbs states & quantum thermodynamics** (`algorithms.gibbs_state`,
|
|
171
|
+
`partition_function`, `thermal_properties`) — finite-temperature physics of any
|
|
172
|
+
Hamiltonian: `rho(beta) = e^{-beta H}/Z` and its thermodynamic potentials. Verified
|
|
173
|
+
the full set of identities — `beta -> 0` gives the maximally mixed `I/d` (entropy
|
|
174
|
+
`ln d`), `beta -> infinity` projects onto the ground state (entropy 0), the
|
|
175
|
+
Helmholtz free energy satisfies `F = -ln Z / beta = E - S/beta` exactly, entropy is
|
|
176
|
+
monotone in temperature, heat capacity is non-negative, and a single spin
|
|
177
|
+
reproduces the analytic `<H> = -tanh(beta)`, `Z = 2 cosh(beta)`. Applied to the
|
|
178
|
+
Fermi-Hubbard Hamiltonian, this gives its thermal state directly.
|
|
179
|
+
- **Pauli decomposition + chemistry-via-VQE**
|
|
180
|
+
(`algorithms.pauli_decompose`) — decompose any Hermitian matrix into weighted
|
|
181
|
+
Pauli strings (`c_P = Tr(P H)/2^n`), the step that turns a dense molecular or
|
|
182
|
+
Fermi-Hubbard Hamiltonian into something a gate-based algorithm can run. Verified
|
|
183
|
+
to round-trip random Hermitian operators exactly and to preserve the full
|
|
184
|
+
spectrum; feeding the decomposed Fermi-Hubbard dimer (and a hopping chain) to the
|
|
185
|
+
existing VQE solver recovers the exact ground energy to ~1e-11 — the complete
|
|
186
|
+
fermion → qubit → variational-ground-state pipeline.
|
|
187
|
+
- **Fermi-Hubbard model** (`algorithms.fermi_hubbard_hamiltonian`,
|
|
188
|
+
`hubbard_ground_energy`, `hubbard_dimer_energy`) — interacting electrons on a
|
|
189
|
+
lattice, built on the Jordan-Wigner operators: hopping `t` vs on-site repulsion
|
|
190
|
+
`U`, two spin-orbitals per site. Verified: the Hamiltonian conserves total and
|
|
191
|
+
per-spin particle number, and the exactly-solvable half-filled two-site dimer
|
|
192
|
+
reproduces the analytic ground energy `(U - sqrt(U^2 + 16t^2))/2` at every `U`,
|
|
193
|
+
interpolating from the non-interacting `-2t` (`U = 0`) to the Heisenberg
|
|
194
|
+
antiferromagnet `-4t^2/U` (large `U`) — the Mott physics in miniature.
|
|
195
|
+
- **Jordan-Wigner transformation** (`algorithms.jw_annihilation`, `jw_creation`,
|
|
196
|
+
`jw_number`, `jw_total_number`, `hopping_hamiltonian`, `anticommutation_error`) —
|
|
197
|
+
the bridge from fermions to qubits that makes quantum chemistry simulable. Mode
|
|
198
|
+
`j` maps to `(prod_{k<j} Z_k) sigma_j^-`; verified that the operators satisfy the
|
|
199
|
+
fermionic algebra `{a_i, a_j} = 0`, `{a_i, a_j^dagger} = delta_ij` exactly, that
|
|
200
|
+
number operators are {0,1} projectors, that `(a^dagger)^2 = 0` (Pauli exclusion),
|
|
201
|
+
and that the tight-binding hopping Hamiltonian reproduces the exact band
|
|
202
|
+
`-2t cos(k)` (open chain and ring) while conserving particle number.
|
|
203
|
+
|
|
8
204
|
## [0.8.0]
|
|
9
205
|
|
|
10
206
|
Theme: a comprehensive quantum-information-theory layer on the two simulation
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: quantum-debugger
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.1
|
|
4
4
|
Summary: A quantum simulation and debugging toolkit: state-vector, Clifford/stabilizer, and density-matrix (open-systems) engines, with a broad algorithm library, error correction under noise, quantum machine learning, GPU acceleration, and multi-framework support (Qiskit, PennyLane, Cirq, TensorFlow, PyTorch).
|
|
5
5
|
Home-page: https://github.com/Raunakg2005/quantum-debugger
|
|
6
6
|
Author: Raunak Kumar Gupta
|
|
@@ -86,31 +86,33 @@ Dynamic: summary
|
|
|
86
86
|
|
|
87
87
|
A powerful Python library for quantum circuit debugging, state inspection, performance analysis, and quantum machine learning. From basic circuits to QML with one-line AutoML.
|
|
88
88
|
|
|
89
|
-
## What's New in v0.
|
|
89
|
+
## What's New in v0.9.1
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
Correctness patch: **`DepolarizingNoise.get_kraus_operators()`** now implements the same
|
|
92
|
+
channel as `apply()` and the class docstring — the Pauli-error convention
|
|
93
|
+
`ρ → (1−p)ρ + (p/3)(XρX + YρY + ZρZ)` (`K₀ = √(1−p)·I`, `K₁₋₃ = √(p/3)·{X, Y, Z}`). The old
|
|
94
|
+
`√(p/4)` weighting made `StochasticNoiseSampler`'s Monte-Carlo depolarizing noise `4/3×` too
|
|
95
|
+
strong for a given `p`. Trace preservation is unchanged; channel-equivalence and sampler
|
|
96
|
+
regression tests added. See [CHANGELOG.md](CHANGELOG.md).
|
|
93
97
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
-
|
|
103
|
-
|
|
104
|
-
- **
|
|
105
|
-
|
|
106
|
-
- **
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
(`O(n^3)`, works on hundreds of qubits), plus a quantum multiplier and a
|
|
113
|
-
ripple-carry subtractor.
|
|
98
|
+
## What's New in v0.9.0
|
|
99
|
+
|
|
100
|
+
Quantum **chemistry, many-body physics & advanced simulation** — every routine verified
|
|
101
|
+
against a closed form or an independent computation:
|
|
102
|
+
|
|
103
|
+
- **Fermionic systems** — Jordan-Wigner transform, the Fermi-Hubbard model, and the
|
|
104
|
+
Kitaev topological chain (Majorana edge modes).
|
|
105
|
+
- **Ground- & excited-state solvers** — chemistry via VQE with Pauli decomposition,
|
|
106
|
+
imaginary-time cooling, Krylov/Lanczos, and adiabatic evolution.
|
|
107
|
+
- **Finite-temperature physics** — Gibbs states and thermodynamic quantities.
|
|
108
|
+
- **Quantum dynamics** — Trotter error scaling, the Loschmidt echo & dynamical quantum
|
|
109
|
+
phase transitions, out-of-time-order correlators (scrambling), and entanglement growth.
|
|
110
|
+
- **Quantum chaos** — level-spacing statistics (GOE vs Poisson).
|
|
111
|
+
- **Metrology** — spin squeezing and mixed-state quantum Fisher information.
|
|
112
|
+
- **Modern measurement & tensor-network toolkit** — classical shadows, Schmidt
|
|
113
|
+
decomposition, and the area law.
|
|
114
|
+
|
|
115
|
+
(Open systems, noise, and fault tolerance shipped in v0.8.0.)
|
|
114
116
|
|
|
115
117
|
See [CHANGELOG.md](CHANGELOG.md) for the full, itemized list.
|
|
116
118
|
|
|
@@ -128,7 +130,7 @@ A **second simulation engine** plus a large, verified quantum-algorithms library
|
|
|
128
130
|
- **VQE** ground-state solver converges to machine precision on larger chains
|
|
129
131
|
(BFGS optimizer).
|
|
130
132
|
|
|
131
|
-
###
|
|
133
|
+
### v0.8.0 — density-matrix engine & open systems
|
|
132
134
|
- **Density-matrix simulator** (`DensityMatrix`) — open quantum systems with Kraus
|
|
133
135
|
channels, Lindblad master-equation evolution, and channel metrics (process /
|
|
134
136
|
average gate fidelity, Choi matrix, CPTP checks).
|
|
@@ -497,5 +499,5 @@ If you use quantum-debugger in your research, please cite:
|
|
|
497
499
|
|
|
498
500
|
---
|
|
499
501
|
|
|
500
|
-
**Version:** 0.
|
|
502
|
+
**Version:** 0.9.1 (latest on PyPI) · 0.9.0, 0.8.0 (previous)
|
|
501
503
|
**Last Updated:** August 2026
|
|
@@ -11,31 +11,33 @@
|
|
|
11
11
|
|
|
12
12
|
A powerful Python library for quantum circuit debugging, state inspection, performance analysis, and quantum machine learning. From basic circuits to QML with one-line AutoML.
|
|
13
13
|
|
|
14
|
-
## What's New in v0.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- **
|
|
37
|
-
|
|
38
|
-
|
|
14
|
+
## What's New in v0.9.1
|
|
15
|
+
|
|
16
|
+
Correctness patch: **`DepolarizingNoise.get_kraus_operators()`** now implements the same
|
|
17
|
+
channel as `apply()` and the class docstring — the Pauli-error convention
|
|
18
|
+
`ρ → (1−p)ρ + (p/3)(XρX + YρY + ZρZ)` (`K₀ = √(1−p)·I`, `K₁₋₃ = √(p/3)·{X, Y, Z}`). The old
|
|
19
|
+
`√(p/4)` weighting made `StochasticNoiseSampler`'s Monte-Carlo depolarizing noise `4/3×` too
|
|
20
|
+
strong for a given `p`. Trace preservation is unchanged; channel-equivalence and sampler
|
|
21
|
+
regression tests added. See [CHANGELOG.md](CHANGELOG.md).
|
|
22
|
+
|
|
23
|
+
## What's New in v0.9.0
|
|
24
|
+
|
|
25
|
+
Quantum **chemistry, many-body physics & advanced simulation** — every routine verified
|
|
26
|
+
against a closed form or an independent computation:
|
|
27
|
+
|
|
28
|
+
- **Fermionic systems** — Jordan-Wigner transform, the Fermi-Hubbard model, and the
|
|
29
|
+
Kitaev topological chain (Majorana edge modes).
|
|
30
|
+
- **Ground- & excited-state solvers** — chemistry via VQE with Pauli decomposition,
|
|
31
|
+
imaginary-time cooling, Krylov/Lanczos, and adiabatic evolution.
|
|
32
|
+
- **Finite-temperature physics** — Gibbs states and thermodynamic quantities.
|
|
33
|
+
- **Quantum dynamics** — Trotter error scaling, the Loschmidt echo & dynamical quantum
|
|
34
|
+
phase transitions, out-of-time-order correlators (scrambling), and entanglement growth.
|
|
35
|
+
- **Quantum chaos** — level-spacing statistics (GOE vs Poisson).
|
|
36
|
+
- **Metrology** — spin squeezing and mixed-state quantum Fisher information.
|
|
37
|
+
- **Modern measurement & tensor-network toolkit** — classical shadows, Schmidt
|
|
38
|
+
decomposition, and the area law.
|
|
39
|
+
|
|
40
|
+
(Open systems, noise, and fault tolerance shipped in v0.8.0.)
|
|
39
41
|
|
|
40
42
|
See [CHANGELOG.md](CHANGELOG.md) for the full, itemized list.
|
|
41
43
|
|
|
@@ -53,7 +55,7 @@ A **second simulation engine** plus a large, verified quantum-algorithms library
|
|
|
53
55
|
- **VQE** ground-state solver converges to machine precision on larger chains
|
|
54
56
|
(BFGS optimizer).
|
|
55
57
|
|
|
56
|
-
###
|
|
58
|
+
### v0.8.0 — density-matrix engine & open systems
|
|
57
59
|
- **Density-matrix simulator** (`DensityMatrix`) — open quantum systems with Kraus
|
|
58
60
|
channels, Lindblad master-equation evolution, and channel metrics (process /
|
|
59
61
|
average gate fidelity, Choi matrix, CPTP checks).
|
|
@@ -422,5 +424,5 @@ If you use quantum-debugger in your research, please cite:
|
|
|
422
424
|
|
|
423
425
|
---
|
|
424
426
|
|
|
425
|
-
**Version:** 0.
|
|
427
|
+
**Version:** 0.9.1 (latest on PyPI) · 0.9.0, 0.8.0 (previous)
|
|
426
428
|
**Last Updated:** August 2026
|
|
@@ -52,6 +52,9 @@ from .hamiltonian_simulation import (
|
|
|
52
52
|
trotter_circuit,
|
|
53
53
|
hamiltonian_matrix,
|
|
54
54
|
pauli_term_matrix,
|
|
55
|
+
pauli_decompose,
|
|
56
|
+
trotter_unitary,
|
|
57
|
+
trotter_error_scaling,
|
|
55
58
|
)
|
|
56
59
|
from .decomposition import (
|
|
57
60
|
zyz_decompose,
|
|
@@ -163,6 +166,71 @@ from .error_detection import (
|
|
|
163
166
|
from .mbqc import cluster_pair, mbqc_rotation
|
|
164
167
|
from .weak_values import weak_value, weak_measurement_shift, weak_value_demo
|
|
165
168
|
from .petz import petz_recovery, petz_code_recovery
|
|
169
|
+
from .jordan_wigner import (
|
|
170
|
+
jw_annihilation,
|
|
171
|
+
jw_creation,
|
|
172
|
+
jw_number,
|
|
173
|
+
jw_total_number,
|
|
174
|
+
hopping_hamiltonian,
|
|
175
|
+
anticommutation_error,
|
|
176
|
+
)
|
|
177
|
+
from .hubbard import (
|
|
178
|
+
fermi_hubbard_hamiltonian,
|
|
179
|
+
hubbard_ground_energy,
|
|
180
|
+
hubbard_dimer_energy,
|
|
181
|
+
)
|
|
182
|
+
from .thermal import (
|
|
183
|
+
gibbs_state,
|
|
184
|
+
partition_function,
|
|
185
|
+
thermal_properties,
|
|
186
|
+
)
|
|
187
|
+
from .imaginary_time import imaginary_time_evolution
|
|
188
|
+
from .adiabatic import adiabatic_evolution
|
|
189
|
+
from .krylov import krylov_spectrum, krylov_ground_energy
|
|
190
|
+
from .loschmidt import loschmidt_echo, rate_function, quench_dynamics
|
|
191
|
+
from .otoc import otoc, scrambling_time
|
|
192
|
+
from .entanglement_growth import entanglement_growth
|
|
193
|
+
from .level_statistics import (
|
|
194
|
+
level_spacing_ratio,
|
|
195
|
+
goe_reference,
|
|
196
|
+
poisson_reference,
|
|
197
|
+
classify_spectrum,
|
|
198
|
+
)
|
|
199
|
+
from .kitaev_chain import kitaev_chain_hamiltonian, kitaev_ground_degeneracy
|
|
200
|
+
from .spin_squeezing import one_axis_twisting, best_squeezing
|
|
201
|
+
from .classical_shadows import (
|
|
202
|
+
collect_shadows,
|
|
203
|
+
estimate_observable,
|
|
204
|
+
shadow_estimates,
|
|
205
|
+
)
|
|
206
|
+
from .schmidt import (
|
|
207
|
+
schmidt_decomposition,
|
|
208
|
+
truncation_fidelity,
|
|
209
|
+
area_law_compressibility,
|
|
210
|
+
)
|
|
211
|
+
from .ssh_model import (
|
|
212
|
+
ssh_hamiltonian,
|
|
213
|
+
ssh_winding_number,
|
|
214
|
+
ssh_zero_modes,
|
|
215
|
+
ssh_edge_polarization,
|
|
216
|
+
)
|
|
217
|
+
from .quantum_phase_transition import (
|
|
218
|
+
ground_state_fidelity,
|
|
219
|
+
fidelity_susceptibility,
|
|
220
|
+
tfim_critical_field,
|
|
221
|
+
)
|
|
222
|
+
from .many_body_correlations import (
|
|
223
|
+
connected_correlation,
|
|
224
|
+
correlation_length,
|
|
225
|
+
structure_factor,
|
|
226
|
+
expectation,
|
|
227
|
+
)
|
|
228
|
+
from .entanglement_negativity import (
|
|
229
|
+
partial_transpose,
|
|
230
|
+
negativity,
|
|
231
|
+
logarithmic_negativity,
|
|
232
|
+
is_entangled_ppt,
|
|
233
|
+
)
|
|
166
234
|
from .spectroscopy import unitary_eigenphase, hermitian_eigenvalue
|
|
167
235
|
|
|
168
236
|
__all__ = [
|
|
@@ -213,6 +281,9 @@ __all__ = [
|
|
|
213
281
|
"trotter_circuit",
|
|
214
282
|
"hamiltonian_matrix",
|
|
215
283
|
"pauli_term_matrix",
|
|
284
|
+
"pauli_decompose",
|
|
285
|
+
"trotter_unitary",
|
|
286
|
+
"trotter_error_scaling",
|
|
216
287
|
# Gate decomposition
|
|
217
288
|
"zyz_decompose",
|
|
218
289
|
"abc_decomposition",
|
|
@@ -333,6 +404,61 @@ __all__ = [
|
|
|
333
404
|
"weak_value_demo",
|
|
334
405
|
"petz_recovery",
|
|
335
406
|
"petz_code_recovery",
|
|
407
|
+
"jw_annihilation",
|
|
408
|
+
"jw_creation",
|
|
409
|
+
"jw_number",
|
|
410
|
+
"jw_total_number",
|
|
411
|
+
"hopping_hamiltonian",
|
|
412
|
+
"anticommutation_error",
|
|
413
|
+
"fermi_hubbard_hamiltonian",
|
|
414
|
+
"hubbard_ground_energy",
|
|
415
|
+
"hubbard_dimer_energy",
|
|
416
|
+
"gibbs_state",
|
|
417
|
+
"partition_function",
|
|
418
|
+
"thermal_properties",
|
|
419
|
+
"imaginary_time_evolution",
|
|
420
|
+
"adiabatic_evolution",
|
|
421
|
+
"krylov_spectrum",
|
|
422
|
+
"krylov_ground_energy",
|
|
423
|
+
"loschmidt_echo",
|
|
424
|
+
"rate_function",
|
|
425
|
+
"quench_dynamics",
|
|
426
|
+
"otoc",
|
|
427
|
+
"scrambling_time",
|
|
428
|
+
"entanglement_growth",
|
|
429
|
+
"level_spacing_ratio",
|
|
430
|
+
"goe_reference",
|
|
431
|
+
"poisson_reference",
|
|
432
|
+
"classify_spectrum",
|
|
433
|
+
"kitaev_chain_hamiltonian",
|
|
434
|
+
"kitaev_ground_degeneracy",
|
|
435
|
+
"one_axis_twisting",
|
|
436
|
+
"best_squeezing",
|
|
437
|
+
"collect_shadows",
|
|
438
|
+
"estimate_observable",
|
|
439
|
+
"shadow_estimates",
|
|
440
|
+
"schmidt_decomposition",
|
|
441
|
+
"truncation_fidelity",
|
|
442
|
+
"area_law_compressibility",
|
|
443
|
+
# SSH topological insulator
|
|
444
|
+
"ssh_hamiltonian",
|
|
445
|
+
"ssh_winding_number",
|
|
446
|
+
"ssh_zero_modes",
|
|
447
|
+
"ssh_edge_polarization",
|
|
448
|
+
# Quantum phase transitions (fidelity)
|
|
449
|
+
"ground_state_fidelity",
|
|
450
|
+
"fidelity_susceptibility",
|
|
451
|
+
"tfim_critical_field",
|
|
452
|
+
# Many-body correlations
|
|
453
|
+
"connected_correlation",
|
|
454
|
+
"correlation_length",
|
|
455
|
+
"structure_factor",
|
|
456
|
+
"expectation",
|
|
457
|
+
# Entanglement negativity
|
|
458
|
+
"partial_transpose",
|
|
459
|
+
"negativity",
|
|
460
|
+
"logarithmic_negativity",
|
|
461
|
+
"is_entangled_ppt",
|
|
336
462
|
# Quantum spectroscopy
|
|
337
463
|
"unitary_eigenphase",
|
|
338
464
|
"hermitian_eigenvalue",
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Adiabatic quantum computation & the adiabatic theorem
|
|
3
|
+
|
|
4
|
+
An alternative to the circuit model: encode the answer in the ground state of a
|
|
5
|
+
"problem" Hamiltonian ``H_final``, start in the easily-prepared ground state of a
|
|
6
|
+
"driver" ``H_initial``, and slowly interpolate
|
|
7
|
+
|
|
8
|
+
H(s) = (1 - s) H_initial + s H_final, s = t / T, 0 -> 1.
|
|
9
|
+
|
|
10
|
+
The adiabatic theorem guarantees the system stays in the instantaneous ground state
|
|
11
|
+
-- ending in the ground state of ``H_final`` -- provided the total time ``T`` is large
|
|
12
|
+
compared to the inverse square of the minimum spectral gap along the path. Run too
|
|
13
|
+
fast and the system is excited (a diabatic transition). This module evolves the state
|
|
14
|
+
under the time-dependent Hamiltonian and measures the final ground-state fidelity,
|
|
15
|
+
verifying both regimes.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
import numpy as np
|
|
19
|
+
from scipy.linalg import expm
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _ground_state(H):
|
|
23
|
+
_, vecs = np.linalg.eigh(H)
|
|
24
|
+
return vecs[:, 0].astype(complex)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def adiabatic_evolution(
|
|
28
|
+
h_initial, h_final, total_time: float, steps: int = None
|
|
29
|
+
) -> dict:
|
|
30
|
+
"""
|
|
31
|
+
Prepare the ground state of ``h_initial``, sweep ``H(s) = (1-s) H_i + s H_f`` over
|
|
32
|
+
total time ``total_time``, and return how well the result matches the ground state
|
|
33
|
+
of ``h_final``.
|
|
34
|
+
|
|
35
|
+
``steps`` defaults to ``max(50, 30 * total_time)`` (enough for the piecewise-constant
|
|
36
|
+
integrator to be accurate). Returns dict with:
|
|
37
|
+
* ``fidelity`` -- overlap-squared of the final state with the target ground state
|
|
38
|
+
* ``final_energy`` -- ``<H_final>`` of the final state
|
|
39
|
+
* ``target_energy`` -- exact ground energy of ``h_final``
|
|
40
|
+
* ``min_gap`` -- the minimum spectral gap of ``H(s)`` along the path
|
|
41
|
+
* ``adiabatic`` -- whether the run stayed near the ground state (fidelity > 0.9)
|
|
42
|
+
"""
|
|
43
|
+
H_i = np.asarray(h_initial, dtype=complex)
|
|
44
|
+
H_f = np.asarray(h_final, dtype=complex)
|
|
45
|
+
if steps is None:
|
|
46
|
+
steps = max(50, int(30 * total_time))
|
|
47
|
+
|
|
48
|
+
psi = _ground_state(H_i)
|
|
49
|
+
dt = total_time / steps
|
|
50
|
+
min_gap = np.inf
|
|
51
|
+
for k in range(steps):
|
|
52
|
+
s = (k + 0.5) / steps
|
|
53
|
+
H_s = (1 - s) * H_i + s * H_f
|
|
54
|
+
ev = np.linalg.eigvalsh(H_s).real
|
|
55
|
+
min_gap = min(min_gap, ev[1] - ev[0])
|
|
56
|
+
psi = expm(-1j * H_s * dt) @ psi
|
|
57
|
+
|
|
58
|
+
target = _ground_state(H_f)
|
|
59
|
+
fidelity = float(abs(np.vdot(target, psi)) ** 2)
|
|
60
|
+
return {
|
|
61
|
+
"fidelity": fidelity,
|
|
62
|
+
"final_energy": float(np.real(psi.conj() @ H_f @ psi)),
|
|
63
|
+
"target_energy": float(np.linalg.eigvalsh(H_f).real.min()),
|
|
64
|
+
"min_gap": float(min_gap),
|
|
65
|
+
"adiabatic": fidelity > 0.9,
|
|
66
|
+
}
|
{quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/channel_capacity.py
RENAMED
|
@@ -82,8 +82,9 @@ def amplitude_damping_capacity(gamma: float) -> dict:
|
|
|
82
82
|
def neg_ic(p):
|
|
83
83
|
return -coherent_information(kraus, np.diag([1 - p, p]).astype(complex))
|
|
84
84
|
|
|
85
|
-
res = minimize_scalar(
|
|
86
|
-
|
|
85
|
+
res = minimize_scalar(
|
|
86
|
+
neg_ic, bounds=(1e-9, 1 - 1e-9), method="bounded", options={"xatol": 1e-10}
|
|
87
|
+
)
|
|
87
88
|
p_star = float(res.x)
|
|
88
89
|
ic = -float(res.fun)
|
|
89
90
|
capacity = max(0.0, ic)
|