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.
Files changed (363) hide show
  1. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/CHANGELOG.md +196 -0
  2. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/PKG-INFO +28 -26
  3. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/README.md +29 -27
  4. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/__init__.py +1 -1
  5. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/__init__.py +126 -0
  6. quantum_debugger-0.9.1/quantum_debugger/algorithms/adiabatic.py +66 -0
  7. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/channel_capacity.py +3 -2
  8. quantum_debugger-0.9.1/quantum_debugger/algorithms/classical_shadows.py +113 -0
  9. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/cloning.py +3 -3
  10. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/contextuality.py +3 -1
  11. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/decoherence_free.py +3 -1
  12. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/distillation.py +8 -2
  13. quantum_debugger-0.9.1/quantum_debugger/algorithms/entanglement_growth.py +50 -0
  14. quantum_debugger-0.9.1/quantum_debugger/algorithms/entanglement_negativity.py +58 -0
  15. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/hamiltonian_simulation.py +75 -0
  16. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/holevo.py +12 -4
  17. quantum_debugger-0.9.1/quantum_debugger/algorithms/hubbard.py +91 -0
  18. quantum_debugger-0.9.1/quantum_debugger/algorithms/imaginary_time.py +67 -0
  19. quantum_debugger-0.9.1/quantum_debugger/algorithms/jordan_wigner.py +101 -0
  20. quantum_debugger-0.9.1/quantum_debugger/algorithms/kitaev_chain.py +69 -0
  21. quantum_debugger-0.9.1/quantum_debugger/algorithms/krylov.py +79 -0
  22. quantum_debugger-0.9.1/quantum_debugger/algorithms/level_statistics.py +87 -0
  23. quantum_debugger-0.9.1/quantum_debugger/algorithms/loschmidt.py +72 -0
  24. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/magic_state.py +3 -1
  25. quantum_debugger-0.9.1/quantum_debugger/algorithms/many_body_correlations.py +99 -0
  26. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/mbqc.py +4 -2
  27. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/nonlocality.py +1 -3
  28. quantum_debugger-0.9.1/quantum_debugger/algorithms/otoc.py +92 -0
  29. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/qec_noise.py +6 -4
  30. quantum_debugger-0.9.1/quantum_debugger/algorithms/quantum_phase_transition.py +62 -0
  31. quantum_debugger-0.9.1/quantum_debugger/algorithms/schmidt.py +83 -0
  32. quantum_debugger-0.9.1/quantum_debugger/algorithms/spin_squeezing.py +100 -0
  33. quantum_debugger-0.9.1/quantum_debugger/algorithms/ssh_model.py +71 -0
  34. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/steane_code.py +12 -2
  35. quantum_debugger-0.9.1/quantum_debugger/algorithms/thermal.py +67 -0
  36. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/density_matrix.py +15 -5
  37. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/noise_models.py +18 -5
  38. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger.egg-info/PKG-INFO +28 -26
  39. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger.egg-info/SOURCES.txt +35 -0
  40. quantum_debugger-0.9.1/tests/test_adiabatic.py +61 -0
  41. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_channel_capacity.py +3 -1
  42. quantum_debugger-0.9.1/tests/test_classical_shadows.py +72 -0
  43. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_contextuality.py +15 -5
  44. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_density_matrix.py +49 -18
  45. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_distillation.py +4 -2
  46. quantum_debugger-0.9.1/tests/test_entanglement_growth.py +75 -0
  47. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_geometric_phase.py +8 -5
  48. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_holevo.py +3 -1
  49. quantum_debugger-0.9.1/tests/test_hubbard.py +71 -0
  50. quantum_debugger-0.9.1/tests/test_imaginary_time.py +75 -0
  51. quantum_debugger-0.9.1/tests/test_jordan_wigner.py +89 -0
  52. quantum_debugger-0.9.1/tests/test_kitaev_chain.py +62 -0
  53. quantum_debugger-0.9.1/tests/test_krylov.py +74 -0
  54. quantum_debugger-0.9.1/tests/test_level_statistics.py +69 -0
  55. quantum_debugger-0.9.1/tests/test_loschmidt.py +87 -0
  56. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_magic_measures.py +11 -5
  57. quantum_debugger-0.9.1/tests/test_many_body_extra.py +130 -0
  58. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_mbqc.py +17 -5
  59. quantum_debugger-0.9.1/tests/test_otoc.py +77 -0
  60. quantum_debugger-0.9.1/tests/test_pauli_decompose.py +68 -0
  61. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_perfect_code.py +3 -1
  62. quantum_debugger-0.9.1/tests/test_schmidt.py +83 -0
  63. quantum_debugger-0.9.1/tests/test_spin_squeezing.py +44 -0
  64. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_steane_code.py +28 -12
  65. quantum_debugger-0.9.1/tests/test_thermal.py +73 -0
  66. quantum_debugger-0.9.1/tests/test_trotter_scaling.py +53 -0
  67. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_weak_values.py +9 -3
  68. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise.py +88 -0
  69. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/AUTHORS.md +0 -0
  70. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/LICENSE +0 -0
  71. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/MANIFEST.in +0 -0
  72. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/bell_state_debug.py +0 -0
  73. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/benchmarks.py +0 -0
  74. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/grover_profiling.py +0 -0
  75. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/interactive_demo.py +0 -0
  76. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/qaoa_maxcut_example.py +0 -0
  77. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/qiskit_integration_demo.py +0 -0
  78. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/qml_basic_example.py +0 -0
  79. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/examples/vqe_h2_example.py +0 -0
  80. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/amplitude_amplification.py +0 -0
  81. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/amplitude_estimation.py +0 -0
  82. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/arithmetic.py +0 -0
  83. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/bb84.py +0 -0
  84. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/bell_test.py +0 -0
  85. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/decomposition.py +0 -0
  86. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/discrimination.py +0 -0
  87. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/dynamical_decoupling.py +0 -0
  88. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/error_correction.py +0 -0
  89. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/error_detection.py +0 -0
  90. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/geometric_phase.py +0 -0
  91. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/grover.py +0 -0
  92. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/grover_optimize.py +0 -0
  93. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/hhl.py +0 -0
  94. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/loss_robustness.py +0 -0
  95. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/magic_measures.py +0 -0
  96. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/maxcut.py +0 -0
  97. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/metrology.py +0 -0
  98. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/multicontrol.py +0 -0
  99. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/oracles.py +0 -0
  100. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/perfect_code.py +0 -0
  101. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/petz.py +0 -0
  102. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/phase_estimation.py +0 -0
  103. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/protocols.py +0 -0
  104. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/qec_threshold.py +0 -0
  105. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/qft.py +0 -0
  106. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/quantum_counting.py +0 -0
  107. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/quantum_walk.py +0 -0
  108. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/randomized_benchmarking.py +0 -0
  109. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/sat_solver.py +0 -0
  110. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/shor.py +0 -0
  111. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/simon.py +0 -0
  112. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/spectroscopy.py +0 -0
  113. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/state_preparation.py +0 -0
  114. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/swap_test.py +0 -0
  115. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/uncertainty.py +0 -0
  116. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/vqe_solver.py +0 -0
  117. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/weak_values.py +0 -0
  118. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/algorithms/zeno.py +0 -0
  119. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/__init__.py +0 -0
  120. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/_cuda_dll.py +0 -0
  121. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/aws_backend.py +0 -0
  122. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/base.py +0 -0
  123. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/base_backend.py +0 -0
  124. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/cupy_backend.py +0 -0
  125. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/gpu_backend.py +0 -0
  126. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/ibm_backend.py +0 -0
  127. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/numba_backend.py +0 -0
  128. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/numpy_backend.py +0 -0
  129. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/backends/sparse_backend.py +0 -0
  130. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/benchmarks/__init__.py +0 -0
  131. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/benchmarks/optimization_benchmarks.py +0 -0
  132. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/benchmarks/qml_benchmarks.py +0 -0
  133. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/benchmarks/report_generator.py +0 -0
  134. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/benchmarks/scalability_benchmarks.py +0 -0
  135. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/core/__init__.py +0 -0
  136. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/core/circuit.py +0 -0
  137. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/core/gates.py +0 -0
  138. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/core/quantum_state.py +0 -0
  139. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/debugger/__init__.py +0 -0
  140. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/debugger/breakpoints.py +0 -0
  141. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/debugger/debugger.py +0 -0
  142. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/debugger/inspector.py +0 -0
  143. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/gpu/__init__.py +0 -0
  144. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/gpu/memory.py +0 -0
  145. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/gpu/mixed_precision.py +0 -0
  146. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/gpu/multi_gpu.py +0 -0
  147. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/__init__.py +0 -0
  148. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/cirq_adapter.py +0 -0
  149. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/cirq_bridge.py +0 -0
  150. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/pennylane_bridge.py +0 -0
  151. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/qiskit_adapter.py +0 -0
  152. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/integrations/qiskit_bridge.py +0 -0
  153. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/mitigation/__init__.py +0 -0
  154. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/mitigation/core/__init__.py +0 -0
  155. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/mitigation/core/extrapolator.py +0 -0
  156. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/mitigation/core/folder.py +0 -0
  157. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/mitigation/zne.py +0 -0
  158. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/__init__.py +0 -0
  159. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/composite_noise.py +0 -0
  160. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/hardware_profiles.py +0 -0
  161. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/noise_helpers.py +0 -0
  162. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/noise/stochastic_sampler.py +0 -0
  163. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/optimization/__init__.py +0 -0
  164. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/optimization/circuit_compiler.py +0 -0
  165. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/optimization/gate_reduction.py +0 -0
  166. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/optimization/optimization_passes.py +0 -0
  167. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/optimization/transpiler.py +0 -0
  168. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/parallel/__init__.py +0 -0
  169. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/parallel/executor.py +0 -0
  170. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/profiler/__init__.py +0 -0
  171. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/profiler/metrics.py +0 -0
  172. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/profiler/profiler.py +0 -0
  173. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/__init__.py +0 -0
  174. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/__init__.py +0 -0
  175. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/ansatz_analysis.py +0 -0
  176. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/autoencoder.py +0 -0
  177. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/data_reuploading.py +0 -0
  178. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/qcnn.py +0 -0
  179. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/advanced/vqc.py +0 -0
  180. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/__init__.py +0 -0
  181. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/actor_critic.py +0 -0
  182. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/dqn.py +0 -0
  183. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/policy_gradient.py +0 -0
  184. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/qaoa.py +0 -0
  185. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/qgan.py +0 -0
  186. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/qrl.py +0 -0
  187. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/vqd.py +0 -0
  188. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/algorithms/vqe.py +0 -0
  189. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/ansatz/__init__.py +0 -0
  190. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/ansatz/excitation_preserving.py +0 -0
  191. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/ansatz/real_amplitudes.py +0 -0
  192. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/ansatz/strongly_entangling.py +0 -0
  193. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/ansatz/two_local.py +0 -0
  194. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/automl/__init__.py +0 -0
  195. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/automl/ansatz_selector.py +0 -0
  196. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/automl/architecture_search.py +0 -0
  197. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/automl/auto_qnn.py +0 -0
  198. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/automl/hyperparameter_tuner.py +0 -0
  199. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/data/__init__.py +0 -0
  200. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/data/dataset.py +0 -0
  201. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/data/feature_maps.py +0 -0
  202. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/error_mitigation/__init__.py +0 -0
  203. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/error_mitigation/zne.py +0 -0
  204. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/gates/__init__.py +0 -0
  205. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/gates/parameterized.py +0 -0
  206. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hamiltonians/__init__.py +0 -0
  207. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hamiltonians/molecular.py +0 -0
  208. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hybrid/__init__.py +0 -0
  209. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hybrid/layers.py +0 -0
  210. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hybrid/pytorch_integration.py +0 -0
  211. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/hybrid/tensorflow_integration.py +0 -0
  212. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/kernels/__init__.py +0 -0
  213. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/kernels/alignment.py +0 -0
  214. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/kernels/qsvm.py +0 -0
  215. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/kernels/quantum_kernel.py +0 -0
  216. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/mitigation/__init__.py +0 -0
  217. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/mitigation/cdr.py +0 -0
  218. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/mitigation/error_characterization.py +0 -0
  219. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/mitigation/noise_models.py +0 -0
  220. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/mitigation/pec.py +0 -0
  221. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/optimizers/__init__.py +0 -0
  222. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/optimizers/advanced.py +0 -0
  223. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/optimizers/basics.py +0 -0
  224. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/optimizers/spsa.py +0 -0
  225. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/__init__.py +0 -0
  226. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/base.py +0 -0
  227. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/encoding.py +0 -0
  228. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/losses.py +0 -0
  229. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/network.py +0 -0
  230. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/qnn/variational.py +0 -0
  231. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/training/__init__.py +0 -0
  232. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/transfer/__init__.py +0 -0
  233. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/transfer/fine_tuning.py +0 -0
  234. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/transfer/model_zoo.py +0 -0
  235. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/transfer/pretrained.py +0 -0
  236. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/transfer/serialization.py +0 -0
  237. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/utils/__init__.py +0 -0
  238. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/qml/utils/gradients.py +0 -0
  239. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/stabilizer.py +0 -0
  240. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/tomography.py +0 -0
  241. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/visualization/__init__.py +0 -0
  242. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/visualization/bloch_sphere.py +0 -0
  243. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger/visualization/state_viz.py +0 -0
  244. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger.egg-info/dependency_links.txt +0 -0
  245. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger.egg-info/requires.txt +0 -0
  246. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/quantum_debugger.egg-info/top_level.txt +0 -0
  247. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/requirements.txt +0 -0
  248. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/setup.cfg +0 -0
  249. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/setup.py +0 -0
  250. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/__init__.py +0 -0
  251. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/cirq/__init__.py +0 -0
  252. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/cirq/test_cirq_advanced.py +0 -0
  253. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/cirq/test_cirq_edge_cases.py +0 -0
  254. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/cirq/test_cirq_integration.py +0 -0
  255. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/conftest.py +0 -0
  256. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/integration/__init__.py +0 -0
  257. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/integration/test_integration.py +0 -0
  258. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/integration/test_qiskit_integration.py +0 -0
  259. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/__init__.py +0 -0
  260. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_actor_critic.py +0 -0
  261. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_advanced_algorithms.py +0 -0
  262. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_advanced_optimizers.py +0 -0
  263. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_advanced_qml.py +0 -0
  264. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_ansatz_library.py +0 -0
  265. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_automl.py +0 -0
  266. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_dataset.py +0 -0
  267. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_dqn.py +0 -0
  268. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_edge_cases.py +0 -0
  269. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_hamiltonians.py +0 -0
  270. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_hybrid.py +0 -0
  271. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_kernels.py +0 -0
  272. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_mitigation.py +0 -0
  273. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_policy_gradient.py +0 -0
  274. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_qaoa.py +0 -0
  275. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_qml_parameterized_gates.py +0 -0
  276. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_qnn.py +0 -0
  277. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_spsa.py +0 -0
  278. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_transfer.py +0 -0
  279. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_transfer_extended.py +0 -0
  280. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_vqd.py +0 -0
  281. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_vqe.py +0 -0
  282. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/qml/test_zne.py +0 -0
  283. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_algorithms.py +0 -0
  284. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_arithmetic.py +0 -0
  285. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_backends.py +0 -0
  286. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_bb84.py +0 -0
  287. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_bell_test.py +0 -0
  288. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_benchmarks.py +0 -0
  289. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_cloning.py +0 -0
  290. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_decoherence_free.py +0 -0
  291. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_decomposition.py +0 -0
  292. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_discrimination.py +0 -0
  293. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_dynamical_decoupling.py +0 -0
  294. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_error_correction.py +0 -0
  295. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_error_detection.py +0 -0
  296. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_grover_optimize.py +0 -0
  297. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_hamiltonian_simulation.py +0 -0
  298. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_integrations.py +0 -0
  299. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_loss_robustness.py +0 -0
  300. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_magic_state.py +0 -0
  301. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_maxcut.py +0 -0
  302. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_metrology.py +0 -0
  303. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_multicontrol.py +0 -0
  304. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_nonlocality.py +0 -0
  305. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_optimization.py +0 -0
  306. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_petz.py +0 -0
  307. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_protocols_shor.py +0 -0
  308. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_qec_noise.py +0 -0
  309. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_qec_threshold.py +0 -0
  310. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_randomized_benchmarking.py +0 -0
  311. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_sat_solver.py +0 -0
  312. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_simon.py +0 -0
  313. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_spectroscopy.py +0 -0
  314. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_stabilizer.py +0 -0
  315. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_state_preparation.py +0 -0
  316. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_tomography.py +0 -0
  317. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_uncertainty.py +0 -0
  318. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_vqe_solver.py +0 -0
  319. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/test_zeno.py +0 -0
  320. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/CONVERSION_TRACKER.py +0 -0
  321. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/__init__.py +0 -0
  322. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_advanced.py +0 -0
  323. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backend_comprehensive.py +0 -0
  324. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backend_integration.py +0 -0
  325. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backends.py +0 -0
  326. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backends_advanced.py +0 -0
  327. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backends_comprehensive.py +0 -0
  328. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_backends_fast.py +0 -0
  329. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_circuit_noise.py +0 -0
  330. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_circuit_noise_advanced.py +0 -0
  331. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_circuit_noise_unique.py +0 -0
  332. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_compatibility.py +0 -0
  333. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_comprehensive.py +0 -0
  334. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_distribution.py +0 -0
  335. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_docstrings.py +0 -0
  336. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_error_handling.py +0 -0
  337. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_extreme.py +0 -0
  338. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_gpu_quick.py +0 -0
  339. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_hardware_profiles_extended.py +0 -0
  340. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_hardware_profiles_phase3.py +0 -0
  341. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_mitigation_comprehensive.py +0 -0
  342. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_mitigation_final.py +0 -0
  343. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_mitigation_observables.py +0 -0
  344. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_mitigation_zne.py +0 -0
  345. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_advanced.py +0 -0
  346. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_extreme.py +0 -0
  347. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_final.py +0 -0
  348. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_performance.py +0 -0
  349. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_quantum_info.py +0 -0
  350. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_noise_ultimate.py +0 -0
  351. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_parallel.py +0 -0
  352. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_performance.py +0 -0
  353. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_production.py +0 -0
  354. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qiskit_complex.py +0 -0
  355. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qiskit_extreme.py +0 -0
  356. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qiskit_ultra.py +0 -0
  357. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qml_advanced.py +0 -0
  358. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qml_comprehensive.py +0 -0
  359. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qml_memory.py +0 -0
  360. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qml_threading.py +0 -0
  361. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_qml_tricky.py +0 -0
  362. {quantum_debugger-0.8.0 → quantum_debugger-0.9.1}/tests/unit/test_quickstart.py +0 -0
  363. {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.8.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.8.0
89
+ ## What's New in v0.9.1
90
90
 
91
- A comprehensive **quantum-information-theory layer** on both simulation engines —
92
- every routine verified against a closed form or an independent computation:
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
- - **Density-matrix simulator** (`DensityMatrix`) — open quantum systems with Kraus
95
- channels, Lindblad master-equation evolution, channel metrics (process / average
96
- gate fidelity, Choi matrix, CPTP checks), **Stinespring dilation**, and **quantum
97
- process tomography**.
98
- - **Fault tolerance & QEC** — the 5-qubit `[[5,1,3]]` perfect code, Steane `[[7,1,3]]`
99
- with transversal gates, the `[[4,2,2]]` error-detecting code, magic-state injection,
100
- the **Petz recovery map** for approximate QEC, and QEC run against continuous
101
- (density-matrix) noise with CPTP syndrome recovery.
102
- - **Quantum networking** — BBPSSW / DEJMPS entanglement distillation, noisy
103
- entanglement swapping, and repeater chains.
104
- - **Noise protection without QEC** — decoherence-free subspaces, spin echo, and the
105
- quantum Zeno effect.
106
- - **Foundations & resource measures** — negativity, concurrence, discord, mutual
107
- information, Horodecki nonlocality, contextuality (Mermin-Peres), geometric
108
- (Pancharatnam-Berry) phase, uncertainty relations, weak values, Holevo bound,
109
- channel capacity, state discrimination, no-cloning, stabilizer-Rényi magic, and
110
- measurement-based computation.
111
- - **Clifford engine** stabilizer entanglement entropy straight from the tableau
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
- ### Density-matrix engine (v0.8.0)
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.8.0 (latest on PyPI) · 0.7.1, 0.7.0 (previous)
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.8.0
15
-
16
- A comprehensive **quantum-information-theory layer** on both simulation engines —
17
- every routine verified against a closed form or an independent computation:
18
-
19
- - **Density-matrix simulator** (`DensityMatrix`) open quantum systems with Kraus
20
- channels, Lindblad master-equation evolution, channel metrics (process / average
21
- gate fidelity, Choi matrix, CPTP checks), **Stinespring dilation**, and **quantum
22
- process tomography**.
23
- - **Fault tolerance & QEC** — the 5-qubit `[[5,1,3]]` perfect code, Steane `[[7,1,3]]`
24
- with transversal gates, the `[[4,2,2]]` error-detecting code, magic-state injection,
25
- the **Petz recovery map** for approximate QEC, and QEC run against continuous
26
- (density-matrix) noise with CPTP syndrome recovery.
27
- - **Quantum networking** — BBPSSW / DEJMPS entanglement distillation, noisy
28
- entanglement swapping, and repeater chains.
29
- - **Noise protection without QEC** — decoherence-free subspaces, spin echo, and the
30
- quantum Zeno effect.
31
- - **Foundations & resource measures** — negativity, concurrence, discord, mutual
32
- information, Horodecki nonlocality, contextuality (Mermin-Peres), geometric
33
- (Pancharatnam-Berry) phase, uncertainty relations, weak values, Holevo bound,
34
- channel capacity, state discrimination, no-cloning, stabilizer-Rényi magic, and
35
- measurement-based computation.
36
- - **Clifford engine** — stabilizer entanglement entropy straight from the tableau
37
- (`O(n^3)`, works on hundreds of qubits), plus a quantum multiplier and a
38
- ripple-carry subtractor.
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
- ### Density-matrix engine (v0.8.0)
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.8.0 (latest on PyPI) · 0.7.1, 0.7.0 (previous)
427
+ **Version:** 0.9.1 (latest on PyPI) · 0.9.0, 0.8.0 (previous)
426
428
  **Last Updated:** August 2026
@@ -13,7 +13,7 @@ Features:
13
13
  - Hardware profile support
14
14
  """
15
15
 
16
- __version__ = "0.8.0"
16
+ __version__ = "0.9.1"
17
17
  __author__ = "Raunak Kumar Gupta"
18
18
  __license__ = "MIT"
19
19
 
@@ -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
+ }
@@ -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(neg_ic, bounds=(1e-9, 1 - 1e-9), method="bounded",
86
- options={"xatol": 1e-10})
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)