quantum-debugger 1.0.0__tar.gz → 1.0.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 (371) hide show
  1. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/AUTHORS.md +3 -4
  2. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/CHANGELOG.md +8 -0
  3. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/PKG-INFO +4 -4
  4. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/README.md +3 -3
  5. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/__init__.py +1 -1
  6. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/tebd.py +30 -14
  7. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/mpo.py +9 -5
  8. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/mps.py +39 -14
  9. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger.egg-info/PKG-INFO +4 -4
  10. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_imaginary_tebd.py +15 -6
  11. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_mpo.py +7 -1
  12. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_mps.py +39 -17
  13. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_mps_extensions.py +68 -25
  14. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_tebd.py +9 -2
  15. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/LICENSE +0 -0
  16. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/MANIFEST.in +0 -0
  17. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/examples/bell_state_debug.py +0 -0
  18. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/examples/benchmarks.py +0 -0
  19. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/examples/grover_profiling.py +0 -0
  20. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/examples/interactive_demo.py +0 -0
  21. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/examples/qaoa_maxcut_example.py +0 -0
  22. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/examples/qiskit_integration_demo.py +0 -0
  23. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/examples/qml_basic_example.py +0 -0
  24. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/examples/vqe_h2_example.py +0 -0
  25. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/__init__.py +0 -0
  26. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/adiabatic.py +0 -0
  27. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/amplitude_amplification.py +0 -0
  28. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/amplitude_estimation.py +0 -0
  29. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/arithmetic.py +0 -0
  30. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/bb84.py +0 -0
  31. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/bell_test.py +0 -0
  32. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/channel_capacity.py +0 -0
  33. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/classical_shadows.py +0 -0
  34. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/cloning.py +0 -0
  35. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/contextuality.py +0 -0
  36. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/decoherence_free.py +0 -0
  37. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/decomposition.py +0 -0
  38. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/discrimination.py +0 -0
  39. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/distillation.py +0 -0
  40. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/dynamical_decoupling.py +0 -0
  41. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/entanglement_growth.py +0 -0
  42. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/entanglement_negativity.py +0 -0
  43. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/error_correction.py +0 -0
  44. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/error_detection.py +0 -0
  45. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/geometric_phase.py +0 -0
  46. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/grover.py +0 -0
  47. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/grover_optimize.py +0 -0
  48. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/hamiltonian_simulation.py +0 -0
  49. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/hhl.py +0 -0
  50. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/holevo.py +0 -0
  51. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/hubbard.py +0 -0
  52. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/imaginary_time.py +0 -0
  53. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/jordan_wigner.py +0 -0
  54. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/kitaev_chain.py +0 -0
  55. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/krylov.py +0 -0
  56. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/level_statistics.py +0 -0
  57. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/loschmidt.py +0 -0
  58. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/loss_robustness.py +0 -0
  59. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/magic_measures.py +0 -0
  60. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/magic_state.py +0 -0
  61. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/many_body_correlations.py +0 -0
  62. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/maxcut.py +0 -0
  63. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/mbqc.py +0 -0
  64. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/metrology.py +0 -0
  65. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/multicontrol.py +0 -0
  66. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/nonlocality.py +0 -0
  67. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/oracles.py +0 -0
  68. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/otoc.py +0 -0
  69. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/perfect_code.py +0 -0
  70. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/petz.py +0 -0
  71. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/phase_estimation.py +0 -0
  72. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/protocols.py +0 -0
  73. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/qec_noise.py +0 -0
  74. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/qec_threshold.py +0 -0
  75. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/qft.py +0 -0
  76. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/quantum_counting.py +0 -0
  77. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/quantum_phase_transition.py +0 -0
  78. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/quantum_walk.py +0 -0
  79. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/randomized_benchmarking.py +0 -0
  80. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/sat_solver.py +0 -0
  81. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/schmidt.py +0 -0
  82. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/shor.py +0 -0
  83. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/simon.py +0 -0
  84. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/spectroscopy.py +0 -0
  85. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/spin_squeezing.py +0 -0
  86. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/ssh_model.py +0 -0
  87. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/state_preparation.py +0 -0
  88. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/steane_code.py +0 -0
  89. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/swap_test.py +0 -0
  90. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/thermal.py +0 -0
  91. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/uncertainty.py +0 -0
  92. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/vqe_solver.py +0 -0
  93. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/weak_values.py +0 -0
  94. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/algorithms/zeno.py +0 -0
  95. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/__init__.py +0 -0
  96. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/_cuda_dll.py +0 -0
  97. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/aws_backend.py +0 -0
  98. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/base.py +0 -0
  99. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/base_backend.py +0 -0
  100. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/cupy_backend.py +0 -0
  101. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/gpu_backend.py +0 -0
  102. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/ibm_backend.py +0 -0
  103. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/numba_backend.py +0 -0
  104. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/numpy_backend.py +0 -0
  105. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/backends/sparse_backend.py +0 -0
  106. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/benchmarks/__init__.py +0 -0
  107. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/benchmarks/optimization_benchmarks.py +0 -0
  108. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/benchmarks/qml_benchmarks.py +0 -0
  109. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/benchmarks/report_generator.py +0 -0
  110. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/benchmarks/scalability_benchmarks.py +0 -0
  111. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/core/__init__.py +0 -0
  112. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/core/circuit.py +0 -0
  113. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/core/gates.py +0 -0
  114. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/core/quantum_state.py +0 -0
  115. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/debugger/__init__.py +0 -0
  116. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/debugger/breakpoints.py +0 -0
  117. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/debugger/debugger.py +0 -0
  118. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/debugger/inspector.py +0 -0
  119. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/density_matrix.py +0 -0
  120. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/gpu/__init__.py +0 -0
  121. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/gpu/memory.py +0 -0
  122. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/gpu/mixed_precision.py +0 -0
  123. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/gpu/multi_gpu.py +0 -0
  124. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/integrations/__init__.py +0 -0
  125. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/integrations/cirq_adapter.py +0 -0
  126. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/integrations/cirq_bridge.py +0 -0
  127. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/integrations/pennylane_bridge.py +0 -0
  128. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/integrations/qiskit_adapter.py +0 -0
  129. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/integrations/qiskit_bridge.py +0 -0
  130. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/mitigation/__init__.py +0 -0
  131. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/mitigation/core/__init__.py +0 -0
  132. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/mitigation/core/extrapolator.py +0 -0
  133. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/mitigation/core/folder.py +0 -0
  134. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/mitigation/zne.py +0 -0
  135. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/noise/__init__.py +0 -0
  136. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/noise/composite_noise.py +0 -0
  137. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/noise/hardware_profiles.py +0 -0
  138. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/noise/noise_helpers.py +0 -0
  139. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/noise/noise_models.py +0 -0
  140. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/noise/stochastic_sampler.py +0 -0
  141. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/optimization/__init__.py +0 -0
  142. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/optimization/circuit_compiler.py +0 -0
  143. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/optimization/gate_reduction.py +0 -0
  144. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/optimization/optimization_passes.py +0 -0
  145. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/optimization/transpiler.py +0 -0
  146. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/parallel/__init__.py +0 -0
  147. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/parallel/executor.py +0 -0
  148. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/profiler/__init__.py +0 -0
  149. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/profiler/metrics.py +0 -0
  150. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/profiler/profiler.py +0 -0
  151. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/__init__.py +0 -0
  152. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/advanced/__init__.py +0 -0
  153. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/advanced/ansatz_analysis.py +0 -0
  154. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/advanced/autoencoder.py +0 -0
  155. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/advanced/data_reuploading.py +0 -0
  156. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/advanced/qcnn.py +0 -0
  157. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/advanced/vqc.py +0 -0
  158. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/algorithms/__init__.py +0 -0
  159. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/algorithms/actor_critic.py +0 -0
  160. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/algorithms/dqn.py +0 -0
  161. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/algorithms/policy_gradient.py +0 -0
  162. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/algorithms/qaoa.py +0 -0
  163. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/algorithms/qgan.py +0 -0
  164. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/algorithms/qrl.py +0 -0
  165. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/algorithms/vqd.py +0 -0
  166. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/algorithms/vqe.py +0 -0
  167. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/ansatz/__init__.py +0 -0
  168. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/ansatz/excitation_preserving.py +0 -0
  169. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/ansatz/real_amplitudes.py +0 -0
  170. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/ansatz/strongly_entangling.py +0 -0
  171. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/ansatz/two_local.py +0 -0
  172. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/automl/__init__.py +0 -0
  173. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/automl/ansatz_selector.py +0 -0
  174. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/automl/architecture_search.py +0 -0
  175. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/automl/auto_qnn.py +0 -0
  176. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/automl/hyperparameter_tuner.py +0 -0
  177. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/data/__init__.py +0 -0
  178. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/data/dataset.py +0 -0
  179. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/data/feature_maps.py +0 -0
  180. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/error_mitigation/__init__.py +0 -0
  181. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/error_mitigation/zne.py +0 -0
  182. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/gates/__init__.py +0 -0
  183. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/gates/parameterized.py +0 -0
  184. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/hamiltonians/__init__.py +0 -0
  185. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/hamiltonians/molecular.py +0 -0
  186. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/hybrid/__init__.py +0 -0
  187. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/hybrid/layers.py +0 -0
  188. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/hybrid/pytorch_integration.py +0 -0
  189. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/hybrid/tensorflow_integration.py +0 -0
  190. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/kernels/__init__.py +0 -0
  191. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/kernels/alignment.py +0 -0
  192. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/kernels/qsvm.py +0 -0
  193. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/kernels/quantum_kernel.py +0 -0
  194. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/mitigation/__init__.py +0 -0
  195. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/mitigation/cdr.py +0 -0
  196. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/mitigation/error_characterization.py +0 -0
  197. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/mitigation/noise_models.py +0 -0
  198. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/mitigation/pec.py +0 -0
  199. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/optimizers/__init__.py +0 -0
  200. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/optimizers/advanced.py +0 -0
  201. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/optimizers/basics.py +0 -0
  202. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/optimizers/spsa.py +0 -0
  203. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/qnn/__init__.py +0 -0
  204. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/qnn/base.py +0 -0
  205. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/qnn/encoding.py +0 -0
  206. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/qnn/losses.py +0 -0
  207. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/qnn/network.py +0 -0
  208. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/qnn/variational.py +0 -0
  209. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/training/__init__.py +0 -0
  210. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/transfer/__init__.py +0 -0
  211. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/transfer/fine_tuning.py +0 -0
  212. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/transfer/model_zoo.py +0 -0
  213. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/transfer/pretrained.py +0 -0
  214. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/transfer/serialization.py +0 -0
  215. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/utils/__init__.py +0 -0
  216. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/qml/utils/gradients.py +0 -0
  217. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/stabilizer.py +0 -0
  218. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/tomography.py +0 -0
  219. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/visualization/__init__.py +0 -0
  220. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/visualization/bloch_sphere.py +0 -0
  221. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger/visualization/state_viz.py +0 -0
  222. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger.egg-info/SOURCES.txt +0 -0
  223. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger.egg-info/dependency_links.txt +0 -0
  224. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger.egg-info/requires.txt +0 -0
  225. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/quantum_debugger.egg-info/top_level.txt +0 -0
  226. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/requirements.txt +0 -0
  227. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/setup.cfg +0 -0
  228. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/setup.py +0 -0
  229. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/__init__.py +0 -0
  230. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/cirq/__init__.py +0 -0
  231. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/cirq/test_cirq_advanced.py +0 -0
  232. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/cirq/test_cirq_edge_cases.py +0 -0
  233. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/cirq/test_cirq_integration.py +0 -0
  234. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/conftest.py +0 -0
  235. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/integration/__init__.py +0 -0
  236. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/integration/test_integration.py +0 -0
  237. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/integration/test_qiskit_integration.py +0 -0
  238. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/__init__.py +0 -0
  239. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_actor_critic.py +0 -0
  240. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_advanced_algorithms.py +0 -0
  241. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_advanced_optimizers.py +0 -0
  242. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_advanced_qml.py +0 -0
  243. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_ansatz_library.py +0 -0
  244. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_automl.py +0 -0
  245. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_dataset.py +0 -0
  246. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_dqn.py +0 -0
  247. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_edge_cases.py +0 -0
  248. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_hamiltonians.py +0 -0
  249. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_hybrid.py +0 -0
  250. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_kernels.py +0 -0
  251. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_mitigation.py +0 -0
  252. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_policy_gradient.py +0 -0
  253. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_qaoa.py +0 -0
  254. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_qml_parameterized_gates.py +0 -0
  255. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_qnn.py +0 -0
  256. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_spsa.py +0 -0
  257. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_transfer.py +0 -0
  258. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_transfer_extended.py +0 -0
  259. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_vqd.py +0 -0
  260. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_vqe.py +0 -0
  261. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/qml/test_zne.py +0 -0
  262. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_adiabatic.py +0 -0
  263. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_algorithms.py +0 -0
  264. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_arithmetic.py +0 -0
  265. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_backends.py +0 -0
  266. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_bb84.py +0 -0
  267. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_bell_test.py +0 -0
  268. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_benchmarks.py +0 -0
  269. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_channel_capacity.py +0 -0
  270. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_classical_shadows.py +0 -0
  271. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_cloning.py +0 -0
  272. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_contextuality.py +0 -0
  273. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_decoherence_free.py +0 -0
  274. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_decomposition.py +0 -0
  275. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_density_matrix.py +0 -0
  276. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_discrimination.py +0 -0
  277. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_distillation.py +0 -0
  278. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_dynamical_decoupling.py +0 -0
  279. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_entanglement_growth.py +0 -0
  280. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_error_correction.py +0 -0
  281. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_error_detection.py +0 -0
  282. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_geometric_phase.py +0 -0
  283. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_grover_optimize.py +0 -0
  284. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_hamiltonian_simulation.py +0 -0
  285. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_holevo.py +0 -0
  286. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_hubbard.py +0 -0
  287. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_imaginary_time.py +0 -0
  288. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_integrations.py +0 -0
  289. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_jordan_wigner.py +0 -0
  290. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_kitaev_chain.py +0 -0
  291. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_krylov.py +0 -0
  292. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_level_statistics.py +0 -0
  293. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_loschmidt.py +0 -0
  294. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_loss_robustness.py +0 -0
  295. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_magic_measures.py +0 -0
  296. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_magic_state.py +0 -0
  297. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_many_body_extra.py +0 -0
  298. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_maxcut.py +0 -0
  299. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_mbqc.py +0 -0
  300. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_metrology.py +0 -0
  301. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_multicontrol.py +0 -0
  302. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_nonlocality.py +0 -0
  303. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_optimization.py +0 -0
  304. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_otoc.py +0 -0
  305. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_pauli_decompose.py +0 -0
  306. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_perfect_code.py +0 -0
  307. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_petz.py +0 -0
  308. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_protocols_shor.py +0 -0
  309. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_qec_noise.py +0 -0
  310. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_qec_threshold.py +0 -0
  311. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_randomized_benchmarking.py +0 -0
  312. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_sat_solver.py +0 -0
  313. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_schmidt.py +0 -0
  314. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_simon.py +0 -0
  315. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_spectroscopy.py +0 -0
  316. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_spin_squeezing.py +0 -0
  317. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_stabilizer.py +0 -0
  318. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_state_preparation.py +0 -0
  319. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_steane_code.py +0 -0
  320. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_thermal.py +0 -0
  321. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_tomography.py +0 -0
  322. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_trotter_scaling.py +0 -0
  323. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_uncertainty.py +0 -0
  324. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_vqe_solver.py +0 -0
  325. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_weak_values.py +0 -0
  326. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/test_zeno.py +0 -0
  327. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/CONVERSION_TRACKER.py +0 -0
  328. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/__init__.py +0 -0
  329. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_advanced.py +0 -0
  330. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_backend_comprehensive.py +0 -0
  331. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_backend_integration.py +0 -0
  332. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_backends.py +0 -0
  333. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_backends_advanced.py +0 -0
  334. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_backends_comprehensive.py +0 -0
  335. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_backends_fast.py +0 -0
  336. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_circuit_noise.py +0 -0
  337. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_circuit_noise_advanced.py +0 -0
  338. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_circuit_noise_unique.py +0 -0
  339. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_compatibility.py +0 -0
  340. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_comprehensive.py +0 -0
  341. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_distribution.py +0 -0
  342. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_docstrings.py +0 -0
  343. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_error_handling.py +0 -0
  344. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_extreme.py +0 -0
  345. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_gpu_quick.py +0 -0
  346. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_hardware_profiles_extended.py +0 -0
  347. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_hardware_profiles_phase3.py +0 -0
  348. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_mitigation_comprehensive.py +0 -0
  349. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_mitigation_final.py +0 -0
  350. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_mitigation_observables.py +0 -0
  351. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_mitigation_zne.py +0 -0
  352. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_noise.py +0 -0
  353. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_noise_advanced.py +0 -0
  354. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_noise_extreme.py +0 -0
  355. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_noise_final.py +0 -0
  356. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_noise_performance.py +0 -0
  357. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_noise_quantum_info.py +0 -0
  358. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_noise_ultimate.py +0 -0
  359. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_parallel.py +0 -0
  360. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_performance.py +0 -0
  361. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_production.py +0 -0
  362. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_qiskit_complex.py +0 -0
  363. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_qiskit_extreme.py +0 -0
  364. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_qiskit_ultra.py +0 -0
  365. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_qml_advanced.py +0 -0
  366. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_qml_comprehensive.py +0 -0
  367. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_qml_memory.py +0 -0
  368. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_qml_threading.py +0 -0
  369. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_qml_tricky.py +0 -0
  370. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_quickstart.py +0 -0
  371. {quantum_debugger-1.0.0 → quantum_debugger-1.0.1}/tests/unit/test_validation.py +0 -0
@@ -37,11 +37,10 @@ If you use quantum-debugger in your research, please cite:
37
37
 
38
38
  ```bibtex
39
39
  @software{quantum_debugger_2026,
40
- title = {Quantum Debugger: Production-Grade Quantum Machine Learning Library},
41
- author = {Gupta, Raunak Kumar},
40
+ title = {Quantum Debugger: Interactive Circuit Debugging, Multi-Engine Simulation, and Quantum Machine Learning Framework},
41
+ author = {Raunak Kumar Gupta},
42
42
  year = {2026},
43
- url = {https://github.com/Raunakg2005/quantum-debugger},
44
- note = {Supervised by Dr. Vaibhav Prakash Vasani, K.J. Somaiya School of Engineering}
43
+ url = {https://github.com/Raunakg2005/quantum-debugger}
45
44
  }
46
45
  ```
47
46
 
@@ -5,6 +5,14 @@ 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
+ ## [1.0.1]
9
+
10
+ Theme: documentation and metadata refresh.
11
+
12
+ ### Changed
13
+ - Updated BibTeX software citation author to full name (`Raunak Kumar Gupta`) and modernized project title across README and documentation.
14
+ - Enriched documentation tutorials and examples for Matrix Product States (MPS), TEBD dynamics, VQE molecular chemistry, and open systems noise models.
15
+
8
16
  ## [1.0.0]
9
17
 
10
18
  Theme: scale & tensor networks — breaking the exponential state-vector wall. The
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quantum-debugger
3
- Version: 1.0.0
3
+ Version: 1.0.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
@@ -486,8 +486,8 @@ If you use quantum-debugger in your research, please cite:
486
486
 
487
487
  ```bibtex
488
488
  @software{quantum_debugger_2026,
489
- title = {Quantum Debugger: Production-Grade Quantum Machine Learning Library},
490
- author = {Gupta, Raunak Kumar},
489
+ title = {Quantum Debugger: Interactive Circuit Debugging, Multi-Engine Simulation, and Quantum Machine Learning Framework},
490
+ author = {Raunak Kumar Gupta},
491
491
  year = {2026},
492
492
  url = {https://github.com/Raunakg2005/quantum-debugger}
493
493
  }
@@ -511,5 +511,5 @@ If you use quantum-debugger in your research, please cite:
511
511
 
512
512
  ---
513
513
 
514
- **Version:** 1.0.0 (latest on PyPI) · 0.9.1, 0.9.0, 0.8.0 (previous)
514
+ **Version:** 1.0.1 (latest on PyPI) · 1.0.0, 0.9.1, 0.9.0 (previous)
515
515
  **Last Updated:** September 2026
@@ -411,8 +411,8 @@ If you use quantum-debugger in your research, please cite:
411
411
 
412
412
  ```bibtex
413
413
  @software{quantum_debugger_2026,
414
- title = {Quantum Debugger: Production-Grade Quantum Machine Learning Library},
415
- author = {Gupta, Raunak Kumar},
414
+ title = {Quantum Debugger: Interactive Circuit Debugging, Multi-Engine Simulation, and Quantum Machine Learning Framework},
415
+ author = {Raunak Kumar Gupta},
416
416
  year = {2026},
417
417
  url = {https://github.com/Raunakg2005/quantum-debugger}
418
418
  }
@@ -436,5 +436,5 @@ If you use quantum-debugger in your research, please cite:
436
436
 
437
437
  ---
438
438
 
439
- **Version:** 1.0.0 (latest on PyPI) · 0.9.1, 0.9.0, 0.8.0 (previous)
439
+ **Version:** 1.0.1 (latest on PyPI) · 1.0.0, 0.9.1, 0.9.0 (previous)
440
440
  **Last Updated:** September 2026
@@ -13,7 +13,7 @@ Features:
13
13
  - Hardware profile support
14
14
  """
15
15
 
16
- __version__ = "1.0.0"
16
+ __version__ = "1.0.1"
17
17
  __author__ = "Raunak Kumar Gupta"
18
18
  __license__ = "MIT"
19
19
 
@@ -22,7 +22,9 @@ _Z = np.array([[1, 0], [0, -1]], dtype=complex)
22
22
  _I = np.eye(2, dtype=complex)
23
23
 
24
24
 
25
- def tfim_bond_gate(n: int, i: int, dt: float, j_coupling: float, field: float) -> np.ndarray:
25
+ def tfim_bond_gate(
26
+ n: int, i: int, dt: float, j_coupling: float, field: float
27
+ ) -> np.ndarray:
26
28
  """
27
29
  Two-site Trotter gate ``exp(-i h_{i,i+1} dt)`` for the transverse-field Ising model
28
30
  ``H = -J sum Z Z - h sum X`` on a chain of ``n`` sites. The single-site field is
@@ -31,15 +33,20 @@ def tfim_bond_gate(n: int, i: int, dt: float, j_coupling: float, field: float) -
31
33
  hx_i = field * (0.5 if i > 0 else 1.0)
32
34
  hx_j = field * (0.5 if i < n - 2 else 1.0)
33
35
  h_local = (
34
- -j_coupling * np.kron(_Z, _Z)
35
- - hx_i * np.kron(_I, _X)
36
- - hx_j * np.kron(_X, _I)
36
+ -j_coupling * np.kron(_Z, _Z) - hx_i * np.kron(_I, _X) - hx_j * np.kron(_X, _I)
37
37
  )
38
38
  return expm(-1j * h_local * dt)
39
39
 
40
40
 
41
- def tebd_tfim(n: int, time: float, steps: int = 100, j_coupling: float = 1.0,
42
- field: float = 1.0, max_bond: int = 16, initial: "MPS" = None) -> "MPS":
41
+ def tebd_tfim(
42
+ n: int,
43
+ time: float,
44
+ steps: int = 100,
45
+ j_coupling: float = 1.0,
46
+ field: float = 1.0,
47
+ max_bond: int = 16,
48
+ initial: "MPS" = None,
49
+ ) -> "MPS":
43
50
  """
44
51
  Evolve a TFIM chain of ``n`` sites for total ``time`` with ``steps`` Trotter steps,
45
52
  on an MPS truncated to ``max_bond``. Starts from ``|0...0>`` unless an ``initial``
@@ -77,16 +84,19 @@ def _imag_bond_gate(n, i, dtau, j_coupling, field):
77
84
  hx_i = field * (0.5 if i > 0 else 1.0)
78
85
  hx_j = field * (0.5 if i < n - 2 else 1.0)
79
86
  h_local = (
80
- -j_coupling * np.kron(_Z, _Z)
81
- - hx_i * np.kron(_I, _X)
82
- - hx_j * np.kron(_X, _I)
87
+ -j_coupling * np.kron(_Z, _Z) - hx_i * np.kron(_I, _X) - hx_j * np.kron(_X, _I)
83
88
  )
84
89
  return expm(-h_local * dtau) # imaginary time -> real exponential (cooling)
85
90
 
86
91
 
87
- def imaginary_tebd_ground_state(n: int, j_coupling: float = 1.0, field: float = 1.0,
88
- dtau: float = 0.05, steps: int = 300,
89
- max_bond: int = 16) -> dict:
92
+ def imaginary_tebd_ground_state(
93
+ n: int,
94
+ j_coupling: float = 1.0,
95
+ field: float = 1.0,
96
+ dtau: float = 0.05,
97
+ steps: int = 300,
98
+ max_bond: int = 16,
99
+ ) -> dict:
90
100
  """
91
101
  Find the TFIM ground state of an ``n``-site chain by imaginary-time TEBD -- apply
92
102
  ``e^{-h_{j,j+1} dtau}`` bond gates (cooling), renormalizing each step, until the
@@ -124,8 +134,14 @@ def imaginary_tebd_ground_state(n: int, j_coupling: float = 1.0, field: float =
124
134
  return result
125
135
 
126
136
 
127
- def tebd_magnetization(n: int, time: float, steps: int = 100, j_coupling: float = 1.0,
128
- field: float = 1.0, max_bond: int = 16) -> dict:
137
+ def tebd_magnetization(
138
+ n: int,
139
+ time: float,
140
+ steps: int = 100,
141
+ j_coupling: float = 1.0,
142
+ field: float = 1.0,
143
+ max_bond: int = 16,
144
+ ) -> dict:
129
145
  """
130
146
  Quench a TFIM chain from the all-up state and read out the transverse magnetization.
131
147
 
@@ -30,9 +30,9 @@ def tfim_mpo(n: int, j_coupling: float = 1.0, field: float = 1.0) -> list:
30
30
  tensors = []
31
31
  for i in range(n):
32
32
  if i == 0:
33
- tensors.append(W[2:3, :, :, :]) # left boundary row
33
+ tensors.append(W[2:3, :, :, :]) # left boundary row
34
34
  elif i == n - 1:
35
- tensors.append(W[:, :, :, 0:1]) # right boundary column
35
+ tensors.append(W[:, :, :, 0:1]) # right boundary column
36
36
  else:
37
37
  tensors.append(W)
38
38
  return tensors
@@ -71,8 +71,8 @@ def mpo_expectation(mps, mpo) -> float:
71
71
  """
72
72
  E = np.ones((1, 1, 1), dtype=complex) # (bra bond, mpo bond, ket bond)
73
73
  for A, W in zip(mps.tensors, mpo):
74
- E = np.einsum("lmn,nSr->lmSr", E, A) # absorb ket tensor
75
- E = np.einsum("lmSr,mSTw->lTrw", E, W) # apply operator tensor
74
+ E = np.einsum("lmn,nSr->lmSr", E, A) # absorb ket tensor
75
+ E = np.einsum("lmSr,mSTw->lTrw", E, W) # apply operator tensor
76
76
  E = np.einsum("lTrw,lTb->wrb", E, np.conj(A)) # absorb bra tensor
77
77
  E = E.transpose(2, 0, 1)
78
78
  return float(np.real(E[0, 0, 0]))
@@ -93,5 +93,9 @@ def mpo_to_matrix(mpo) -> np.ndarray:
93
93
  M = T.reshape(dim, dim)
94
94
  # little-endian reordering to match the rest of the library
95
95
  perm = list(range(n - 1, -1, -1))
96
- Mt = M.reshape([2] * (2 * n)).transpose(perm + [n + p for p in perm]).reshape(dim, dim)
96
+ Mt = (
97
+ M.reshape([2] * (2 * n))
98
+ .transpose(perm + [n + p for p in perm])
99
+ .reshape(dim, dim)
100
+ )
97
101
  return Mt
@@ -74,7 +74,9 @@ class MPS:
74
74
  return mps
75
75
 
76
76
  @classmethod
77
- def from_statevector(cls, state_vector, max_bond: int = None, tol: float = 1e-12) -> "MPS":
77
+ def from_statevector(
78
+ cls, state_vector, max_bond: int = None, tol: float = 1e-12
79
+ ) -> "MPS":
78
80
  """
79
81
  Exact MPS for a dense ``state_vector`` via sequential SVD (truncated to
80
82
  ``max_bond`` if given). Qubit ``i`` becomes site ``i`` (little-endian).
@@ -130,8 +132,8 @@ class MPS:
130
132
  E = np.ones((1, 1), dtype=complex) # (bra bond, ket bond)
131
133
  for i, A in enumerate(self.tensors):
132
134
  Op = ops.get(i, eye)
133
- tmp = np.einsum("lm,msr->lsr", E, A) # ket contracted
134
- tmp = np.einsum("ts,lsr->ltr", Op, tmp) # apply operator
135
+ tmp = np.einsum("lm,msr->lsr", E, A) # ket contracted
136
+ tmp = np.einsum("ts,lsr->ltr", Op, tmp) # apply operator
135
137
  E = np.einsum("lta,ltr->ar", np.conj(A), tmp) # bra contracted
136
138
  return complex(E[0, 0])
137
139
 
@@ -169,7 +171,7 @@ class MPS:
169
171
  U, S, Vh = np.linalg.svd(mat, full_matrices=False)
170
172
  keep = S > 1e-14
171
173
  if self.max_bond is not None:
172
- keep[self.max_bond:] = False
174
+ keep[self.max_bond :] = False
173
175
  U, S, Vh = U[:, keep], S[keep], Vh[keep, :]
174
176
  chi_new = len(S)
175
177
  self.tensors[i] = U.reshape(chi_l, 2, chi_new)
@@ -240,7 +242,9 @@ class MPS:
240
242
  n = len(T)
241
243
  for i in range(n - 1, 0, -1):
242
244
  chi_l, d, chi_r = T[i].shape
243
- U, S, Vh = np.linalg.svd(T[i].reshape(chi_l, d * chi_r), full_matrices=False)
245
+ U, S, Vh = np.linalg.svd(
246
+ T[i].reshape(chi_l, d * chi_r), full_matrices=False
247
+ )
244
248
  T[i] = Vh.reshape(len(S), d, chi_r)
245
249
  T[i - 1] = np.tensordot(T[i - 1], U * S, axes=(2, 0))
246
250
 
@@ -248,7 +252,9 @@ class MPS:
248
252
  carry = T[0]
249
253
  for i in range(n - 1):
250
254
  chi_l, d, chi_r = carry.shape
251
- U, S, Vh = np.linalg.svd(carry.reshape(chi_l * d, chi_r), full_matrices=False)
255
+ U, S, Vh = np.linalg.svd(
256
+ carry.reshape(chi_l * d, chi_r), full_matrices=False
257
+ )
252
258
  S = S / np.linalg.norm(S)
253
259
  s2 = S**2
254
260
  s2 = s2[s2 > 1e-14]
@@ -325,8 +331,10 @@ class MPS:
325
331
  Two-point correlation ``<psi| O_a O_b |psi>`` for single-qubit operators on
326
332
  ``qubit_a`` and ``qubit_b`` (contraction, no dense state).
327
333
  """
328
- ops = {qubit_a: np.asarray(obs_a, dtype=complex),
329
- qubit_b: np.asarray(obs_b, dtype=complex)}
334
+ ops = {
335
+ qubit_a: np.asarray(obs_a, dtype=complex),
336
+ qubit_b: np.asarray(obs_b, dtype=complex),
337
+ }
330
338
  return float(np.real(self._environment_scan(ops) / self._environment_scan({})))
331
339
 
332
340
  # --- operators & reduced states ----------------------------------------
@@ -418,6 +426,7 @@ class MPS:
418
426
  Quantum mutual information ``I(a:b) = S(a) + S(b) - S(ab)`` between two qubits
419
427
  (bits), from their reduced density matrices -- total correlation across the pair.
420
428
  """
429
+
421
430
  def vn(rho):
422
431
  vals = np.linalg.eigvalsh(rho).real
423
432
  vals = vals[vals > 1e-12]
@@ -487,7 +496,10 @@ class MPS:
487
496
  """
488
497
  counts = self.sample(shots, seed)
489
498
  best = max(counts, key=counts.get)
490
- return {"bitstring": best, "probability": self.probability([int(c) for c in best])}
499
+ return {
500
+ "bitstring": best,
501
+ "probability": self.probability([int(c) for c in best]),
502
+ }
491
503
 
492
504
  def structure_factor(self, observable, momentum: float) -> float:
493
505
  """
@@ -500,7 +512,11 @@ class MPS:
500
512
  total = 0.0 + 0j
501
513
  for i in range(n):
502
514
  for j in range(n):
503
- cij = self.expectation(O @ O, i) if i == j else self.correlation(O, i, O, j)
515
+ cij = (
516
+ self.expectation(O @ O, i)
517
+ if i == j
518
+ else self.correlation(O, i, O, j)
519
+ )
504
520
  total += np.exp(1j * momentum * (i - j)) * cij
505
521
  return float(np.real(total) / n)
506
522
 
@@ -531,7 +547,9 @@ class MPS:
531
547
  return cls(tensors, max_bond)
532
548
 
533
549
  @classmethod
534
- def random(cls, n: int, bond: int = 4, seed: int = 0, max_bond: int = None) -> "MPS":
550
+ def random(
551
+ cls, n: int, bond: int = 4, seed: int = 0, max_bond: int = None
552
+ ) -> "MPS":
535
553
  """
536
554
  A random MPS on ``n`` qubits with bond dimension ``bond`` (bonds taper to 1 at
537
555
  the ends). Normalized. Useful for testing and benchmarking.
@@ -628,7 +646,10 @@ class MPS:
628
646
  Energy variance ``<H^2> - <H>^2`` of a Pauli-sum Hamiltonian ``terms`` -- zero
629
647
  iff the MPS is an exact eigenstate (a convergence check for DMRG/imaginary TEBD).
630
648
  """
631
- from .algorithms.hamiltonian_simulation import hamiltonian_matrix, pauli_decompose
649
+ from .algorithms.hamiltonian_simulation import (
650
+ hamiltonian_matrix,
651
+ pauli_decompose,
652
+ )
632
653
 
633
654
  H = hamiltonian_matrix(terms, self.n)
634
655
  H2_terms = pauli_decompose(H @ H)
@@ -654,13 +675,17 @@ class MPS:
654
675
  n = len(T)
655
676
  for i in range(n - 1, 0, -1):
656
677
  chi_l, d, chi_r = T[i].shape
657
- U, S, Vh = np.linalg.svd(T[i].reshape(chi_l, d * chi_r), full_matrices=False)
678
+ U, S, Vh = np.linalg.svd(
679
+ T[i].reshape(chi_l, d * chi_r), full_matrices=False
680
+ )
658
681
  T[i] = Vh.reshape(len(S), d, chi_r)
659
682
  T[i - 1] = np.tensordot(T[i - 1], U * S, axes=(2, 0))
660
683
  carry = T[0]
661
684
  for i in range(n - 1):
662
685
  chi_l, d, chi_r = carry.shape
663
- U, S, Vh = np.linalg.svd(carry.reshape(chi_l * d, chi_r), full_matrices=False)
686
+ U, S, Vh = np.linalg.svd(
687
+ carry.reshape(chi_l * d, chi_r), full_matrices=False
688
+ )
664
689
  S = S / np.linalg.norm(S)
665
690
  if i == bond:
666
691
  return S**2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quantum-debugger
3
- Version: 1.0.0
3
+ Version: 1.0.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
@@ -486,8 +486,8 @@ If you use quantum-debugger in your research, please cite:
486
486
 
487
487
  ```bibtex
488
488
  @software{quantum_debugger_2026,
489
- title = {Quantum Debugger: Production-Grade Quantum Machine Learning Library},
490
- author = {Gupta, Raunak Kumar},
489
+ title = {Quantum Debugger: Interactive Circuit Debugging, Multi-Engine Simulation, and Quantum Machine Learning Framework},
490
+ author = {Raunak Kumar Gupta},
491
491
  year = {2026},
492
492
  url = {https://github.com/Raunakg2005/quantum-debugger}
493
493
  }
@@ -511,5 +511,5 @@ If you use quantum-debugger in your research, please cite:
511
511
 
512
512
  ---
513
513
 
514
- **Version:** 1.0.0 (latest on PyPI) · 0.9.1, 0.9.0, 0.8.0 (previous)
514
+ **Version:** 1.0.1 (latest on PyPI) · 1.0.0, 0.9.1, 0.9.0 (previous)
515
515
  **Last Updated:** September 2026
@@ -31,7 +31,9 @@ class TestGroundState:
31
31
  def test_deep_paramagnet(self):
32
32
  # Large field: ground state ~ |+...+>, energy ~ -h * n.
33
33
  n, h = 6, 5.0
34
- r = imaginary_tebd_ground_state(n, j_coupling=0.2, field=h, dtau=0.02, steps=400)
34
+ r = imaginary_tebd_ground_state(
35
+ n, j_coupling=0.2, field=h, dtau=0.02, steps=400
36
+ )
35
37
  assert r["error"] < 1e-2
36
38
 
37
39
 
@@ -39,15 +41,22 @@ class TestScale:
39
41
  def test_large_chain(self):
40
42
  # 24-qubit ground state -- beyond the dense diagonalizer.
41
43
  r = imaginary_tebd_ground_state(24, 1.0, 1.0, dtau=0.05, steps=150, max_bond=12)
42
- assert "exact_energy" not in r # too big to diagonalize
43
- assert r["energy"] < 0 # ferromagnetic-ish, negative
44
+ assert "exact_energy" not in r # too big to diagonalize
45
+ assert r["energy"] < 0 # ferromagnetic-ish, negative
44
46
  assert r["bond"] <= 12
45
47
 
46
48
  def test_extensive_energy(self):
47
49
  # Ground energy per site is roughly constant (extensivity).
48
- e12 = imaginary_tebd_ground_state(12, 1.0, 1.0, dtau=0.05, steps=200)["energy"] / 12
49
- e20 = imaginary_tebd_ground_state(20, 1.0, 1.0, dtau=0.05, steps=200,
50
- max_bond=16)["energy"] / 20
50
+ e12 = (
51
+ imaginary_tebd_ground_state(12, 1.0, 1.0, dtau=0.05, steps=200)["energy"]
52
+ / 12
53
+ )
54
+ e20 = (
55
+ imaginary_tebd_ground_state(
56
+ 20, 1.0, 1.0, dtau=0.05, steps=200, max_bond=16
57
+ )["energy"]
58
+ / 20
59
+ )
51
60
  assert abs(e12 - e20) < 0.1
52
61
 
53
62
 
@@ -38,7 +38,13 @@ class TestMPOExpectation:
38
38
  psi = psi / np.linalg.norm(psi)
39
39
  H = hamiltonian_matrix(tfim_hamiltonian(n, 0.7, 1.0), n)
40
40
  m = MPS.from_statevector(psi, max_bond=16)
41
- assert abs(mpo_expectation(m, tfim_mpo(n, 1.0, 0.7)) - np.real(psi.conj() @ H @ psi)) < 1e-9
41
+ assert (
42
+ abs(
43
+ mpo_expectation(m, tfim_mpo(n, 1.0, 0.7))
44
+ - np.real(psi.conj() @ H @ psi)
45
+ )
46
+ < 1e-9
47
+ )
42
48
 
43
49
  def test_large_ghz(self):
44
50
  n = 30
@@ -105,7 +105,7 @@ class TestScale:
105
105
  assert m.max_bond_dimension() == 2
106
106
  assert abs(m.norm() - 1.0) < 1e-9
107
107
  assert abs(m.correlation(_Z, 0, _Z, n - 1) - 1.0) < 1e-9 # perfectly correlated
108
- assert abs(m.expectation(_X, 0)) < 1e-9 # <X> = 0
108
+ assert abs(m.expectation(_X, 0)) < 1e-9 # <X> = 0
109
109
 
110
110
  def test_product_circuit_stays_bond_one(self):
111
111
  n = 50
@@ -174,7 +174,6 @@ class TestSampling:
174
174
  assert sum(m.sample(137, seed=3).values()) == 137
175
175
 
176
176
 
177
-
178
177
  class TestEntanglementEntropy:
179
178
  def test_matches_dense(self):
180
179
  from quantum_debugger.density_matrix import DensityMatrix
@@ -220,20 +219,25 @@ class TestEntanglementEntropy:
220
219
  assert len(ent) == n - 1
221
220
  assert all(abs(s - 1.0) < 1e-9 for s in ent)
222
221
 
222
+
223
223
  class TestOverlapFidelity:
224
224
  def test_overlap_matches_dense(self):
225
225
  rng = np.random.default_rng(0)
226
226
  n = 4
227
- a = rng.normal(size=2**n) + 1j * rng.normal(size=2**n); a /= np.linalg.norm(a)
228
- b = rng.normal(size=2**n) + 1j * rng.normal(size=2**n); b /= np.linalg.norm(b)
227
+ a = rng.normal(size=2**n) + 1j * rng.normal(size=2**n)
228
+ a /= np.linalg.norm(a)
229
+ b = rng.normal(size=2**n) + 1j * rng.normal(size=2**n)
230
+ b /= np.linalg.norm(b)
229
231
  ov = MPS.from_statevector(a).overlap(MPS.from_statevector(b))
230
232
  assert abs(ov - np.vdot(b, a)) < 1e-9
231
233
 
232
234
  def test_fidelity_matches_dense(self):
233
235
  rng = np.random.default_rng(1)
234
236
  n = 4
235
- a = rng.normal(size=2**n) + 1j * rng.normal(size=2**n); a /= np.linalg.norm(a)
236
- b = rng.normal(size=2**n) + 1j * rng.normal(size=2**n); b /= np.linalg.norm(b)
237
+ a = rng.normal(size=2**n) + 1j * rng.normal(size=2**n)
238
+ a /= np.linalg.norm(a)
239
+ b = rng.normal(size=2**n) + 1j * rng.normal(size=2**n)
240
+ b /= np.linalg.norm(b)
237
241
  fid = MPS.from_statevector(a).fidelity(MPS.from_statevector(b))
238
242
  assert abs(fid - abs(np.vdot(b, a)) ** 2) < 1e-9
239
243
 
@@ -244,8 +248,9 @@ class TestOverlapFidelity:
244
248
  assert abs(m.fidelity(m) - 1.0) < 1e-9
245
249
 
246
250
  def test_orthogonal_states_zero_overlap(self):
247
- a = MPS.zero_state(3) # |000>
248
- b = MPS.zero_state(3); b.apply_single(_X, 0) # |001>
251
+ a = MPS.zero_state(3) # |000>
252
+ b = MPS.zero_state(3)
253
+ b.apply_single(_X, 0) # |001>
249
254
  assert abs(a.overlap(b)) < 1e-12
250
255
 
251
256
  def test_large_ghz_self_fidelity(self):
@@ -260,6 +265,7 @@ class TestOverlapFidelity:
260
265
  with pytest.raises(ValueError):
261
266
  MPS.zero_state(3).overlap(MPS.zero_state(4))
262
267
 
268
+
263
269
  class TestLongRangeGates:
264
270
  @pytest.mark.parametrize("a,b", [(0, 2), (0, 4), (1, 3), (0, 3)])
265
271
  def test_matches_state_vector(self, a, b):
@@ -277,7 +283,8 @@ class TestLongRangeGates:
277
283
 
278
284
  def test_adjacent_delegates(self):
279
285
  rng = np.random.default_rng(0)
280
- psi = rng.normal(size=16) + 1j * rng.normal(size=16); psi /= np.linalg.norm(psi)
286
+ psi = rng.normal(size=16) + 1j * rng.normal(size=16)
287
+ psi /= np.linalg.norm(psi)
281
288
  m = MPS.from_statevector(psi)
282
289
  m.apply_two_long_range(_CNOT, 1, 2)
283
290
  ref = apply_gate_tensor(np, psi, _CNOT, [1, 2], 4)
@@ -294,23 +301,34 @@ class TestLongRangeGates:
294
301
  with pytest.raises(ValueError):
295
302
  MPS.zero_state(4).apply_two_long_range(_CNOT, 3, 1)
296
303
 
304
+
297
305
  class TestFromCircuit:
298
306
  def test_matches_state_vector(self):
299
307
  from quantum_debugger.core.circuit import QuantumCircuit
300
308
 
301
309
  qc = QuantumCircuit(5)
302
- qc.h(0); qc.cnot(0, 1); qc.cnot(3, 1); qc.x(2)
303
- qc.cnot(4, 2); qc.h(3); qc.cnot(2, 0)
310
+ qc.h(0)
311
+ qc.cnot(0, 1)
312
+ qc.cnot(3, 1)
313
+ qc.x(2)
314
+ qc.cnot(4, 2)
315
+ qc.h(3)
316
+ qc.cnot(2, 0)
304
317
  m = MPS.from_circuit(qc, max_bond=32)
305
- assert np.allclose(m.to_statevector(), qc.get_statevector().state_vector, atol=1e-9)
318
+ assert np.allclose(
319
+ m.to_statevector(), qc.get_statevector().state_vector, atol=1e-9
320
+ )
306
321
 
307
322
  def test_reversed_cnot(self):
308
323
  from quantum_debugger.core.circuit import QuantumCircuit
309
324
 
310
325
  qc = QuantumCircuit(3)
311
- qc.x(2); qc.cnot(2, 0) # control > target
326
+ qc.x(2)
327
+ qc.cnot(2, 0) # control > target
312
328
  m = MPS.from_circuit(qc)
313
- assert np.allclose(m.to_statevector(), qc.get_statevector().state_vector, atol=1e-9)
329
+ assert np.allclose(
330
+ m.to_statevector(), qc.get_statevector().state_vector, atol=1e-9
331
+ )
314
332
 
315
333
  def test_ghz_circuit_bond_two(self):
316
334
  from quantum_debugger.core.circuit import QuantumCircuit
@@ -331,6 +349,7 @@ class TestFromCircuit:
331
349
  with pytest.raises(NotImplementedError):
332
350
  MPS.from_circuit(qc)
333
351
 
352
+
334
353
  class TestPauliExpectation:
335
354
  def test_matches_dense_all_strings(self):
336
355
  from quantum_debugger.algorithms import pauli_term_matrix
@@ -352,7 +371,7 @@ class TestPauliExpectation:
352
371
  m.apply_single(_H, 0)
353
372
  for q in range(n - 1):
354
373
  m.apply_two(_CNOT, q)
355
- assert abs(m.expectation_pauli("X" * n) - 1.0) < 1e-9 # X^n stabilizes GHZ
374
+ assert abs(m.expectation_pauli("X" * n) - 1.0) < 1e-9 # X^n stabilizes GHZ
356
375
  assert abs(m.expectation_pauli("Z" + "I" * (n - 2) + "Z") - 1.0) < 1e-9
357
376
 
358
377
  def test_identity_string_is_one(self):
@@ -360,6 +379,7 @@ class TestPauliExpectation:
360
379
  m.apply_single(_H, 0)
361
380
  assert abs(m.expectation_pauli("IIII") - 1.0) < 1e-9
362
381
 
382
+
363
383
  class TestHamiltonianEnergy:
364
384
  def test_tfim_energy_matches_dense(self):
365
385
  from quantum_debugger.algorithms import hamiltonian_matrix, tfim_hamiltonian
@@ -374,7 +394,10 @@ class TestHamiltonianEnergy:
374
394
  assert abs(m.energy(terms) - dense) < 1e-9
375
395
 
376
396
  def test_hubbard_energy_via_pauli_decompose(self):
377
- from quantum_debugger.algorithms import pauli_decompose, fermi_hubbard_hamiltonian
397
+ from quantum_debugger.algorithms import (
398
+ pauli_decompose,
399
+ fermi_hubbard_hamiltonian,
400
+ )
378
401
 
379
402
  H = fermi_hubbard_hamiltonian(2, 1.0, 3.0)
380
403
  terms = pauli_decompose(H)
@@ -396,6 +419,5 @@ class TestHamiltonianEnergy:
396
419
  assert abs(m.energy(tfim_hamiltonian(n, 1.0, 1.0)) - (-(n - 1))) < 1e-9
397
420
 
398
421
 
399
-
400
422
  if __name__ == "__main__":
401
423
  pytest.main([__file__, "-v"])