ffsim 0.0.84__tar.gz → 0.0.86__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 (286) hide show
  1. {ffsim-0.0.84 → ffsim-0.0.86}/.github/workflows/build-and-release.yml +1 -1
  2. {ffsim-0.0.84 → ffsim-0.0.86}/.github/workflows/check.yml +1 -1
  3. {ffsim-0.0.84 → ffsim-0.0.86}/.github/workflows/test-latest-versions.yml +18 -0
  4. {ffsim-0.0.84 → ffsim-0.0.86}/CONTRIBUTING.md +4 -4
  5. {ffsim-0.0.84 → ffsim-0.0.86}/Cargo.lock +59 -60
  6. {ffsim-0.0.84 → ffsim-0.0.86}/Cargo.toml +1 -1
  7. {ffsim-0.0.84 → ffsim-0.0.86}/Dockerfile +14 -4
  8. {ffsim-0.0.84 → ffsim-0.0.86}/PKG-INFO +10 -6
  9. {ffsim-0.0.84 → ffsim-0.0.86}/README.md +2 -2
  10. ffsim-0.0.86/docs/execute_notebooks.py +398 -0
  11. {ffsim-0.0.84 → ffsim-0.0.86}/docs/explanations/diag-coulomb-hamiltonian.ipynb +4 -4
  12. {ffsim-0.0.84 → ffsim-0.0.86}/docs/explanations/double-factorized.ipynb +2 -3
  13. {ffsim-0.0.84 → ffsim-0.0.86}/docs/explanations/fermion-operator.ipynb +48 -59
  14. ffsim-0.0.86/docs/explanations/fermionic-fft.ipynb +258 -0
  15. {ffsim-0.0.84 → ffsim-0.0.86}/docs/explanations/hamiltonians.ipynb +4 -4
  16. {ffsim-0.0.84 → ffsim-0.0.86}/docs/explanations/index.md +1 -0
  17. ffsim-0.0.86/docs/explanations/lucj.ipynb +1089 -0
  18. ffsim-0.0.86/docs/explanations/orbital-rotation.ipynb +257 -0
  19. {ffsim-0.0.84 → ffsim-0.0.86}/docs/explanations/protocols.ipynb +30 -32
  20. ffsim-0.0.86/docs/explanations/qubit-gate-decompositions.ipynb +495 -0
  21. {ffsim-0.0.84 → ffsim-0.0.86}/docs/explanations/state-vectors-and-gates.ipynb +3 -4
  22. {ffsim-0.0.84 → ffsim-0.0.86}/docs/explanations/variational-ansatzes.ipynb +151 -31
  23. {ffsim-0.0.84 → ffsim-0.0.86}/docs/generate_api_docs.py +8 -4
  24. ffsim-0.0.86/docs/how-to-guides/compress-orbital-rotation.ipynb +468 -0
  25. {ffsim-0.0.84 → ffsim-0.0.86}/docs/how-to-guides/compute-expectation-values.ipynb +9 -7
  26. {ffsim-0.0.84 → ffsim-0.0.86}/docs/how-to-guides/entanglement-forging.ipynb +10 -11
  27. {ffsim-0.0.84 → ffsim-0.0.86}/docs/how-to-guides/index.md +3 -1
  28. ffsim-0.0.86/docs/how-to-guides/optimize-orbitals.ipynb +450 -0
  29. ffsim-0.0.86/docs/how-to-guides/qiskit-circuits-sim.ipynb +383 -0
  30. {ffsim-0.0.84 → ffsim-0.0.86}/docs/how-to-guides/qiskit-lucj.ipynb +11 -11
  31. ffsim-0.0.86/docs/how-to-guides/qiskit-merge-orbital-rotations.ipynb +193 -0
  32. {ffsim-0.0.84 → ffsim-0.0.86}/docs/how-to-guides/qiskit-trotter.ipynb +6 -7
  33. {ffsim-0.0.84 → ffsim-0.0.86}/docs/how-to-guides/sample-from-state-vectors.ipynb +2 -2
  34. {ffsim-0.0.84 → ffsim-0.0.86}/docs/how-to-guides/sample-slater.ipynb +2 -2
  35. {ffsim-0.0.84 → ffsim-0.0.86}/docs/how-to-guides/simulate-trotter-hubbard.ipynb +4 -4
  36. {ffsim-0.0.84 → ffsim-0.0.86}/docs/how-to-guides/simulate-trotter-mol-ham.ipynb +5 -5
  37. {ffsim-0.0.84 → ffsim-0.0.86}/docs/how-to-guides/simulate-vqe.ipynb +57 -57
  38. ffsim-0.0.86/docs/how-to-guides/ucj-energy.ipynb +325 -0
  39. ffsim-0.0.86/docs/install.md +65 -0
  40. ffsim-0.0.86/docs/tutorials/create-variational-ansatz.ipynb +614 -0
  41. {ffsim-0.0.84 → ffsim-0.0.86}/docs/tutorials/double-factorized-trotter.ipynb +13 -9
  42. {ffsim-0.0.84 → ffsim-0.0.86}/docs/tutorials/index.md +1 -0
  43. {ffsim-0.0.84 → ffsim-0.0.86}/pyproject.toml +22 -6
  44. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/__init__.py +37 -1
  45. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_cistring.py +1 -1
  46. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_slow/fermion_operator.py +4 -0
  47. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/gates/orbital_rotation.py +2 -2
  48. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/hamiltonians/double_factorized_hamiltonian.py +19 -19
  49. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/hamiltonians/molecular_hamiltonian.py +0 -31
  50. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/hamiltonians/single_factorized_hamiltonian.py +50 -1
  51. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/linalg/__init__.py +10 -0
  52. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/linalg/double_factorized_decomposition.py +504 -496
  53. ffsim-0.0.86/python/ffsim/linalg/linalg.py +196 -0
  54. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/linalg/util.py +344 -113
  55. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/molecular_data.py +7 -3
  56. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/operators/coupled_cluster.py +3 -3
  57. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/optimize/linear_method.py +5 -7
  58. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/protocols/approximate_equality_protocol.py +4 -8
  59. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/__init__.py +18 -1
  60. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/gates/__init__.py +6 -0
  61. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/gates/diag_coulomb.py +2 -2
  62. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/gates/diag_coulomb_trotter_split_op.py +1 -1
  63. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/gates/double_factorized_trotter.py +1 -1
  64. ffsim-0.0.86/python/ffsim/qiskit/gates/fermionic_fft.py +225 -0
  65. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/gates/givens_ansatz.py +2 -2
  66. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/gates/num_num_ansatz.py +1 -1
  67. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/gates/num_op_sum.py +2 -2
  68. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/gates/orbital_rotation.py +2 -2
  69. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/gates/slater_determinant.py +4 -4
  70. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/gates/ucj.py +3 -3
  71. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/jordan_wigner.py +1 -1
  72. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/sampler.py +4 -0
  73. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/sim.py +113 -3
  74. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/transpiler_stages.py +4 -5
  75. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/random/__init__.py +14 -0
  76. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/random/random.py +536 -114
  77. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/states/__init__.py +2 -1
  78. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/states/bitstring.py +7 -3
  79. ffsim-0.0.86/python/ffsim/states/rdm.py +451 -0
  80. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/states/slater.py +92 -42
  81. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/trotter/qdrift.py +8 -0
  82. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/__init__.py +18 -0
  83. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/orbital_optimization.py +72 -40
  84. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/uccsd.py +681 -71
  85. ffsim-0.0.86/python/ffsim/variational/ucj_angles_spin_balanced.py +648 -0
  86. ffsim-0.0.86/python/ffsim/variational/ucj_energy.py +1460 -0
  87. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/ucj_spin_balanced.py +168 -100
  88. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/ucj_spin_unbalanced.py +339 -208
  89. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/ucj_spinless.py +145 -69
  90. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/util.py +58 -1
  91. {ffsim-0.0.84 → ffsim-0.0.86}/src/fermion_operator.rs +62 -16
  92. {ffsim-0.0.84 → ffsim-0.0.86}/src/jordan_wigner.rs +10 -0
  93. ffsim-0.0.86/tests/python/conftest.py +35 -0
  94. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/gates/diag_coulomb_test.py +16 -23
  95. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/gates/orbital_rotation_test.py +20 -27
  96. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/hamiltonians/double_factorized_hamiltonian_test.py +53 -0
  97. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/hamiltonians/molecular_hamiltonian_test.py +0 -16
  98. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/hamiltonians/single_factorized_hamiltonian_test.py +94 -0
  99. ffsim-0.0.86/tests/python/import_test.py +54 -0
  100. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/linalg/double_factorized_decomposition_test.py +418 -32
  101. ffsim-0.0.86/tests/python/linalg/linalg_test.py +144 -0
  102. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/linalg/util_test.py +396 -100
  103. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/molecular_data_test.py +5 -4
  104. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/operators/fermion_operator_test.py +45 -0
  105. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/gates/diag_coulomb_test.py +32 -0
  106. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/gates/diag_coulomb_trotter_split_op_test.py +27 -0
  107. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/gates/double_factorized_trotter_test.py +31 -0
  108. ffsim-0.0.86/tests/python/qiskit/gates/fermionic_fft_test.py +155 -0
  109. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/gates/givens_ansatz_test.py +27 -22
  110. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/gates/num_num_ansatz_test.py +18 -8
  111. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/gates/num_op_sum_test.py +29 -0
  112. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/gates/orbital_rotation_test.py +33 -1
  113. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/gates/slater_determinant_test.py +80 -0
  114. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/gates/ucj_test.py +47 -0
  115. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/jordan_wigner_test.py +11 -1
  116. ffsim-0.0.86/tests/python/qiskit/lazy_import_test.py +20 -0
  117. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/sampler_test.py +19 -1
  118. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/sim_test.py +57 -0
  119. ffsim-0.0.86/tests/python/random_test.py +752 -0
  120. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/states/bitstring_test.py +51 -0
  121. ffsim-0.0.86/tests/python/states/rdm_test.py +639 -0
  122. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/states/slater_test.py +143 -30
  123. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/states/states_test.py +1 -1
  124. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/trotter/diag_coulomb_split_op_test.py +1 -1
  125. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/trotter/double_factorized_test.py +6 -6
  126. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/variational/givens_test.py +2 -2
  127. ffsim-0.0.86/tests/python/variational/orbital_optimization_test.py +425 -0
  128. ffsim-0.0.86/tests/python/variational/uccsd_test.py +645 -0
  129. ffsim-0.0.86/tests/python/variational/ucj_angles_spin_balanced_test.py +500 -0
  130. ffsim-0.0.86/tests/python/variational/ucj_energy_test.py +458 -0
  131. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/variational/ucj_spin_balanced_test.py +215 -5
  132. ffsim-0.0.86/tests/python/variational/ucj_spin_unbalanced_test.py +785 -0
  133. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/variational/ucj_spinless_test.py +191 -10
  134. {ffsim-0.0.84 → ffsim-0.0.86}/uv.lock +1604 -919
  135. ffsim-0.0.84/docs/explanations/lucj.ipynb +0 -681
  136. ffsim-0.0.84/docs/explanations/orbital-rotation.ipynb +0 -258
  137. ffsim-0.0.84/docs/explanations/qubit-gate-decompositions.ipynb +0 -495
  138. ffsim-0.0.84/docs/how-to-guides/compress-orbital-rotation.ipynb +0 -477
  139. ffsim-0.0.84/docs/how-to-guides/qiskit-circuits-sim.ipynb +0 -383
  140. ffsim-0.0.84/docs/how-to-guides/qiskit-merge-orbital-rotations.ipynb +0 -193
  141. ffsim-0.0.84/docs/install.md +0 -49
  142. ffsim-0.0.84/python/ffsim/linalg/linalg.py +0 -104
  143. ffsim-0.0.84/python/ffsim/states/rdm.py +0 -274
  144. ffsim-0.0.84/python/ffsim/variational/ucj_angles_spin_balanced.py +0 -250
  145. ffsim-0.0.84/tests/python/linalg/linalg_test.py +0 -57
  146. ffsim-0.0.84/tests/python/random_test.py +0 -265
  147. ffsim-0.0.84/tests/python/states/rdm_test.py +0 -261
  148. ffsim-0.0.84/tests/python/variational/orbital_optimization_test.py +0 -91
  149. ffsim-0.0.84/tests/python/variational/uccsd_test.py +0 -545
  150. ffsim-0.0.84/tests/python/variational/ucj_angles_spin_balanced_test.py +0 -236
  151. ffsim-0.0.84/tests/python/variational/ucj_spin_unbalanced_test.py +0 -418
  152. {ffsim-0.0.84 → ffsim-0.0.86}/.cargo/config.toml +0 -0
  153. {ffsim-0.0.84 → ffsim-0.0.86}/.dockerignore +0 -0
  154. {ffsim-0.0.84 → ffsim-0.0.86}/.github/workflows/docker.yml +0 -0
  155. {ffsim-0.0.84 → ffsim-0.0.86}/.github/workflows/docs-dev.yml +0 -0
  156. {ffsim-0.0.84 → ffsim-0.0.86}/.github/workflows/docs-release.yml +0 -0
  157. {ffsim-0.0.84 → ffsim-0.0.86}/.github/workflows/test-minimum-versions.yml +0 -0
  158. {ffsim-0.0.84 → ffsim-0.0.86}/.gitignore +0 -0
  159. {ffsim-0.0.84 → ffsim-0.0.86}/.pre-commit-config.yaml +0 -0
  160. {ffsim-0.0.84 → ffsim-0.0.86}/LICENSE +0 -0
  161. {ffsim-0.0.84 → ffsim-0.0.86}/compose.yaml +0 -0
  162. {ffsim-0.0.84 → ffsim-0.0.86}/docs/_static/logo-dark.svg +0 -0
  163. {ffsim-0.0.84 → ffsim-0.0.86}/docs/_static/logo.svg +0 -0
  164. {ffsim-0.0.84 → ffsim-0.0.86}/docs/_templates/autosummary/class.rst +0 -0
  165. {ffsim-0.0.84 → ffsim-0.0.86}/docs/conf.py +0 -0
  166. {ffsim-0.0.84 → ffsim-0.0.86}/docs/index.md +0 -0
  167. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_lib.pyi +0 -0
  168. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_slow/__init__.py +0 -0
  169. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_slow/contract/__init__.py +0 -0
  170. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_slow/contract/diag_coulomb.py +0 -0
  171. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_slow/contract/num_op_sum.py +0 -0
  172. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_slow/gates/__init__.py +0 -0
  173. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_slow/gates/diag_coulomb.py +0 -0
  174. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_slow/gates/num_op_sum.py +0 -0
  175. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/_slow/gates/orbital_rotation.py +0 -0
  176. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/contract/__init__.py +0 -0
  177. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/contract/diag_coulomb.py +0 -0
  178. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/contract/num_op_sum.py +0 -0
  179. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/contract/one_body.py +0 -0
  180. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/contract/two_body.py +0 -0
  181. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/gates/__init__.py +0 -0
  182. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/gates/basic_gates.py +0 -0
  183. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/gates/diag_coulomb.py +0 -0
  184. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/gates/num_op_sum.py +0 -0
  185. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/gates/quad_ham.py +0 -0
  186. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/hamiltonians/__init__.py +0 -0
  187. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/hamiltonians/diagonal_coulomb_hamiltonian.py +0 -0
  188. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/init_cache.py +0 -0
  189. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/linalg/givens.py +0 -0
  190. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/linalg/predicates.py +0 -0
  191. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/operators/__init__.py +0 -0
  192. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/operators/common_operators.py +0 -0
  193. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/operators/fermi_hubbard.py +0 -0
  194. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/operators/fermion_action.py +0 -0
  195. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/operators/fermion_operator.py +0 -0
  196. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/optimize/__init__.py +0 -0
  197. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/optimize/_util.py +0 -0
  198. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/protocols/__init__.py +0 -0
  199. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/protocols/apply_unitary_protocol.py +0 -0
  200. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/protocols/diagonal_protocol.py +0 -0
  201. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/protocols/fermion_operator_protocol.py +0 -0
  202. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/protocols/linear_operator_protocol.py +0 -0
  203. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/protocols/trace_protocol.py +0 -0
  204. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/py.typed +0 -0
  205. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/lucj_pass_manager.py +0 -0
  206. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/transpiler_passes/__init__.py +0 -0
  207. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/transpiler_passes/drop_negligible.py +0 -0
  208. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/transpiler_passes/merge_orbital_rotations.py +0 -0
  209. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/qiskit/util.py +0 -0
  210. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/states/dimensions.py +0 -0
  211. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/states/product_state_sum.py +0 -0
  212. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/states/sample_slater.py +0 -0
  213. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/states/spin.py +0 -0
  214. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/states/states.py +0 -0
  215. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/states/wick.py +0 -0
  216. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/testing/__init__.py +0 -0
  217. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/testing/testing.py +0 -0
  218. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/trotter/__init__.py +0 -0
  219. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/trotter/_util.py +0 -0
  220. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/trotter/diagonal_coulomb_split_op.py +0 -0
  221. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/trotter/double_factorized.py +0 -0
  222. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/givens.py +0 -0
  223. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/hopgate.py +0 -0
  224. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/multireference.py +0 -0
  225. {ffsim-0.0.84 → ffsim-0.0.86}/python/ffsim/variational/num_num.py +0 -0
  226. {ffsim-0.0.84 → ffsim-0.0.86}/src/contract/diag_coulomb.rs +0 -0
  227. {ffsim-0.0.84 → ffsim-0.0.86}/src/contract/fermion_operator.rs +0 -0
  228. {ffsim-0.0.84 → ffsim-0.0.86}/src/contract/mod.rs +0 -0
  229. {ffsim-0.0.84 → ffsim-0.0.86}/src/contract/num_op_sum.rs +0 -0
  230. {ffsim-0.0.84 → ffsim-0.0.86}/src/gates/diag_coulomb.rs +0 -0
  231. {ffsim-0.0.84 → ffsim-0.0.86}/src/gates/mod.rs +0 -0
  232. {ffsim-0.0.84 → ffsim-0.0.86}/src/gates/num_op_sum.rs +0 -0
  233. {ffsim-0.0.84 → ffsim-0.0.86}/src/gates/orbital_rotation.rs +0 -0
  234. {ffsim-0.0.84 → ffsim-0.0.86}/src/gates/phase_shift.rs +0 -0
  235. {ffsim-0.0.84 → ffsim-0.0.86}/src/lib.rs +0 -0
  236. {ffsim-0.0.84 → ffsim-0.0.86}/src/linalg/givens.rs +0 -0
  237. {ffsim-0.0.84 → ffsim-0.0.86}/src/linalg/mod.rs +0 -0
  238. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/__init__.py +0 -0
  239. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/_slow/__init__.py +0 -0
  240. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/_slow/contract/__init__.py +0 -0
  241. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/_slow/contract/diag_coulomb_test.py +0 -0
  242. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/_slow/contract/num_op_sum_test.py +0 -0
  243. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/_slow/gates/__init__.py +0 -0
  244. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/_slow/gates/diag_coulomb_test.py +0 -0
  245. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/_slow/gates/num_op_sum_test.py +0 -0
  246. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/_slow/gates/orbital_rotation_test.py +0 -0
  247. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/contract/__init__.py +0 -0
  248. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/contract/diag_coulomb_test.py +0 -0
  249. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/contract/num_op_sum_test.py +0 -0
  250. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/contract/two_body_test.py +0 -0
  251. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/gates/__init__.py +0 -0
  252. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/gates/basic_gates_test.py +0 -0
  253. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/gates/num_op_sum_test.py +0 -0
  254. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/gates/quad_ham_test.py +0 -0
  255. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/hamiltonians/__init__.py +0 -0
  256. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/hamiltonians/diagonal_coulomb_hamiltonian_test.py +0 -0
  257. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/linalg/__init__.py +0 -0
  258. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/linalg/givens_test.py +0 -0
  259. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/operators/__init__.py +0 -0
  260. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/operators/common_operators_test.py +0 -0
  261. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/operators/coupled_cluster_test.py +0 -0
  262. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/operators/fermi_hubbard_test.py +0 -0
  263. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/operators/fermion_action_test.py +0 -0
  264. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/optimize/__init__.py +0 -0
  265. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/optimize/linear_method_test.py +0 -0
  266. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/protocols/__init__.py +0 -0
  267. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/protocols/trace_protocol_test.py +0 -0
  268. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/__init__.py +0 -0
  269. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/gates/__init__.py +0 -0
  270. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/lucj_pass_manager_test.py +0 -0
  271. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/transpiler_passes/__init__.py +0 -0
  272. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/transpiler_passes/drop_negligible_test.py +0 -0
  273. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/transpiler_passes/merge_orbital_rotations_test.py +0 -0
  274. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/qiskit/util_test.py +0 -0
  275. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/states/__init__.py +0 -0
  276. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/states/sample_slater_test.py +0 -0
  277. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/states/wick_test.py +0 -0
  278. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/test_data/orbital_rotation-0.npy +0 -0
  279. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/test_no_warnings.py +0 -0
  280. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/testing_test.py +0 -0
  281. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/trotter/__init__.py +0 -0
  282. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/trotter/qdrift_test.py +0 -0
  283. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/variational/__init__.py +0 -0
  284. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/variational/hopgate_test.py +0 -0
  285. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/variational/multireference_test.py +0 -0
  286. {ffsim-0.0.84 → ffsim-0.0.86}/tests/python/variational/num_num_test.py +0 -0
@@ -16,7 +16,7 @@ jobs:
16
16
  runs-on: ${{ matrix.os }}
17
17
  strategy:
18
18
  matrix:
19
- os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest]
19
+ os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest]
20
20
 
21
21
  steps:
22
22
  - uses: actions/checkout@v6
@@ -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
@@ -67,3 +67,21 @@ jobs:
67
67
  - name: Run tests
68
68
  run: |
69
69
  tox run -e test-${{ matrix.python-version }}
70
+ test-windows:
71
+ runs-on: windows-latest
72
+ strategy:
73
+ matrix:
74
+ python-version: ["3.11", "3.14"]
75
+ steps:
76
+ - uses: actions/checkout@v6
77
+ - name: Set up Python
78
+ uses: actions/setup-python@v6
79
+ with:
80
+ python-version: ${{ matrix.python-version }}
81
+ - name: Install tox
82
+ run: |
83
+ python -m pip install --upgrade pip
84
+ pip install tox
85
+ - name: Run tests
86
+ run: |
87
+ tox run -e test-${{ matrix.python-version }}
@@ -1,7 +1,5 @@
1
1
  # Developer guide
2
2
 
3
- The instructions on this page won't work natively on Windows. For ffsim development on Windows, we recommend using [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/) and doing development within the WSL.
4
-
5
3
  ## Setup
6
4
 
7
5
  To set up ffsim for development, install it from source in editable mode along with the development requirements:
@@ -74,13 +72,15 @@ mypy
74
72
  ### Fix lint errors
75
73
 
76
74
  ```bash
77
- ruff check --fix
75
+ ruff check --fix # for Python code
76
+ cargo clippy --all --fix -- -D warnings # for Rust code
78
77
  ```
79
78
 
80
79
  ### Fix formatting errors
81
80
 
82
81
  ```bash
83
- ruff format
82
+ ruff format # for Python code
83
+ cargo fmt --all # for Rust code
84
84
  ```
85
85
 
86
86
  ### 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.84
3
+ Version: 0.0.86
4
4
  Classifier: License :: OSI Approved :: Apache Software License
5
5
  Classifier: Programming Language :: Python
6
6
  Classifier: Programming Language :: Python :: 3 :: Only
@@ -16,10 +16,14 @@ Requires-Dist: jax
16
16
  Requires-Dist: numpy
17
17
  Requires-Dist: opt-einsum
18
18
  Requires-Dist: orjson
19
- Requires-Dist: pyscf>=2.12
20
- Requires-Dist: qiskit>=2.0
19
+ Requires-Dist: pyscf>=2.15
21
20
  Requires-Dist: scipy
22
- Requires-Dist: typing-extensions
21
+ Requires-Dist: jax[cuda12] ; extra == 'cuda12'
22
+ Requires-Dist: jax[cuda13] ; extra == 'cuda13'
23
+ Requires-Dist: qiskit>=2.0,<3 ; extra == 'qiskit'
24
+ Provides-Extra: cuda12
25
+ Provides-Extra: cuda13
26
+ Provides-Extra: qiskit
23
27
  License-File: LICENSE
24
28
  Summary: Faster simulation of fermionic quantum circuits.
25
29
  Requires-Python: >=3.11
@@ -43,13 +47,13 @@ Documentation is located at the [project website](https://qiskit-community.githu
43
47
 
44
48
  <!-- start installation -->
45
49
 
46
- On Linux and macOS, you can install ffsim using pip:
50
+ You can install ffsim using pip:
47
51
 
48
52
  ```bash
49
53
  pip install ffsim
50
54
  ```
51
55
 
52
- See the [installation instructions](https://qiskit-community.github.io/ffsim/install.html) for information about using ffsim on Windows, as well as instructions for installing from source and running ffsim in a container.
56
+ See the [installation instructions](https://qiskit-community.github.io/ffsim/install.html) for more details, including instructions for installing from source and running ffsim in a container.
53
57
 
54
58
  <!-- end installation -->
55
59
 
@@ -14,13 +14,13 @@ Documentation is located at the [project website](https://qiskit-community.githu
14
14
 
15
15
  <!-- start installation -->
16
16
 
17
- On Linux and macOS, you can install ffsim using pip:
17
+ You can install ffsim using pip:
18
18
 
19
19
  ```bash
20
20
  pip install ffsim
21
21
  ```
22
22
 
23
- See the [installation instructions](https://qiskit-community.github.io/ffsim/install.html) for information about using ffsim on Windows, as well as instructions for installing from source and running ffsim in a container.
23
+ See the [installation instructions](https://qiskit-community.github.io/ffsim/install.html) for more details, including instructions for installing from source and running ffsim in a container.
24
24
 
25
25
  <!-- end installation -->
26
26