ffsim 0.0.83__tar.gz → 0.0.85__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 (287) hide show
  1. {ffsim-0.0.83 → ffsim-0.0.85}/.github/workflows/check.yml +1 -1
  2. {ffsim-0.0.83 → ffsim-0.0.85}/.gitignore +3 -0
  3. {ffsim-0.0.83 → ffsim-0.0.85}/CONTRIBUTING.md +4 -2
  4. {ffsim-0.0.83 → ffsim-0.0.85}/Cargo.lock +59 -60
  5. {ffsim-0.0.83 → ffsim-0.0.85}/Cargo.toml +1 -1
  6. {ffsim-0.0.83 → ffsim-0.0.85}/Dockerfile +14 -4
  7. {ffsim-0.0.83 → ffsim-0.0.85}/PKG-INFO +7 -2
  8. ffsim-0.0.85/docs/execute_notebooks.py +398 -0
  9. {ffsim-0.0.83 → ffsim-0.0.85}/docs/explanations/diag-coulomb-hamiltonian.ipynb +4 -4
  10. {ffsim-0.0.83 → ffsim-0.0.85}/docs/explanations/double-factorized.ipynb +2 -3
  11. {ffsim-0.0.83 → ffsim-0.0.85}/docs/explanations/fermion-operator.ipynb +48 -59
  12. ffsim-0.0.85/docs/explanations/fermionic-fft.ipynb +263 -0
  13. {ffsim-0.0.83 → ffsim-0.0.85}/docs/explanations/hamiltonians.ipynb +4 -4
  14. {ffsim-0.0.83 → ffsim-0.0.85}/docs/explanations/index.md +1 -0
  15. ffsim-0.0.85/docs/explanations/lucj.ipynb +1089 -0
  16. ffsim-0.0.85/docs/explanations/orbital-rotation.ipynb +257 -0
  17. {ffsim-0.0.83 → ffsim-0.0.85}/docs/explanations/protocols.ipynb +30 -32
  18. ffsim-0.0.85/docs/explanations/qubit-gate-decompositions.ipynb +495 -0
  19. {ffsim-0.0.83 → ffsim-0.0.85}/docs/explanations/state-vectors-and-gates.ipynb +3 -4
  20. {ffsim-0.0.83 → ffsim-0.0.85}/docs/explanations/variational-ansatzes.ipynb +151 -31
  21. {ffsim-0.0.83 → ffsim-0.0.85}/docs/generate_api_docs.py +8 -4
  22. ffsim-0.0.85/docs/how-to-guides/compress-orbital-rotation.ipynb +468 -0
  23. {ffsim-0.0.83 → ffsim-0.0.85}/docs/how-to-guides/compute-expectation-values.ipynb +9 -7
  24. {ffsim-0.0.83 → ffsim-0.0.85}/docs/how-to-guides/entanglement-forging.ipynb +10 -11
  25. {ffsim-0.0.83 → ffsim-0.0.85}/docs/how-to-guides/index.md +3 -1
  26. ffsim-0.0.85/docs/how-to-guides/optimize-orbitals.ipynb +450 -0
  27. ffsim-0.0.85/docs/how-to-guides/qiskit-circuits-sim.ipynb +383 -0
  28. {ffsim-0.0.83 → ffsim-0.0.85}/docs/how-to-guides/qiskit-lucj.ipynb +11 -11
  29. ffsim-0.0.85/docs/how-to-guides/qiskit-merge-orbital-rotations.ipynb +193 -0
  30. {ffsim-0.0.83 → ffsim-0.0.85}/docs/how-to-guides/qiskit-trotter.ipynb +6 -7
  31. {ffsim-0.0.83 → ffsim-0.0.85}/docs/how-to-guides/sample-from-state-vectors.ipynb +2 -2
  32. {ffsim-0.0.83 → ffsim-0.0.85}/docs/how-to-guides/sample-slater.ipynb +2 -2
  33. {ffsim-0.0.83 → ffsim-0.0.85}/docs/how-to-guides/simulate-trotter-hubbard.ipynb +4 -4
  34. {ffsim-0.0.83 → ffsim-0.0.85}/docs/how-to-guides/simulate-trotter-mol-ham.ipynb +5 -5
  35. {ffsim-0.0.83 → ffsim-0.0.85}/docs/how-to-guides/simulate-vqe.ipynb +57 -57
  36. ffsim-0.0.85/docs/how-to-guides/ucj-energy.ipynb +325 -0
  37. {ffsim-0.0.83 → ffsim-0.0.85}/docs/install.md +21 -0
  38. ffsim-0.0.85/docs/tutorials/create-variational-ansatz.ipynb +614 -0
  39. {ffsim-0.0.83 → ffsim-0.0.85}/docs/tutorials/double-factorized-trotter.ipynb +13 -9
  40. {ffsim-0.0.83 → ffsim-0.0.85}/docs/tutorials/index.md +1 -0
  41. {ffsim-0.0.83 → ffsim-0.0.85}/pyproject.toml +20 -3
  42. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/__init__.py +39 -1
  43. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_slow/fermion_operator.py +4 -0
  44. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/contract/__init__.py +2 -1
  45. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/contract/two_body.py +111 -1
  46. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/hamiltonians/__init__.py +2 -0
  47. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/hamiltonians/double_factorized_hamiltonian.py +19 -19
  48. ffsim-0.0.85/python/ffsim/hamiltonians/molecular_hamiltonian.py +984 -0
  49. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/hamiltonians/single_factorized_hamiltonian.py +50 -1
  50. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/linalg/__init__.py +10 -0
  51. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/linalg/double_factorized_decomposition.py +850 -340
  52. ffsim-0.0.85/python/ffsim/linalg/linalg.py +196 -0
  53. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/linalg/util.py +503 -113
  54. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/molecular_data.py +4 -1
  55. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/operators/coupled_cluster.py +3 -3
  56. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/optimize/linear_method.py +5 -7
  57. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/protocols/approximate_equality_protocol.py +4 -8
  58. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/__init__.py +18 -1
  59. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/gates/__init__.py +6 -0
  60. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/gates/diag_coulomb.py +2 -2
  61. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/gates/diag_coulomb_trotter_split_op.py +1 -1
  62. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/gates/double_factorized_trotter.py +1 -1
  63. ffsim-0.0.85/python/ffsim/qiskit/gates/fermionic_fft.py +225 -0
  64. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/gates/givens_ansatz.py +2 -2
  65. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/gates/num_num_ansatz.py +1 -1
  66. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/gates/num_op_sum.py +2 -2
  67. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/gates/orbital_rotation.py +2 -2
  68. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/gates/slater_determinant.py +4 -4
  69. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/gates/ucj.py +3 -3
  70. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/jordan_wigner.py +1 -1
  71. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/lucj_pass_manager.py +17 -15
  72. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/sampler.py +4 -0
  73. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/sim.py +113 -3
  74. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/transpiler_stages.py +4 -5
  75. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/random/__init__.py +16 -0
  76. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/random/random.py +591 -128
  77. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/states/__init__.py +2 -1
  78. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/states/bitstring.py +7 -3
  79. ffsim-0.0.85/python/ffsim/states/rdm.py +451 -0
  80. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/states/slater.py +92 -42
  81. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/testing/testing.py +46 -45
  82. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/trotter/qdrift.py +8 -0
  83. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/__init__.py +18 -0
  84. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/orbital_optimization.py +80 -55
  85. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/uccsd.py +681 -71
  86. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/ucj_angles_spin_balanced.py +11 -1
  87. ffsim-0.0.85/python/ffsim/variational/ucj_energy.py +1460 -0
  88. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/ucj_spin_balanced.py +168 -100
  89. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/ucj_spin_unbalanced.py +339 -208
  90. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/ucj_spinless.py +145 -69
  91. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/util.py +58 -1
  92. {ffsim-0.0.83 → ffsim-0.0.85}/src/fermion_operator.rs +62 -16
  93. {ffsim-0.0.83 → ffsim-0.0.85}/src/jordan_wigner.rs +10 -0
  94. ffsim-0.0.85/tests/python/conftest.py +35 -0
  95. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/contract/two_body_test.py +80 -0
  96. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/gates/diag_coulomb_test.py +16 -23
  97. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/gates/orbital_rotation_test.py +20 -27
  98. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/hamiltonians/double_factorized_hamiltonian_test.py +53 -0
  99. ffsim-0.0.85/tests/python/hamiltonians/molecular_hamiltonian_test.py +549 -0
  100. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/hamiltonians/single_factorized_hamiltonian_test.py +94 -0
  101. ffsim-0.0.85/tests/python/import_test.py +54 -0
  102. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/linalg/double_factorized_decomposition_test.py +684 -32
  103. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/linalg/givens_test.py +2 -3
  104. ffsim-0.0.85/tests/python/linalg/linalg_test.py +144 -0
  105. ffsim-0.0.85/tests/python/linalg/util_test.py +1136 -0
  106. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/molecular_data_test.py +4 -3
  107. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/operators/coupled_cluster_test.py +21 -9
  108. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/operators/fermion_operator_test.py +164 -36
  109. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/gates/diag_coulomb_test.py +32 -0
  110. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/gates/diag_coulomb_trotter_split_op_test.py +27 -0
  111. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/gates/double_factorized_trotter_test.py +31 -0
  112. ffsim-0.0.85/tests/python/qiskit/gates/fermionic_fft_test.py +155 -0
  113. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/gates/givens_ansatz_test.py +27 -22
  114. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/gates/num_num_ansatz_test.py +18 -8
  115. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/gates/num_op_sum_test.py +29 -0
  116. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/gates/orbital_rotation_test.py +33 -1
  117. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/gates/slater_determinant_test.py +80 -0
  118. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/gates/ucj_test.py +47 -0
  119. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/jordan_wigner_test.py +11 -1
  120. ffsim-0.0.85/tests/python/qiskit/lazy_import_test.py +20 -0
  121. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/lucj_pass_manager_test.py +31 -0
  122. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/sampler_test.py +19 -1
  123. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/sim_test.py +57 -0
  124. ffsim-0.0.85/tests/python/random_test.py +752 -0
  125. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/states/bitstring_test.py +51 -0
  126. ffsim-0.0.85/tests/python/states/rdm_test.py +639 -0
  127. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/states/slater_test.py +143 -30
  128. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/states/states_test.py +4 -3
  129. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/trotter/diag_coulomb_split_op_test.py +1 -1
  130. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/trotter/double_factorized_test.py +6 -6
  131. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/variational/givens_test.py +2 -2
  132. ffsim-0.0.85/tests/python/variational/orbital_optimization_test.py +425 -0
  133. ffsim-0.0.85/tests/python/variational/uccsd_test.py +645 -0
  134. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/variational/ucj_angles_spin_balanced_test.py +3 -3
  135. ffsim-0.0.85/tests/python/variational/ucj_energy_test.py +458 -0
  136. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/variational/ucj_spin_balanced_test.py +215 -5
  137. ffsim-0.0.85/tests/python/variational/ucj_spin_unbalanced_test.py +785 -0
  138. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/variational/ucj_spinless_test.py +191 -10
  139. ffsim-0.0.85/uv.lock +4153 -0
  140. ffsim-0.0.83/docs/explanations/lucj.ipynb +0 -681
  141. ffsim-0.0.83/docs/explanations/orbital-rotation.ipynb +0 -258
  142. ffsim-0.0.83/docs/explanations/qubit-gate-decompositions.ipynb +0 -495
  143. ffsim-0.0.83/docs/how-to-guides/compress-orbital-rotation.ipynb +0 -477
  144. ffsim-0.0.83/docs/how-to-guides/qiskit-circuits-sim.ipynb +0 -383
  145. ffsim-0.0.83/docs/how-to-guides/qiskit-merge-orbital-rotations.ipynb +0 -193
  146. ffsim-0.0.83/python/ffsim/hamiltonians/molecular_hamiltonian.py +0 -382
  147. ffsim-0.0.83/python/ffsim/linalg/linalg.py +0 -104
  148. ffsim-0.0.83/python/ffsim/states/rdm.py +0 -283
  149. ffsim-0.0.83/tests/python/hamiltonians/molecular_hamiltonian_test.py +0 -360
  150. ffsim-0.0.83/tests/python/linalg/linalg_test.py +0 -57
  151. ffsim-0.0.83/tests/python/linalg/util_test.py +0 -646
  152. ffsim-0.0.83/tests/python/random_test.py +0 -230
  153. ffsim-0.0.83/tests/python/states/rdm_test.py +0 -247
  154. ffsim-0.0.83/tests/python/variational/orbital_optimization_test.py +0 -91
  155. ffsim-0.0.83/tests/python/variational/uccsd_test.py +0 -545
  156. ffsim-0.0.83/tests/python/variational/ucj_spin_unbalanced_test.py +0 -418
  157. ffsim-0.0.83/uv.lock +0 -2999
  158. {ffsim-0.0.83 → ffsim-0.0.85}/.cargo/config.toml +0 -0
  159. {ffsim-0.0.83 → ffsim-0.0.85}/.dockerignore +0 -0
  160. {ffsim-0.0.83 → ffsim-0.0.85}/.github/workflows/build-and-release.yml +0 -0
  161. {ffsim-0.0.83 → ffsim-0.0.85}/.github/workflows/docker.yml +0 -0
  162. {ffsim-0.0.83 → ffsim-0.0.85}/.github/workflows/docs-dev.yml +0 -0
  163. {ffsim-0.0.83 → ffsim-0.0.85}/.github/workflows/docs-release.yml +0 -0
  164. {ffsim-0.0.83 → ffsim-0.0.85}/.github/workflows/test-latest-versions.yml +0 -0
  165. {ffsim-0.0.83 → ffsim-0.0.85}/.github/workflows/test-minimum-versions.yml +0 -0
  166. {ffsim-0.0.83 → ffsim-0.0.85}/.pre-commit-config.yaml +0 -0
  167. {ffsim-0.0.83 → ffsim-0.0.85}/LICENSE +0 -0
  168. {ffsim-0.0.83 → ffsim-0.0.85}/README.md +0 -0
  169. {ffsim-0.0.83 → ffsim-0.0.85}/compose.yaml +0 -0
  170. {ffsim-0.0.83 → ffsim-0.0.85}/docs/_static/logo-dark.svg +0 -0
  171. {ffsim-0.0.83 → ffsim-0.0.85}/docs/_static/logo.svg +0 -0
  172. {ffsim-0.0.83 → ffsim-0.0.85}/docs/_templates/autosummary/class.rst +0 -0
  173. {ffsim-0.0.83 → ffsim-0.0.85}/docs/conf.py +0 -0
  174. {ffsim-0.0.83 → ffsim-0.0.85}/docs/index.md +0 -0
  175. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_cistring.py +0 -0
  176. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_lib.pyi +0 -0
  177. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_slow/__init__.py +0 -0
  178. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_slow/contract/__init__.py +0 -0
  179. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_slow/contract/diag_coulomb.py +0 -0
  180. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_slow/contract/num_op_sum.py +0 -0
  181. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_slow/gates/__init__.py +0 -0
  182. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_slow/gates/diag_coulomb.py +0 -0
  183. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_slow/gates/num_op_sum.py +0 -0
  184. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/_slow/gates/orbital_rotation.py +0 -0
  185. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/contract/diag_coulomb.py +0 -0
  186. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/contract/num_op_sum.py +0 -0
  187. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/contract/one_body.py +0 -0
  188. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/gates/__init__.py +0 -0
  189. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/gates/basic_gates.py +0 -0
  190. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/gates/diag_coulomb.py +0 -0
  191. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/gates/num_op_sum.py +0 -0
  192. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/gates/orbital_rotation.py +0 -0
  193. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/gates/quad_ham.py +0 -0
  194. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/hamiltonians/diagonal_coulomb_hamiltonian.py +0 -0
  195. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/init_cache.py +0 -0
  196. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/linalg/givens.py +0 -0
  197. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/linalg/predicates.py +0 -0
  198. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/operators/__init__.py +0 -0
  199. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/operators/common_operators.py +0 -0
  200. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/operators/fermi_hubbard.py +0 -0
  201. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/operators/fermion_action.py +0 -0
  202. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/operators/fermion_operator.py +0 -0
  203. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/optimize/__init__.py +0 -0
  204. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/optimize/_util.py +0 -0
  205. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/protocols/__init__.py +0 -0
  206. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/protocols/apply_unitary_protocol.py +0 -0
  207. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/protocols/diagonal_protocol.py +0 -0
  208. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/protocols/fermion_operator_protocol.py +0 -0
  209. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/protocols/linear_operator_protocol.py +0 -0
  210. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/protocols/trace_protocol.py +0 -0
  211. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/py.typed +0 -0
  212. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/transpiler_passes/__init__.py +0 -0
  213. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/transpiler_passes/drop_negligible.py +0 -0
  214. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/transpiler_passes/merge_orbital_rotations.py +0 -0
  215. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/qiskit/util.py +0 -0
  216. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/states/dimensions.py +0 -0
  217. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/states/product_state_sum.py +0 -0
  218. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/states/sample_slater.py +0 -0
  219. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/states/spin.py +0 -0
  220. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/states/states.py +0 -0
  221. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/states/wick.py +0 -0
  222. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/testing/__init__.py +0 -0
  223. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/trotter/__init__.py +0 -0
  224. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/trotter/_util.py +0 -0
  225. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/trotter/diagonal_coulomb_split_op.py +0 -0
  226. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/trotter/double_factorized.py +0 -0
  227. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/givens.py +0 -0
  228. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/hopgate.py +0 -0
  229. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/multireference.py +0 -0
  230. {ffsim-0.0.83 → ffsim-0.0.85}/python/ffsim/variational/num_num.py +0 -0
  231. {ffsim-0.0.83 → ffsim-0.0.85}/src/contract/diag_coulomb.rs +0 -0
  232. {ffsim-0.0.83 → ffsim-0.0.85}/src/contract/fermion_operator.rs +0 -0
  233. {ffsim-0.0.83 → ffsim-0.0.85}/src/contract/mod.rs +0 -0
  234. {ffsim-0.0.83 → ffsim-0.0.85}/src/contract/num_op_sum.rs +0 -0
  235. {ffsim-0.0.83 → ffsim-0.0.85}/src/gates/diag_coulomb.rs +0 -0
  236. {ffsim-0.0.83 → ffsim-0.0.85}/src/gates/mod.rs +0 -0
  237. {ffsim-0.0.83 → ffsim-0.0.85}/src/gates/num_op_sum.rs +0 -0
  238. {ffsim-0.0.83 → ffsim-0.0.85}/src/gates/orbital_rotation.rs +0 -0
  239. {ffsim-0.0.83 → ffsim-0.0.85}/src/gates/phase_shift.rs +0 -0
  240. {ffsim-0.0.83 → ffsim-0.0.85}/src/lib.rs +0 -0
  241. {ffsim-0.0.83 → ffsim-0.0.85}/src/linalg/givens.rs +0 -0
  242. {ffsim-0.0.83 → ffsim-0.0.85}/src/linalg/mod.rs +0 -0
  243. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/__init__.py +0 -0
  244. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/_slow/__init__.py +0 -0
  245. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/_slow/contract/__init__.py +0 -0
  246. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/_slow/contract/diag_coulomb_test.py +0 -0
  247. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/_slow/contract/num_op_sum_test.py +0 -0
  248. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/_slow/gates/__init__.py +0 -0
  249. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/_slow/gates/diag_coulomb_test.py +0 -0
  250. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/_slow/gates/num_op_sum_test.py +0 -0
  251. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/_slow/gates/orbital_rotation_test.py +0 -0
  252. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/contract/__init__.py +0 -0
  253. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/contract/diag_coulomb_test.py +0 -0
  254. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/contract/num_op_sum_test.py +0 -0
  255. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/gates/__init__.py +0 -0
  256. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/gates/basic_gates_test.py +0 -0
  257. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/gates/num_op_sum_test.py +0 -0
  258. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/gates/quad_ham_test.py +0 -0
  259. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/hamiltonians/__init__.py +0 -0
  260. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/hamiltonians/diagonal_coulomb_hamiltonian_test.py +0 -0
  261. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/linalg/__init__.py +0 -0
  262. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/operators/__init__.py +0 -0
  263. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/operators/common_operators_test.py +0 -0
  264. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/operators/fermi_hubbard_test.py +0 -0
  265. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/operators/fermion_action_test.py +0 -0
  266. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/optimize/__init__.py +0 -0
  267. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/optimize/linear_method_test.py +0 -0
  268. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/protocols/__init__.py +0 -0
  269. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/protocols/trace_protocol_test.py +0 -0
  270. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/__init__.py +0 -0
  271. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/gates/__init__.py +0 -0
  272. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/transpiler_passes/__init__.py +0 -0
  273. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/transpiler_passes/drop_negligible_test.py +0 -0
  274. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/transpiler_passes/merge_orbital_rotations_test.py +0 -0
  275. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/qiskit/util_test.py +0 -0
  276. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/states/__init__.py +0 -0
  277. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/states/sample_slater_test.py +0 -0
  278. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/states/wick_test.py +0 -0
  279. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/test_data/orbital_rotation-0.npy +0 -0
  280. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/test_no_warnings.py +0 -0
  281. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/testing_test.py +0 -0
  282. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/trotter/__init__.py +0 -0
  283. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/trotter/qdrift_test.py +0 -0
  284. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/variational/__init__.py +0 -0
  285. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/variational/hopgate_test.py +0 -0
  286. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/variational/multireference_test.py +0 -0
  287. {ffsim-0.0.83 → ffsim-0.0.85}/tests/python/variational/num_num_test.py +0 -0
@@ -17,7 +17,7 @@ jobs:
17
17
  runs-on: ubuntu-latest
18
18
  strategy:
19
19
  matrix:
20
- tox-env: ["coverage", "type", "lint", "format", "spell", "docs"]
20
+ tox-env: ["test-no-extras", "coverage", "type", "lint", "format", "spell", "docs"]
21
21
  steps:
22
22
  - uses: actions/checkout@v6
23
23
  - name: Install dependencies
@@ -134,6 +134,9 @@ dmypy.json
134
134
  # VS Code
135
135
  .vscode/
136
136
 
137
+ # macOS
138
+ .DS_Store
139
+
137
140
  # cibuildwheel
138
141
  wheelhouse/
139
142
 
@@ -74,13 +74,15 @@ mypy
74
74
  ### Fix lint errors
75
75
 
76
76
  ```bash
77
- ruff check --fix
77
+ ruff check --fix # for Python code
78
+ cargo clippy --all --fix -- -D warnings # for Rust code
78
79
  ```
79
80
 
80
81
  ### Fix formatting errors
81
82
 
82
83
  ```bash
83
- ruff format
84
+ ruff format # for Python code
85
+ cargo fmt --all # for Rust code
84
86
  ```
85
87
 
86
88
  ### Run spell check
@@ -4,54 +4,40 @@ version = 4
4
4
 
5
5
  [[package]]
6
6
  name = "autocfg"
7
- version = "1.1.0"
7
+ version = "1.5.1"
8
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
10
-
11
- [[package]]
12
- name = "cfg-if"
13
- version = "1.0.0"
14
- source = "registry+https://github.com/rust-lang/crates.io-index"
15
- checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
9
+ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
16
10
 
17
11
  [[package]]
18
12
  name = "crossbeam-deque"
19
- version = "0.8.3"
13
+ version = "0.8.7"
20
14
  source = "registry+https://github.com/rust-lang/crates.io-index"
21
- checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
15
+ checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb"
22
16
  dependencies = [
23
- "cfg-if",
24
17
  "crossbeam-epoch",
25
18
  "crossbeam-utils",
26
19
  ]
27
20
 
28
21
  [[package]]
29
22
  name = "crossbeam-epoch"
30
- version = "0.9.15"
23
+ version = "0.9.20"
31
24
  source = "registry+https://github.com/rust-lang/crates.io-index"
32
- checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
25
+ checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f"
33
26
  dependencies = [
34
- "autocfg",
35
- "cfg-if",
36
27
  "crossbeam-utils",
37
- "memoffset",
38
- "scopeguard",
39
28
  ]
40
29
 
41
30
  [[package]]
42
31
  name = "crossbeam-utils"
43
- version = "0.8.16"
32
+ version = "0.8.22"
44
33
  source = "registry+https://github.com/rust-lang/crates.io-index"
45
- checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
46
- dependencies = [
47
- "cfg-if",
48
- ]
34
+ checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17"
49
35
 
50
36
  [[package]]
51
37
  name = "either"
52
- version = "1.8.1"
38
+ version = "1.18.0"
53
39
  source = "registry+https://github.com/rust-lang/crates.io-index"
54
- checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
40
+ checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"
55
41
 
56
42
  [[package]]
57
43
  name = "ffsim"
@@ -72,21 +58,24 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
72
58
 
73
59
  [[package]]
74
60
  name = "indoc"
75
- version = "2.0.5"
61
+ version = "2.0.7"
76
62
  source = "registry+https://github.com/rust-lang/crates.io-index"
77
- checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
63
+ checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
64
+ dependencies = [
65
+ "rustversion",
66
+ ]
78
67
 
79
68
  [[package]]
80
69
  name = "libc"
81
- version = "0.2.147"
70
+ version = "0.2.189"
82
71
  source = "registry+https://github.com/rust-lang/crates.io-index"
83
- checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
72
+ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
84
73
 
85
74
  [[package]]
86
75
  name = "matrixmultiply"
87
- version = "0.3.7"
76
+ version = "0.3.11"
88
77
  source = "registry+https://github.com/rust-lang/crates.io-index"
89
- checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77"
78
+ checksum = "3f607c237553f086e7043417a51df26b2eb899d3caff94e6a67592ff992fedc7"
90
79
  dependencies = [
91
80
  "autocfg",
92
81
  "rawpointer",
@@ -94,23 +83,25 @@ dependencies = [
94
83
 
95
84
  [[package]]
96
85
  name = "memoffset"
97
- version = "0.9.0"
86
+ version = "0.9.1"
98
87
  source = "registry+https://github.com/rust-lang/crates.io-index"
99
- checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
88
+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
100
89
  dependencies = [
101
90
  "autocfg",
102
91
  ]
103
92
 
104
93
  [[package]]
105
94
  name = "ndarray"
106
- version = "0.15.6"
95
+ version = "0.17.2"
107
96
  source = "registry+https://github.com/rust-lang/crates.io-index"
108
- checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
97
+ checksum = "520080814a7a6b4a6e9070823bb24b4531daac8c4627e08ba5de8c5ef2f2752d"
109
98
  dependencies = [
110
99
  "matrixmultiply",
111
100
  "num-complex",
112
101
  "num-integer",
113
102
  "num-traits",
103
+ "portable-atomic",
104
+ "portable-atomic-util",
114
105
  "rawpointer",
115
106
  "rayon",
116
107
  ]
@@ -126,11 +117,10 @@ dependencies = [
126
117
 
127
118
  [[package]]
128
119
  name = "num-integer"
129
- version = "0.1.45"
120
+ version = "0.1.47"
130
121
  source = "registry+https://github.com/rust-lang/crates.io-index"
131
- checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
122
+ checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b"
132
123
  dependencies = [
133
- "autocfg",
134
124
  "num-traits",
135
125
  ]
136
126
 
@@ -161,21 +151,30 @@ dependencies = [
161
151
 
162
152
  [[package]]
163
153
  name = "once_cell"
164
- version = "1.21.3"
154
+ version = "1.21.4"
165
155
  source = "registry+https://github.com/rust-lang/crates.io-index"
166
- checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
156
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
167
157
 
168
158
  [[package]]
169
159
  name = "portable-atomic"
170
- version = "1.7.0"
160
+ version = "1.15.0"
161
+ source = "registry+https://github.com/rust-lang/crates.io-index"
162
+ checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
163
+
164
+ [[package]]
165
+ name = "portable-atomic-util"
166
+ version = "0.2.8"
171
167
  source = "registry+https://github.com/rust-lang/crates.io-index"
172
- checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265"
168
+ checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715"
169
+ dependencies = [
170
+ "portable-atomic",
171
+ ]
173
172
 
174
173
  [[package]]
175
174
  name = "proc-macro2"
176
- version = "1.0.105"
175
+ version = "1.0.107"
177
176
  source = "registry+https://github.com/rust-lang/crates.io-index"
178
- checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
177
+ checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
179
178
  dependencies = [
180
179
  "unicode-ident",
181
180
  ]
@@ -244,9 +243,9 @@ dependencies = [
244
243
 
245
244
  [[package]]
246
245
  name = "quote"
247
- version = "1.0.43"
246
+ version = "1.0.47"
248
247
  source = "registry+https://github.com/rust-lang/crates.io-index"
249
- checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
248
+ checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
250
249
  dependencies = [
251
250
  "proc-macro2",
252
251
  ]
@@ -259,9 +258,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
259
258
 
260
259
  [[package]]
261
260
  name = "rayon"
262
- version = "1.11.0"
261
+ version = "1.12.0"
263
262
  source = "registry+https://github.com/rust-lang/crates.io-index"
264
- checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f"
263
+ checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d"
265
264
  dependencies = [
266
265
  "either",
267
266
  "rayon-core",
@@ -279,21 +278,21 @@ dependencies = [
279
278
 
280
279
  [[package]]
281
280
  name = "rustc-hash"
282
- version = "2.1.1"
281
+ version = "2.1.3"
283
282
  source = "registry+https://github.com/rust-lang/crates.io-index"
284
- checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
283
+ checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d"
285
284
 
286
285
  [[package]]
287
- name = "scopeguard"
288
- version = "1.1.0"
286
+ name = "rustversion"
287
+ version = "1.0.23"
289
288
  source = "registry+https://github.com/rust-lang/crates.io-index"
290
- checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
289
+ checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
291
290
 
292
291
  [[package]]
293
292
  name = "syn"
294
- version = "2.0.114"
293
+ version = "2.0.119"
295
294
  source = "registry+https://github.com/rust-lang/crates.io-index"
296
- checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
295
+ checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
297
296
  dependencies = [
298
297
  "proc-macro2",
299
298
  "quote",
@@ -302,18 +301,18 @@ dependencies = [
302
301
 
303
302
  [[package]]
304
303
  name = "target-lexicon"
305
- version = "0.13.4"
304
+ version = "0.13.5"
306
305
  source = "registry+https://github.com/rust-lang/crates.io-index"
307
- checksum = "b1dd07eb858a2067e2f3c7155d54e929265c264e6f37efe3ee7a8d1b5a1dd0ba"
306
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
308
307
 
309
308
  [[package]]
310
309
  name = "unicode-ident"
311
- version = "1.0.9"
310
+ version = "1.0.24"
312
311
  source = "registry+https://github.com/rust-lang/crates.io-index"
313
- checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
312
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
314
313
 
315
314
  [[package]]
316
315
  name = "unindent"
317
- version = "0.2.3"
316
+ version = "0.2.4"
318
317
  source = "registry+https://github.com/rust-lang/crates.io-index"
319
- checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
318
+ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
@@ -10,7 +10,7 @@ name = "ffsim"
10
10
  crate-type = ["cdylib"]
11
11
 
12
12
  [dependencies]
13
- ndarray = { version = "0.15", features = ["rayon"] }
13
+ ndarray = { version = "0.17", features = ["rayon"] }
14
14
  num-integer = "0.1"
15
15
  numpy = "0.27"
16
16
  pyo3 = { version = "0.27", features = [
@@ -8,7 +8,14 @@ RUN rm -rf work
8
8
 
9
9
  # Install apt dependencies
10
10
  USER root
11
- RUN apt update && apt install -y gcc libssl-dev libopenblas-dev pkg-config
11
+ RUN apt-get update && \
12
+ apt-get install -y --no-install-recommends \
13
+ gcc \
14
+ libc6-dev \
15
+ libopenblas-dev \
16
+ libssl-dev \
17
+ pkg-config && \
18
+ rm -rf /var/lib/apt/lists/*
12
19
  USER ${NB_UID}
13
20
 
14
21
  # Copy files
@@ -17,12 +24,15 @@ COPY . .src/ffsim
17
24
  # Fix the permissions of ~/.src and ~/persistent-volume
18
25
  USER root
19
26
  RUN fix-permissions .src && \
20
- mkdir persistent-volume && fix-permissions persistent-volume
27
+ mkdir persistent-volume && \
28
+ fix-permissions persistent-volume
21
29
  USER ${NB_UID}
22
30
 
23
31
  # Consolidate the docs into the home directory
24
32
  RUN mkdir docs && \
25
33
  cp -a .src/ffsim/docs docs/ffsim
26
34
 
27
- # Pip install ffsim
28
- RUN pip install -e ".src/ffsim[dev]"
35
+ # Install ffsim and documentation dependencies
36
+ RUN python -m pip install --no-cache-dir --upgrade "pip>=25.1" && \
37
+ python -m pip install --no-cache-dir -e ".src/ffsim[qiskit]" \
38
+ --group .src/ffsim/pyproject.toml:docs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ffsim
3
- Version: 0.0.83
3
+ Version: 0.0.85
4
4
  Classifier: License :: OSI Approved :: Apache Software License
5
5
  Classifier: Programming Language :: Python
6
6
  Classifier: Programming Language :: Python :: 3 :: Only
@@ -17,9 +17,14 @@ Requires-Dist: numpy
17
17
  Requires-Dist: opt-einsum
18
18
  Requires-Dist: orjson
19
19
  Requires-Dist: pyscf>=2.12
20
- Requires-Dist: qiskit>=2.0
21
20
  Requires-Dist: scipy
22
21
  Requires-Dist: typing-extensions
22
+ Requires-Dist: jax[cuda12] ; extra == 'cuda12'
23
+ Requires-Dist: jax[cuda13] ; extra == 'cuda13'
24
+ Requires-Dist: qiskit>=2.0,<3 ; extra == 'qiskit'
25
+ Provides-Extra: cuda12
26
+ Provides-Extra: cuda13
27
+ Provides-Extra: qiskit
23
28
  License-File: LICENSE
24
29
  Summary: Faster simulation of fermionic quantum circuits.
25
30
  Requires-Python: >=3.11