tensorcircuit-nightly 1.3.0.dev20250909__tar.gz → 1.3.0.dev20250910__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.

Potentially problematic release.


This version of tensorcircuit-nightly might be problematic. Click here for more details.

Files changed (105) hide show
  1. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/CHANGELOG.md +2 -0
  2. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/PKG-INFO +2 -2
  3. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/README.md +1 -1
  4. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/__init__.py +3 -1
  5. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/layers.py +1 -1
  6. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/abstract_backend.py +2 -2
  7. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/basecircuit.py +7 -23
  8. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/circuit.py +3 -3
  9. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/densitymatrix.py +2 -2
  10. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/quantum.py +11 -11
  11. tensorcircuit_nightly-1.3.0.dev20250910/tensorcircuit/quditcircuit.py +670 -0
  12. tensorcircuit_nightly-1.3.0.dev20250910/tensorcircuit/quditgates.py +618 -0
  13. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/results/counts.py +1 -1
  14. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/shadows.py +1 -1
  15. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/templates/hamiltonians.py +14 -6
  16. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/templates/lattice.py +1 -1
  17. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/timeevol.py +2 -2
  18. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit_nightly.egg-info/PKG-INFO +2 -2
  19. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit_nightly.egg-info/SOURCES.txt +2 -0
  20. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/HISTORY.md +0 -0
  21. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/LICENSE +0 -0
  22. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/MANIFEST.in +0 -0
  23. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/README_cn.md +0 -0
  24. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/pyproject.toml +0 -0
  25. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/setup.cfg +0 -0
  26. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/setup.py +0 -0
  27. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/about.py +0 -0
  28. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/abstractcircuit.py +0 -0
  29. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/__init__.py +0 -0
  30. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/ai/__init__.py +0 -0
  31. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/ai/ensemble.py +0 -0
  32. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/dqas.py +0 -0
  33. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/finance/__init__.py +0 -0
  34. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/finance/portfolio.py +0 -0
  35. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/graphdata.py +0 -0
  36. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/optimization.py +0 -0
  37. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/physics/__init__.py +0 -0
  38. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/physics/baseline.py +0 -0
  39. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/physics/fss.py +0 -0
  40. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/utils.py +0 -0
  41. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/vags.py +0 -0
  42. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/van.py +0 -0
  43. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/applications/vqes.py +0 -0
  44. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/asciiart.py +0 -0
  45. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/__init__.py +0 -0
  46. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/backend_factory.py +0 -0
  47. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/cupy_backend.py +0 -0
  48. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/jax_backend.py +0 -0
  49. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/jax_ops.py +0 -0
  50. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/numpy_backend.py +0 -0
  51. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/pytorch_backend.py +0 -0
  52. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/pytorch_ops.py +0 -0
  53. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/tensorflow_backend.py +0 -0
  54. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/backends/tf_ops.py +0 -0
  55. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/channels.py +0 -0
  56. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/cloud/__init__.py +0 -0
  57. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/cloud/abstraction.py +0 -0
  58. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/cloud/apis.py +0 -0
  59. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/cloud/config.py +0 -0
  60. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/cloud/local.py +0 -0
  61. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/cloud/quafu_provider.py +0 -0
  62. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/cloud/tencent.py +0 -0
  63. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/cloud/utils.py +0 -0
  64. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/cloud/wrapper.py +0 -0
  65. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/compiler/__init__.py +0 -0
  66. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/compiler/composed_compiler.py +0 -0
  67. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/compiler/qiskit_compiler.py +0 -0
  68. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/compiler/simple_compiler.py +0 -0
  69. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/cons.py +0 -0
  70. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/experimental.py +0 -0
  71. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/fgs.py +0 -0
  72. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/gates.py +0 -0
  73. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/interfaces/__init__.py +0 -0
  74. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/interfaces/jax.py +0 -0
  75. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/interfaces/numpy.py +0 -0
  76. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/interfaces/scipy.py +0 -0
  77. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/interfaces/tensorflow.py +0 -0
  78. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/interfaces/tensortrans.py +0 -0
  79. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/interfaces/torch.py +0 -0
  80. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/keras.py +0 -0
  81. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/mps_base.py +0 -0
  82. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/mpscircuit.py +0 -0
  83. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/noisemodel.py +0 -0
  84. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/results/__init__.py +0 -0
  85. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/results/qem/__init__.py +0 -0
  86. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/results/qem/benchmark_circuits.py +0 -0
  87. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/results/qem/qem_methods.py +0 -0
  88. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/results/readout_mitigation.py +0 -0
  89. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/simplify.py +0 -0
  90. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/stabilizercircuit.py +0 -0
  91. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/templates/__init__.py +0 -0
  92. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/templates/ansatz.py +0 -0
  93. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/templates/blocks.py +0 -0
  94. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/templates/chems.py +0 -0
  95. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/templates/conversions.py +0 -0
  96. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/templates/dataset.py +0 -0
  97. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/templates/graphs.py +0 -0
  98. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/templates/measurements.py +0 -0
  99. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/torchnn.py +0 -0
  100. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/translation.py +0 -0
  101. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/utils.py +0 -0
  102. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit/vis.py +0 -0
  103. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit_nightly.egg-info/dependency_links.txt +0 -0
  104. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit_nightly.egg-info/requires.txt +0 -0
  105. {tensorcircuit_nightly-1.3.0.dev20250909 → tensorcircuit_nightly-1.3.0.dev20250910}/tensorcircuit_nightly.egg-info/top_level.txt +0 -0
@@ -6,6 +6,8 @@
6
6
 
7
7
  - Add new module `tc.timeevol` for different types of time evolution solvers.
8
8
 
9
+ - Add qudit circuit support with `tc.QuditCircuit` class.
10
+
9
11
  - Add `special_jv` for numpy and jax backends.
10
12
 
11
13
  - Add `jaxy_scan` for numpy and jax backends, contrasting to the tf style original backend scan method.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tensorcircuit-nightly
3
- Version: 1.3.0.dev20250909
3
+ Version: 1.3.0.dev20250910
4
4
  Summary: High performance unified quantum computing framework for the NISQ era
5
5
  Author-email: TensorCircuit Authors <znfesnpbh@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -344,7 +344,7 @@ TensorCircuit-NG is open source, released under the Apache License, Version 2.0.
344
344
  <td align="center" valign="top" width="16.66%"><a href="https://github.com/Stellogic"><img src="https://avatars.githubusercontent.com/u/186928579?v=4?s=100" width="100px;" alt="Stellogic"/><br /><sub><b>Stellogic</b></sub></a><br /><a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Stellogic" title="Code">💻</a> <a href="#example-Stellogic" title="Examples">💡</a> <a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Stellogic" title="Tests">⚠️</a> <a href="#tutorial-Stellogic" title="Tutorials">✅</a></td>
345
345
  <td align="center" valign="top" width="16.66%"><a href="https://github.com/Charlespkuer"><img src="https://avatars.githubusercontent.com/u/112697147?v=4?s=100" width="100px;" alt="Huang"/><br /><sub><b>Huang</b></sub></a><br /><a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Charlespkuer" title="Code">💻</a> <a href="#example-Charlespkuer" title="Examples">💡</a> <a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Charlespkuer" title="Tests">⚠️</a></td>
346
346
  <td align="center" valign="top" width="16.66%"><a href="https://github.com/Huang-Xu-Yang"><img src="https://avatars.githubusercontent.com/u/227286661?v=4?s=100" width="100px;" alt="Huang-Xu-Yang"/><br /><sub><b>Huang-Xu-Yang</b></sub></a><br /><a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Huang-Xu-Yang" title="Code">💻</a> <a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Huang-Xu-Yang" title="Tests">⚠️</a></td>
347
- <td align="center" valign="top" width="16.66%"><a href="https://github.com/WeiguoMa"><img src="https://avatars.githubusercontent.com/u/108172530?v=4?s=100" width="100px;" alt="Weiguo_M"/><br /><sub><b>Weiguo_M</b></sub></a><br /><a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=WeiguoMa" title="Code">💻</a> <a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=WeiguoMa" title="Tests">⚠️</a></td>
347
+ <td align="center" valign="top" width="16.66%"><a href="https://github.com/WeiguoMa"><img src="https://avatars.githubusercontent.com/u/108172530?v=4?s=100" width="100px;" alt="Weiguo_M"/><br /><sub><b>Weiguo_M</b></sub></a><br /><a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=WeiguoMa" title="Code">💻</a> <a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=WeiguoMa" title="Tests">⚠️</a> <a href="#example-WeiguoMa" title="Examples">💡</a> <a href="#tutorial-WeiguoMa" title="Tutorials">✅</a></td>
348
348
  </tr>
349
349
  </tbody>
350
350
  </table>
@@ -309,7 +309,7 @@ TensorCircuit-NG is open source, released under the Apache License, Version 2.0.
309
309
  <td align="center" valign="top" width="16.66%"><a href="https://github.com/Stellogic"><img src="https://avatars.githubusercontent.com/u/186928579?v=4?s=100" width="100px;" alt="Stellogic"/><br /><sub><b>Stellogic</b></sub></a><br /><a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Stellogic" title="Code">💻</a> <a href="#example-Stellogic" title="Examples">💡</a> <a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Stellogic" title="Tests">⚠️</a> <a href="#tutorial-Stellogic" title="Tutorials">✅</a></td>
310
310
  <td align="center" valign="top" width="16.66%"><a href="https://github.com/Charlespkuer"><img src="https://avatars.githubusercontent.com/u/112697147?v=4?s=100" width="100px;" alt="Huang"/><br /><sub><b>Huang</b></sub></a><br /><a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Charlespkuer" title="Code">💻</a> <a href="#example-Charlespkuer" title="Examples">💡</a> <a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Charlespkuer" title="Tests">⚠️</a></td>
311
311
  <td align="center" valign="top" width="16.66%"><a href="https://github.com/Huang-Xu-Yang"><img src="https://avatars.githubusercontent.com/u/227286661?v=4?s=100" width="100px;" alt="Huang-Xu-Yang"/><br /><sub><b>Huang-Xu-Yang</b></sub></a><br /><a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Huang-Xu-Yang" title="Code">💻</a> <a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=Huang-Xu-Yang" title="Tests">⚠️</a></td>
312
- <td align="center" valign="top" width="16.66%"><a href="https://github.com/WeiguoMa"><img src="https://avatars.githubusercontent.com/u/108172530?v=4?s=100" width="100px;" alt="Weiguo_M"/><br /><sub><b>Weiguo_M</b></sub></a><br /><a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=WeiguoMa" title="Code">💻</a> <a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=WeiguoMa" title="Tests">⚠️</a></td>
312
+ <td align="center" valign="top" width="16.66%"><a href="https://github.com/WeiguoMa"><img src="https://avatars.githubusercontent.com/u/108172530?v=4?s=100" width="100px;" alt="Weiguo_M"/><br /><sub><b>Weiguo_M</b></sub></a><br /><a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=WeiguoMa" title="Code">💻</a> <a href="https://github.com/tensorcircuit/tensorcircuit-ng/commits?author=WeiguoMa" title="Tests">⚠️</a> <a href="#example-WeiguoMa" title="Examples">💡</a> <a href="#tutorial-WeiguoMa" title="Tutorials">✅</a></td>
313
313
  </tr>
314
314
  </tbody>
315
315
  </table>
@@ -1,4 +1,4 @@
1
- __version__ = "1.3.0.dev20250909"
1
+ __version__ = "1.3.0.dev20250910"
2
2
  __author__ = "TensorCircuit Authors"
3
3
  __creator__ = "refraction-ray"
4
4
 
@@ -23,8 +23,10 @@ from .cons import (
23
23
  runtime_contractor,
24
24
  ) # prerun of set hooks
25
25
  from . import gates
26
+ from . import quditgates
26
27
  from . import basecircuit
27
28
  from .gates import Gate
29
+ from .quditcircuit import QuditCircuit
28
30
  from .circuit import Circuit, expectation
29
31
  from .mpscircuit import MPSCircuit
30
32
  from .densitymatrix import DMCircuit as DMCircuit_reference
@@ -35,7 +35,7 @@ Symbol = Any # sympy.Symbol
35
35
 
36
36
  def _resolve(symbol: Union[Symbol, Tensor], i: int = 0) -> Tensor:
37
37
  """
38
- Make sure the layer is compatible with both multi-param and single param requirements
38
+ Make sure the layer is compatible with both multi-param and single param requirements
39
39
 
40
40
  What could be the input: list/tuple of sympy.symbol, tf.tensor with 1D or 0D shape
41
41
  """
@@ -1039,8 +1039,8 @@ class ExtendedBackend:
1039
1039
  :type a: Tensor
1040
1040
  :param v: value to inserted
1041
1041
  :type v: Tensor
1042
- :param side: If left’, the index of the first suitable location found is given.
1043
- If right’, return the last such index.
1042
+ :param side: If `left`, the index of the first suitable location found is given.
1043
+ If `right`, return the last such index.
1044
1044
  If there is no suitable index, return either 0 or N (where N is the length of a),
1045
1045
  defaults to "left"
1046
1046
  :type side: str, optional
@@ -3,7 +3,7 @@ Quantum circuit: common methods for all circuit classes as MixIn
3
3
 
4
4
  Note:
5
5
  - Supports qubit (d = 2) and qudit (d >= 2) systems.
6
- - For string-encoded samples/counts when d <= 36, digits use base-d characters 09AZ (A = 10, …, Z = 35).
6
+ - For string-encoded samples/counts when d <= 36, digits use base-d characters 0-9A-Z (A = 10, ..., Z = 35).
7
7
  """
8
8
 
9
9
  # pylint: disable=invalid-name
@@ -362,7 +362,7 @@ class BaseCircuit(AbstractCircuit):
362
362
 
363
363
  def perfect_sampling(self, status: Optional[Tensor] = None) -> Tuple[str, float]:
364
364
  """
365
- Sampling base-d strings (09AZ when d <= 36) from the circuit output based on quantum amplitudes.
365
+ Sampling base-d strings (0-9A-Z when d <= 36) from the circuit output based on quantum amplitudes.
366
366
  Reference: arXiv:1201.3974.
367
367
 
368
368
  :param status: external randomness, with shape [nqubits], defaults to None
@@ -480,28 +480,12 @@ class BaseCircuit(AbstractCircuit):
480
480
 
481
481
  def amplitude_before(self, l: Union[str, Tensor]) -> List[Gate]:
482
482
  r"""
483
- Returns the tensornetwor nodes for the amplitude of the circuit given a computational-basis label ``l``.
484
- For a state simulator, it computes :math:`\langle l \vert \psi\rangle`;
485
- for a density-matrix simulator, it computes :math:`\mathrm{Tr}(\rho \vert l\rangle\langle l\vert)`.
483
+ Returns the tensornetwor nodes for the amplitude of the circuit given the bitstring l.
484
+ For state simulator, it computes :math:`\langle l\vert \psi\rangle`,
485
+ for density matrix simulator, it computes :math:`Tr(\rho \vert l\rangle \langle 1\vert)`
486
486
  Note how these two are different up to a square operation.
487
487
 
488
- :Example:
489
-
490
- >>> c = tc.Circuit(2)
491
- >>> c.X(0)
492
- >>> c.amplitude("10") # d=2, per-qubit digits
493
- array(1.+0.j, dtype=complex64)
494
- >>> c.CNOT(0, 1)
495
- >>> c.amplitude("11")
496
- array(1.+0.j, dtype=complex64)
497
-
498
- For qudits (d>2, d<=36):
499
- >>> c = tc.Circuit(3, dim=12)
500
- >>> c.amplitude("0A2") # base-12 string, A stands for 10
501
-
502
- :param l: Basis label.
503
- - If a string: it must be a base-d string of length ``nqubits``, using 0–9A–Z (A=10,…,Z=35) when ``d<=36``.
504
- - If a tensor/array/list: it should contain per-site integers in ``[0, d-1]`` with length ``nqubits``.
488
+ :param l: The bitstring of 0 and 1s.
505
489
  :type l: Union[str, Tensor]
506
490
  :return: The tensornetwork nodes for the amplitude of the circuit.
507
491
  :rtype: List[Gate]
@@ -620,7 +604,7 @@ class BaseCircuit(AbstractCircuit):
620
604
  "count_tuple": # (np.array([0]), np.array([2]))
621
605
 
622
606
  "count_dict_bin": # {"00": 2, "01": 0, "10": 0, "11": 0}
623
- for cases d\in [11, 36], use 09AZ digits (e.g., 'A' -> 10, …, 'Z' -> 35);
607
+ for cases d\in [11, 36], use 0-9A-Z digits (e.g., 'A' -> 10, ..., 'Z' -> 35);
624
608
 
625
609
  "count_dict_int": # {0: 2, 1: 0, 2: 0, 3: 0}
626
610
 
@@ -1,7 +1,7 @@
1
1
  """
2
2
  Quantum circuit: the state simulator.
3
3
  Supports qubit (dim=2) and qudit (3 <= dim <= 36) systems.
4
- For string-encoded samples/counts, digits use 09AZ where A=10, …, Z=35.
4
+ For string-encoded samples/counts, digits use 0-9A-Z where A=10, ..., Z=35.
5
5
  """
6
6
 
7
7
  # pylint: disable=invalid-name
@@ -768,7 +768,7 @@ class Circuit(BaseCircuit):
768
768
  Take measurement on the given quantum lines by ``index``.
769
769
 
770
770
  Return format:
771
- - For d <= 36, the sample is a base-d string using 09AZ (A=10,…).
771
+ - For d <= 36, the sample is a base-d string using 0-9A-Z (A=10,...).
772
772
 
773
773
  :Example:
774
774
 
@@ -874,7 +874,7 @@ class Circuit(BaseCircuit):
874
874
  :param nmc: repetition time for Monte Carlo sampling for noisfy calculation, defaults to 1000
875
875
  :type nmc: int, optional
876
876
  :param status: external randomness given by tensor uniformly from [0, 1], defaults to None,
877
- used for noisfy circuit sampling
877
+ used for noisy circuit sampling
878
878
  :type status: Optional[Tensor], optional
879
879
  :raises ValueError: "Cannot measure two operators in one index"
880
880
  :return: Tensor with one element
@@ -179,9 +179,9 @@ class DMCircuit(BaseCircuit):
179
179
 
180
180
  @staticmethod
181
181
  def check_kraus(kraus: Sequence[Gate]) -> bool:
182
- """
182
+ r"""
183
183
  Check if Kraus operators satisfy the completeness relation:
184
- sum_i K_i^† K_i = I
184
+ :math:`\sum_i K_i^\dagger K_i = I`
185
185
 
186
186
  :param kraus: Sequence of Kraus operators
187
187
  :type kraus: Sequence[Gate]
@@ -79,7 +79,7 @@ def _decode_basis_label(label: str, n: int, dim: int) -> List[int]:
79
79
  """
80
80
  Decode a string basis label into a list of integer digits.
81
81
 
82
- The label is interpreted in base-``dim`` using characters ``09AZ``.
82
+ The label is interpreted in base-``dim`` using characters ``0-9A-Z``.
83
83
  Only dimensions up to 36 are supported.
84
84
 
85
85
  :param label: basis label string, e.g. "010" or "A9F"
@@ -97,7 +97,7 @@ def _decode_basis_label(label: str, n: int, dim: int) -> List[int]:
97
97
  """
98
98
  if dim > 36:
99
99
  raise NotImplementedError(
100
- f"String basis label supports d<=36 (09AZ). Got dim={dim}. "
100
+ f"String basis label supports d<=36 (0-9A-Z). Got dim={dim}. "
101
101
  "Use an integer array/tensor of length n instead."
102
102
  )
103
103
  s = label.upper()
@@ -107,7 +107,7 @@ def _decode_basis_label(label: str, n: int, dim: int) -> List[int]:
107
107
  for ch in s:
108
108
  if ch not in _ALPHABET:
109
109
  raise ValueError(
110
- f"Invalid character '{ch}' in basis label (allowed 09AZ)."
110
+ f"Invalid character '{ch}' in basis label (allowed 0-9A-Z)."
111
111
  )
112
112
  v = _ALPHABET.index(ch)
113
113
  if v >= dim:
@@ -748,10 +748,10 @@ class QuOperator:
748
748
  return self.__mul__(other)
749
749
 
750
750
  def tensor_product(self, other: "QuOperator") -> "QuOperator":
751
- """
751
+ r"""
752
752
  Tensor product with another operator.
753
753
  Given two operators `A` and `B`, produces a new operator `AB` representing
754
- :math:`A B`. The `out_edges` (`in_edges`) of `AB` is simply the
754
+ :math:`A \otimes B`. The `out_edges` (`in_edges`) of `AB` is simply the
755
755
  concatenation of the `out_edges` (`in_edges`) of `A.copy()` with that of
756
756
  `B.copy()`:
757
757
  `new_out_edges = [*out_edges_A_copy, *out_edges_B_copy]`
@@ -2403,13 +2403,13 @@ def free_energy(
2403
2403
 
2404
2404
  def renyi_entropy(rho: Union[Tensor, QuOperator], k: int = 2) -> Tensor:
2405
2405
  """
2406
- Compute the Rényi entropy of order :math:`k` by given density matrix.
2406
+ Compute the Renyi entropy of order :math:`k` by given density matrix.
2407
2407
 
2408
2408
  :param rho: The density matrix in form of Tensor or QuOperator.
2409
2409
  :type rho: Union[Tensor, QuOperator]
2410
- :param k: The order of Rényi entropy, default is 2.
2410
+ :param k: The order of Renyi entropy, default is 2.
2411
2411
  :type k: int, optional
2412
- :return: The :math:`k` th order of Rényi entropy.
2412
+ :return: The :math:`k` th order of Renyi entropy.
2413
2413
  :rtype: Tensor
2414
2414
  """
2415
2415
  s = 1 / (1 - k) * backend.real(backend.log(trace_product(*[rho for _ in range(k)])))
@@ -2423,7 +2423,7 @@ def renyi_free_energy(
2423
2423
  k: int = 2,
2424
2424
  ) -> Tensor:
2425
2425
  """
2426
- Compute the Rényi free energy of the corresponding density matrix and Hamiltonian.
2426
+ Compute the Renyi free energy of the corresponding density matrix and Hamiltonian.
2427
2427
 
2428
2428
  :Example:
2429
2429
 
@@ -2440,9 +2440,9 @@ def renyi_free_energy(
2440
2440
  :type h: Union[Tensor, QuOperator]
2441
2441
  :param beta: Constant for the optimization, default is 1.
2442
2442
  :type beta: float, optional
2443
- :param k: The order of Rényi entropy, default is 2.
2443
+ :param k: The order of Renyi entropy, default is 2.
2444
2444
  :type k: int, optional
2445
- :return: The :math:`k` th order of Rényi entropy.
2445
+ :return: The :math:`k` th order of Renyi entropy.
2446
2446
  :rtype: Tensor
2447
2447
  """
2448
2448
  energy = backend.real(trace_product(rho, h))