ffsim 0.0.74__tar.gz → 0.0.76__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 (256) hide show
  1. {ffsim-0.0.74 → ffsim-0.0.76}/.github/workflows/build-and-release.yml +0 -2
  2. {ffsim-0.0.74 → ffsim-0.0.76}/.github/workflows/check.yml +1 -1
  3. {ffsim-0.0.74 → ffsim-0.0.76}/.github/workflows/docs-dev.yml +1 -1
  4. {ffsim-0.0.74 → ffsim-0.0.76}/.github/workflows/docs-release.yml +1 -1
  5. {ffsim-0.0.74 → ffsim-0.0.76}/.github/workflows/test-latest-versions.yml +0 -6
  6. {ffsim-0.0.74 → ffsim-0.0.76}/.github/workflows/test-minimum-versions.yml +0 -3
  7. ffsim-0.0.76/Cargo.lock +319 -0
  8. {ffsim-0.0.74 → ffsim-0.0.76}/Cargo.toml +0 -6
  9. {ffsim-0.0.74 → ffsim-0.0.76}/PKG-INFO +17 -5
  10. {ffsim-0.0.74 → ffsim-0.0.76}/README.md +16 -4
  11. ffsim-0.0.76/docs/_static/logo-dark.svg +1 -0
  12. ffsim-0.0.76/docs/_static/logo.svg +1 -0
  13. {ffsim-0.0.74 → ffsim-0.0.76}/docs/conf.py +6 -0
  14. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/variational-ansatzes.ipynb +1 -1
  15. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/qiskit-lucj.ipynb +93 -30
  16. {ffsim-0.0.74 → ffsim-0.0.76}/docs/index.md +14 -0
  17. ffsim-0.0.76/docs/install.md +43 -0
  18. {ffsim-0.0.74 → ffsim-0.0.76}/docs/tutorials/double-factorized-trotter.ipynb +1 -1
  19. {ffsim-0.0.74 → ffsim-0.0.76}/pyproject.toml +2 -2
  20. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_lib.pyi +2 -2
  21. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/linalg/givens.py +3 -2
  22. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/operators/coupled_cluster.py +12 -12
  23. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/__init__.py +2 -2
  24. ffsim-0.0.76/python/ffsim/qiskit/lucj_pass_manager.py +521 -0
  25. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/transpiler_passes/__init__.py +1 -0
  26. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/states/slater.py +85 -32
  27. {ffsim-0.0.74 → ffsim-0.0.76}/src/gates/orbital_rotation.rs +2 -0
  28. {ffsim-0.0.74 → ffsim-0.0.76}/src/gates/phase_shift.rs +2 -14
  29. {ffsim-0.0.74 → ffsim-0.0.76}/src/jordan_wigner.rs +1 -0
  30. {ffsim-0.0.74 → ffsim-0.0.76}/src/linalg/givens.rs +7 -8
  31. ffsim-0.0.76/tests/python/qiskit/lucj_pass_manager_test.py +223 -0
  32. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/states/slater_test.py +58 -32
  33. {ffsim-0.0.74 → ffsim-0.0.76}/uv.lock +1407 -1066
  34. ffsim-0.0.74/Cargo.lock +0 -1067
  35. ffsim-0.0.74/docs/install.md +0 -65
  36. {ffsim-0.0.74 → ffsim-0.0.76}/.dockerignore +0 -0
  37. {ffsim-0.0.74 → ffsim-0.0.76}/.github/workflows/docker.yml +0 -0
  38. {ffsim-0.0.74 → ffsim-0.0.76}/.gitignore +0 -0
  39. {ffsim-0.0.74 → ffsim-0.0.76}/.pre-commit-config.yaml +0 -0
  40. {ffsim-0.0.74 → ffsim-0.0.76}/CONTRIBUTING.md +0 -0
  41. {ffsim-0.0.74 → ffsim-0.0.76}/Dockerfile +0 -0
  42. {ffsim-0.0.74 → ffsim-0.0.76}/LICENSE +0 -0
  43. {ffsim-0.0.74 → ffsim-0.0.76}/compose.yaml +0 -0
  44. {ffsim-0.0.74 → ffsim-0.0.76}/docs/_templates/autosummary/class.rst +0 -0
  45. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/diag-coulomb-hamiltonian.ipynb +0 -0
  46. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/double-factorized.ipynb +0 -0
  47. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/fermion-operator.ipynb +0 -0
  48. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/hamiltonians.ipynb +0 -0
  49. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/index.md +0 -0
  50. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/lucj.ipynb +0 -0
  51. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/orbital-rotation.ipynb +0 -0
  52. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/protocols.ipynb +0 -0
  53. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/qubit-gate-decompositions.ipynb +0 -0
  54. {ffsim-0.0.74 → ffsim-0.0.76}/docs/explanations/state-vectors-and-gates.ipynb +0 -0
  55. {ffsim-0.0.74 → ffsim-0.0.76}/docs/generate_api_docs.py +0 -0
  56. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/compute-expectation-values.ipynb +0 -0
  57. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/entanglement-forging.ipynb +0 -0
  58. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/index.md +0 -0
  59. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/qiskit-circuits-sim.ipynb +0 -0
  60. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/qiskit-merge-orbital-rotations.ipynb +0 -0
  61. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/qiskit-trotter.ipynb +0 -0
  62. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/sample-from-state-vectors.ipynb +0 -0
  63. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/sample-slater.ipynb +0 -0
  64. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/simulate-trotter-hubbard.ipynb +0 -0
  65. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/simulate-trotter-mol-ham.ipynb +0 -0
  66. {ffsim-0.0.74 → ffsim-0.0.76}/docs/how-to-guides/simulate-vqe.ipynb +0 -0
  67. {ffsim-0.0.74 → ffsim-0.0.76}/docs/tutorials/index.md +0 -0
  68. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/__init__.py +0 -0
  69. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_cistring.py +0 -0
  70. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_slow/__init__.py +0 -0
  71. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_slow/contract/__init__.py +0 -0
  72. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_slow/contract/diag_coulomb.py +0 -0
  73. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_slow/contract/num_op_sum.py +0 -0
  74. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_slow/fermion_operator.py +0 -0
  75. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_slow/gates/__init__.py +0 -0
  76. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_slow/gates/diag_coulomb.py +0 -0
  77. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_slow/gates/num_op_sum.py +0 -0
  78. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/_slow/gates/orbital_rotation.py +0 -0
  79. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/contract/__init__.py +0 -0
  80. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/contract/diag_coulomb.py +0 -0
  81. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/contract/num_op_sum.py +0 -0
  82. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/contract/one_body.py +0 -0
  83. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/contract/two_body.py +0 -0
  84. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/gates/__init__.py +0 -0
  85. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/gates/basic_gates.py +0 -0
  86. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/gates/diag_coulomb.py +0 -0
  87. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/gates/num_op_sum.py +0 -0
  88. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/gates/orbital_rotation.py +0 -0
  89. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/gates/quad_ham.py +0 -0
  90. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/hamiltonians/__init__.py +0 -0
  91. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/hamiltonians/diagonal_coulomb_hamiltonian.py +0 -0
  92. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/hamiltonians/double_factorized_hamiltonian.py +0 -0
  93. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/hamiltonians/molecular_hamiltonian.py +0 -0
  94. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/hamiltonians/single_factorized_hamiltonian.py +0 -0
  95. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/init_cache.py +0 -0
  96. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/linalg/__init__.py +0 -0
  97. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/linalg/double_factorized_decomposition.py +0 -0
  98. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/linalg/linalg.py +0 -0
  99. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/linalg/predicates.py +0 -0
  100. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/linalg/util.py +0 -0
  101. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/molecular_data.py +0 -0
  102. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/operators/__init__.py +0 -0
  103. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/operators/common_operators.py +0 -0
  104. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/operators/fermi_hubbard.py +0 -0
  105. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/operators/fermion_action.py +0 -0
  106. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/operators/fermion_operator.py +0 -0
  107. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/optimize/__init__.py +0 -0
  108. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/optimize/_util.py +0 -0
  109. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/optimize/linear_method.py +0 -0
  110. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/protocols/__init__.py +0 -0
  111. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/protocols/apply_unitary_protocol.py +0 -0
  112. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/protocols/approximate_equality_protocol.py +0 -0
  113. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/protocols/diagonal_protocol.py +0 -0
  114. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/protocols/fermion_operator_protocol.py +0 -0
  115. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/protocols/linear_operator_protocol.py +0 -0
  116. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/protocols/trace_protocol.py +0 -0
  117. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/py.typed +0 -0
  118. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/gates/__init__.py +0 -0
  119. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/gates/diag_coulomb.py +0 -0
  120. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/gates/diag_coulomb_trotter_split_op.py +0 -0
  121. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/gates/double_factorized_trotter.py +0 -0
  122. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/gates/givens_ansatz.py +0 -0
  123. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/gates/num_num_ansatz.py +0 -0
  124. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/gates/num_op_sum.py +0 -0
  125. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/gates/orbital_rotation.py +0 -0
  126. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/gates/slater_determinant.py +0 -0
  127. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/gates/ucj.py +0 -0
  128. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/jordan_wigner.py +0 -0
  129. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/sampler.py +0 -0
  130. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/sim.py +0 -0
  131. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/transpiler_passes/drop_negligible.py +0 -0
  132. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/transpiler_passes/merge_orbital_rotations.py +0 -0
  133. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/transpiler_stages.py +0 -0
  134. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/qiskit/util.py +0 -0
  135. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/random/__init__.py +0 -0
  136. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/random/random.py +0 -0
  137. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/states/__init__.py +0 -0
  138. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/states/bitstring.py +0 -0
  139. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/states/dimensions.py +0 -0
  140. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/states/product_state_sum.py +0 -0
  141. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/states/rdm.py +0 -0
  142. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/states/sample_slater.py +0 -0
  143. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/states/spin.py +0 -0
  144. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/states/states.py +0 -0
  145. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/states/wick.py +0 -0
  146. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/testing/__init__.py +0 -0
  147. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/testing/testing.py +0 -0
  148. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/trotter/__init__.py +0 -0
  149. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/trotter/_util.py +0 -0
  150. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/trotter/diagonal_coulomb_split_op.py +0 -0
  151. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/trotter/double_factorized.py +0 -0
  152. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/trotter/qdrift.py +0 -0
  153. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/__init__.py +0 -0
  154. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/givens.py +0 -0
  155. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/hopgate.py +0 -0
  156. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/multireference.py +0 -0
  157. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/num_num.py +0 -0
  158. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/orbital_optimization.py +0 -0
  159. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/uccsd.py +0 -0
  160. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/ucj_angles_spin_balanced.py +0 -0
  161. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/ucj_spin_balanced.py +0 -0
  162. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/ucj_spin_unbalanced.py +0 -0
  163. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/ucj_spinless.py +0 -0
  164. {ffsim-0.0.74 → ffsim-0.0.76}/python/ffsim/variational/util.py +0 -0
  165. {ffsim-0.0.74 → ffsim-0.0.76}/src/contract/diag_coulomb.rs +0 -0
  166. {ffsim-0.0.74 → ffsim-0.0.76}/src/contract/mod.rs +0 -0
  167. {ffsim-0.0.74 → ffsim-0.0.76}/src/contract/num_op_sum.rs +0 -0
  168. {ffsim-0.0.74 → ffsim-0.0.76}/src/fermion_operator.rs +0 -0
  169. {ffsim-0.0.74 → ffsim-0.0.76}/src/gates/diag_coulomb.rs +0 -0
  170. {ffsim-0.0.74 → ffsim-0.0.76}/src/gates/mod.rs +0 -0
  171. {ffsim-0.0.74 → ffsim-0.0.76}/src/gates/num_op_sum.rs +0 -0
  172. {ffsim-0.0.74 → ffsim-0.0.76}/src/lib.rs +0 -0
  173. {ffsim-0.0.74 → ffsim-0.0.76}/src/linalg/mod.rs +0 -0
  174. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/__init__.py +0 -0
  175. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/_slow/__init__.py +0 -0
  176. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/_slow/contract/__init__.py +0 -0
  177. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/_slow/contract/diag_coulomb_test.py +0 -0
  178. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/_slow/contract/num_op_sum_test.py +0 -0
  179. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/_slow/gates/__init__.py +0 -0
  180. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/_slow/gates/diag_coulomb_test.py +0 -0
  181. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/_slow/gates/num_op_sum_test.py +0 -0
  182. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/_slow/gates/orbital_rotation_test.py +0 -0
  183. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/contract/__init__.py +0 -0
  184. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/contract/diag_coulomb_test.py +0 -0
  185. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/contract/num_op_sum_test.py +0 -0
  186. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/contract/two_body_test.py +0 -0
  187. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/gates/__init__.py +0 -0
  188. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/gates/basic_gates_test.py +0 -0
  189. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/gates/diag_coulomb_test.py +0 -0
  190. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/gates/num_op_sum_test.py +0 -0
  191. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/gates/orbital_rotation_test.py +0 -0
  192. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/gates/quad_ham_test.py +0 -0
  193. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/hamiltonians/__init__.py +0 -0
  194. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/hamiltonians/diagonal_coulomb_hamiltonian_test.py +0 -0
  195. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/hamiltonians/double_factorized_hamiltonian_test.py +0 -0
  196. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/hamiltonians/molecular_hamiltonian_test.py +0 -0
  197. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/hamiltonians/single_factorized_hamiltonian_test.py +0 -0
  198. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/linalg/__init__.py +0 -0
  199. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/linalg/double_factorized_decomposition_test.py +0 -0
  200. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/linalg/givens_test.py +0 -0
  201. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/linalg/linalg_test.py +0 -0
  202. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/linalg/util_test.py +0 -0
  203. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/molecular_data_test.py +0 -0
  204. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/operators/__init__.py +0 -0
  205. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/operators/common_operators_test.py +0 -0
  206. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/operators/coupled_cluster_test.py +0 -0
  207. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/operators/fermi_hubbard_test.py +0 -0
  208. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/operators/fermion_action_test.py +0 -0
  209. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/operators/fermion_operator_test.py +0 -0
  210. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/optimize/__init__.py +0 -0
  211. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/optimize/linear_method_test.py +0 -0
  212. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/protocols/__init__.py +0 -0
  213. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/protocols/trace_protocol_test.py +0 -0
  214. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/__init__.py +0 -0
  215. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/gates/__init__.py +0 -0
  216. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/gates/diag_coulomb_test.py +0 -0
  217. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/gates/diag_coulomb_trotter_split_op_test.py +0 -0
  218. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/gates/double_factorized_trotter_test.py +0 -0
  219. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/gates/givens_ansatz_test.py +0 -0
  220. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/gates/num_num_ansatz_test.py +0 -0
  221. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/gates/num_op_sum_test.py +0 -0
  222. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/gates/orbital_rotation_test.py +0 -0
  223. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/gates/slater_determinant_test.py +0 -0
  224. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/gates/ucj_test.py +0 -0
  225. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/jordan_wigner_test.py +0 -0
  226. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/sampler_test.py +0 -0
  227. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/sim_test.py +0 -0
  228. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/transpiler_passes/__init__.py +0 -0
  229. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/transpiler_passes/drop_negligible_test.py +0 -0
  230. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/transpiler_passes/merge_orbital_rotations_test.py +0 -0
  231. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/qiskit/util_test.py +0 -0
  232. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/random_test.py +0 -0
  233. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/states/__init__.py +0 -0
  234. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/states/bitstring_test.py +0 -0
  235. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/states/rdm_test.py +0 -0
  236. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/states/sample_slater_test.py +0 -0
  237. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/states/states_test.py +0 -0
  238. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/states/wick_test.py +0 -0
  239. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/test_data/orbital_rotation-0.npy +0 -0
  240. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/test_no_warnings.py +0 -0
  241. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/testing_test.py +0 -0
  242. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/trotter/__init__.py +0 -0
  243. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/trotter/diag_coulomb_split_op_test.py +0 -0
  244. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/trotter/double_factorized_test.py +0 -0
  245. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/trotter/qdrift_test.py +0 -0
  246. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/__init__.py +0 -0
  247. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/givens_test.py +0 -0
  248. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/hopgate_test.py +0 -0
  249. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/multireference_test.py +0 -0
  250. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/num_num_test.py +0 -0
  251. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/orbital_optimization_test.py +0 -0
  252. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/uccsd_test.py +0 -0
  253. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/ucj_angles_spin_balanced_test.py +0 -0
  254. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/ucj_spin_balanced_test.py +0 -0
  255. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/ucj_spin_unbalanced_test.py +0 -0
  256. {ffsim-0.0.74 → ffsim-0.0.76}/tests/python/variational/ucj_spinless_test.py +0 -0
@@ -50,8 +50,6 @@ jobs:
50
50
  permissions:
51
51
  id-token: write
52
52
  if: github.event_name == 'release' && github.event.action == 'published'
53
- # or, alternatively, upload to PyPI on every tag starting with 'v' (remove on: release above to use this)
54
- # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
55
53
  steps:
56
54
  - uses: actions/download-artifact@v4
57
55
  with:
@@ -22,7 +22,7 @@ jobs:
22
22
  - uses: actions/checkout@v6
23
23
  - name: Install dependencies
24
24
  run: |
25
- sudo apt install -y libopenblas-dev pandoc
25
+ sudo apt install -y pandoc
26
26
  - name: Set up Python
27
27
  uses: actions/setup-python@v6
28
28
  with:
@@ -21,7 +21,7 @@ jobs:
21
21
  python -m pip install --upgrade pip
22
22
  pip install tox
23
23
  sudo apt update
24
- sudo apt install -y libopenblas-dev pandoc
24
+ sudo apt install -y pandoc
25
25
  - name: Build docs
26
26
  run: |
27
27
  tox run -e docs
@@ -21,7 +21,7 @@ jobs:
21
21
  python -m pip install --upgrade pip
22
22
  pip install tox
23
23
  sudo apt update
24
- sudo apt install -y libopenblas-dev pandoc
24
+ sudo apt install -y pandoc
25
25
  - name: Build docs
26
26
  run: |
27
27
  tox run -e docs
@@ -20,9 +20,6 @@ jobs:
20
20
  python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
21
21
  steps:
22
22
  - uses: actions/checkout@v6
23
- - name: Install dependencies
24
- run: |
25
- sudo apt install -y libopenblas-dev
26
23
  - name: Set up Python
27
24
  uses: actions/setup-python@v6
28
25
  with:
@@ -41,9 +38,6 @@ jobs:
41
38
  python-version: ["3.10", "3.14"]
42
39
  steps:
43
40
  - uses: actions/checkout@v6
44
- - name: Install dependencies
45
- run: |
46
- sudo apt install -y libopenblas-dev
47
41
  - name: Set up Python
48
42
  uses: actions/setup-python@v6
49
43
  with:
@@ -20,9 +20,6 @@ jobs:
20
20
  python-version: ["3.10"]
21
21
  steps:
22
22
  - uses: actions/checkout@v6
23
- - name: Install dependencies
24
- run: |
25
- sudo apt install -y libopenblas-dev
26
23
  - name: Set up Python
27
24
  uses: actions/setup-python@v6
28
25
  with:
@@ -0,0 +1,319 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "autocfg"
7
+ version = "1.1.0"
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"
16
+
17
+ [[package]]
18
+ name = "crossbeam-deque"
19
+ version = "0.8.3"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
22
+ dependencies = [
23
+ "cfg-if",
24
+ "crossbeam-epoch",
25
+ "crossbeam-utils",
26
+ ]
27
+
28
+ [[package]]
29
+ name = "crossbeam-epoch"
30
+ version = "0.9.15"
31
+ source = "registry+https://github.com/rust-lang/crates.io-index"
32
+ checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
33
+ dependencies = [
34
+ "autocfg",
35
+ "cfg-if",
36
+ "crossbeam-utils",
37
+ "memoffset",
38
+ "scopeguard",
39
+ ]
40
+
41
+ [[package]]
42
+ name = "crossbeam-utils"
43
+ version = "0.8.16"
44
+ source = "registry+https://github.com/rust-lang/crates.io-index"
45
+ checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
46
+ dependencies = [
47
+ "cfg-if",
48
+ ]
49
+
50
+ [[package]]
51
+ name = "either"
52
+ version = "1.8.1"
53
+ source = "registry+https://github.com/rust-lang/crates.io-index"
54
+ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
55
+
56
+ [[package]]
57
+ name = "ffsim"
58
+ version = "0.0.0"
59
+ dependencies = [
60
+ "ndarray",
61
+ "num-integer",
62
+ "numpy",
63
+ "pyo3",
64
+ "rayon",
65
+ ]
66
+
67
+ [[package]]
68
+ name = "heck"
69
+ version = "0.5.0"
70
+ source = "registry+https://github.com/rust-lang/crates.io-index"
71
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
72
+
73
+ [[package]]
74
+ name = "indoc"
75
+ version = "2.0.5"
76
+ source = "registry+https://github.com/rust-lang/crates.io-index"
77
+ checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
78
+
79
+ [[package]]
80
+ name = "libc"
81
+ version = "0.2.147"
82
+ source = "registry+https://github.com/rust-lang/crates.io-index"
83
+ checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
84
+
85
+ [[package]]
86
+ name = "matrixmultiply"
87
+ version = "0.3.7"
88
+ source = "registry+https://github.com/rust-lang/crates.io-index"
89
+ checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77"
90
+ dependencies = [
91
+ "autocfg",
92
+ "rawpointer",
93
+ ]
94
+
95
+ [[package]]
96
+ name = "memoffset"
97
+ version = "0.9.0"
98
+ source = "registry+https://github.com/rust-lang/crates.io-index"
99
+ checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
100
+ dependencies = [
101
+ "autocfg",
102
+ ]
103
+
104
+ [[package]]
105
+ name = "ndarray"
106
+ version = "0.15.6"
107
+ source = "registry+https://github.com/rust-lang/crates.io-index"
108
+ checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
109
+ dependencies = [
110
+ "matrixmultiply",
111
+ "num-complex",
112
+ "num-integer",
113
+ "num-traits",
114
+ "rawpointer",
115
+ "rayon",
116
+ ]
117
+
118
+ [[package]]
119
+ name = "num-complex"
120
+ version = "0.4.6"
121
+ source = "registry+https://github.com/rust-lang/crates.io-index"
122
+ checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
123
+ dependencies = [
124
+ "num-traits",
125
+ ]
126
+
127
+ [[package]]
128
+ name = "num-integer"
129
+ version = "0.1.45"
130
+ source = "registry+https://github.com/rust-lang/crates.io-index"
131
+ checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
132
+ dependencies = [
133
+ "autocfg",
134
+ "num-traits",
135
+ ]
136
+
137
+ [[package]]
138
+ name = "num-traits"
139
+ version = "0.2.19"
140
+ source = "registry+https://github.com/rust-lang/crates.io-index"
141
+ checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
142
+ dependencies = [
143
+ "autocfg",
144
+ ]
145
+
146
+ [[package]]
147
+ name = "numpy"
148
+ version = "0.27.1"
149
+ source = "registry+https://github.com/rust-lang/crates.io-index"
150
+ checksum = "7aac2e6a6e4468ffa092ad43c39b81c79196c2bb773b8db4085f695efe3bba17"
151
+ dependencies = [
152
+ "libc",
153
+ "ndarray",
154
+ "num-complex",
155
+ "num-integer",
156
+ "num-traits",
157
+ "pyo3",
158
+ "pyo3-build-config",
159
+ "rustc-hash",
160
+ ]
161
+
162
+ [[package]]
163
+ name = "once_cell"
164
+ version = "1.21.3"
165
+ source = "registry+https://github.com/rust-lang/crates.io-index"
166
+ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
167
+
168
+ [[package]]
169
+ name = "portable-atomic"
170
+ version = "1.7.0"
171
+ source = "registry+https://github.com/rust-lang/crates.io-index"
172
+ checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265"
173
+
174
+ [[package]]
175
+ name = "proc-macro2"
176
+ version = "1.0.105"
177
+ source = "registry+https://github.com/rust-lang/crates.io-index"
178
+ checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
179
+ dependencies = [
180
+ "unicode-ident",
181
+ ]
182
+
183
+ [[package]]
184
+ name = "pyo3"
185
+ version = "0.27.2"
186
+ source = "registry+https://github.com/rust-lang/crates.io-index"
187
+ checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d"
188
+ dependencies = [
189
+ "indoc",
190
+ "libc",
191
+ "memoffset",
192
+ "num-complex",
193
+ "once_cell",
194
+ "portable-atomic",
195
+ "pyo3-build-config",
196
+ "pyo3-ffi",
197
+ "pyo3-macros",
198
+ "unindent",
199
+ ]
200
+
201
+ [[package]]
202
+ name = "pyo3-build-config"
203
+ version = "0.27.2"
204
+ source = "registry+https://github.com/rust-lang/crates.io-index"
205
+ checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6"
206
+ dependencies = [
207
+ "target-lexicon",
208
+ ]
209
+
210
+ [[package]]
211
+ name = "pyo3-ffi"
212
+ version = "0.27.2"
213
+ source = "registry+https://github.com/rust-lang/crates.io-index"
214
+ checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089"
215
+ dependencies = [
216
+ "libc",
217
+ "pyo3-build-config",
218
+ ]
219
+
220
+ [[package]]
221
+ name = "pyo3-macros"
222
+ version = "0.27.2"
223
+ source = "registry+https://github.com/rust-lang/crates.io-index"
224
+ checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02"
225
+ dependencies = [
226
+ "proc-macro2",
227
+ "pyo3-macros-backend",
228
+ "quote",
229
+ "syn",
230
+ ]
231
+
232
+ [[package]]
233
+ name = "pyo3-macros-backend"
234
+ version = "0.27.2"
235
+ source = "registry+https://github.com/rust-lang/crates.io-index"
236
+ checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9"
237
+ dependencies = [
238
+ "heck",
239
+ "proc-macro2",
240
+ "pyo3-build-config",
241
+ "quote",
242
+ "syn",
243
+ ]
244
+
245
+ [[package]]
246
+ name = "quote"
247
+ version = "1.0.43"
248
+ source = "registry+https://github.com/rust-lang/crates.io-index"
249
+ checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
250
+ dependencies = [
251
+ "proc-macro2",
252
+ ]
253
+
254
+ [[package]]
255
+ name = "rawpointer"
256
+ version = "0.2.1"
257
+ source = "registry+https://github.com/rust-lang/crates.io-index"
258
+ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
259
+
260
+ [[package]]
261
+ name = "rayon"
262
+ version = "1.11.0"
263
+ source = "registry+https://github.com/rust-lang/crates.io-index"
264
+ checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f"
265
+ dependencies = [
266
+ "either",
267
+ "rayon-core",
268
+ ]
269
+
270
+ [[package]]
271
+ name = "rayon-core"
272
+ version = "1.13.0"
273
+ source = "registry+https://github.com/rust-lang/crates.io-index"
274
+ checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
275
+ dependencies = [
276
+ "crossbeam-deque",
277
+ "crossbeam-utils",
278
+ ]
279
+
280
+ [[package]]
281
+ name = "rustc-hash"
282
+ version = "2.1.1"
283
+ source = "registry+https://github.com/rust-lang/crates.io-index"
284
+ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
285
+
286
+ [[package]]
287
+ name = "scopeguard"
288
+ version = "1.1.0"
289
+ source = "registry+https://github.com/rust-lang/crates.io-index"
290
+ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
291
+
292
+ [[package]]
293
+ name = "syn"
294
+ version = "2.0.114"
295
+ source = "registry+https://github.com/rust-lang/crates.io-index"
296
+ checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
297
+ dependencies = [
298
+ "proc-macro2",
299
+ "quote",
300
+ "unicode-ident",
301
+ ]
302
+
303
+ [[package]]
304
+ name = "target-lexicon"
305
+ version = "0.13.4"
306
+ source = "registry+https://github.com/rust-lang/crates.io-index"
307
+ checksum = "b1dd07eb858a2067e2f3c7155d54e929265c264e6f37efe3ee7a8d1b5a1dd0ba"
308
+
309
+ [[package]]
310
+ name = "unicode-ident"
311
+ version = "1.0.9"
312
+ source = "registry+https://github.com/rust-lang/crates.io-index"
313
+ checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
314
+
315
+ [[package]]
316
+ name = "unindent"
317
+ version = "0.2.3"
318
+ source = "registry+https://github.com/rust-lang/crates.io-index"
319
+ checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
@@ -10,8 +10,6 @@ name = "ffsim"
10
10
  crate-type = ["cdylib"]
11
11
 
12
12
  [dependencies]
13
- blas = "0.23"
14
- blas-src = "0.14"
15
13
  ndarray = { version = "0.15", features = ["rayon"] }
16
14
  num-integer = "0.1"
17
15
  numpy = "0.27"
@@ -21,7 +19,3 @@ pyo3 = { version = "0.27", features = [
21
19
  "abi3-py310",
22
20
  ] }
23
21
  rayon = "1.11"
24
-
25
- [target.'cfg(target_os = "linux")'.dependencies]
26
- blas-src = { version = "0.14", features = ["openblas"] }
27
- openblas-src = { version = "0.10", features = ["system"] }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ffsim
3
- Version: 0.0.74
3
+ Version: 0.0.76
4
4
  Classifier: License :: OSI Approved :: Apache Software License
5
5
  Classifier: Programming Language :: Python
6
6
  Classifier: Programming Language :: Python :: 3 :: Only
@@ -69,6 +69,22 @@ This method won't work natively on Windows, however. Refer to the [installation
69
69
 
70
70
  <!-- end installation -->
71
71
 
72
+ ## Get started
73
+
74
+ <!-- start get-started -->
75
+
76
+ Visit [*State vectors and gates*](https://qiskit-community.github.io/ffsim/explanations/state-vectors-and-gates.html) to start learning ffsim's core concepts, or jump straight into a [tutorial](https://qiskit-community.github.io/ffsim/tutorials/double-factorized-trotter.html). Check out the [guides](https://qiskit-community.github.io/ffsim/how-to-guides/index.html) for help with specific tasks, or visit the [API reference](https://qiskit-community.github.io/ffsim/api/index.html) for detailed documentation of all function and classes available in the library.
77
+
78
+ <!-- end get-started -->
79
+
80
+ ## Multithreading
81
+
82
+ <!-- start multithreading -->
83
+
84
+ Some ffsim functions implemented in Rust use multithreading. The number of threads can be controlled using the environment variable `RAYON_NUM_THREADS`. For example, to disable multithreading, set this variable as `RAYON_NUM_THREADS=1`.
85
+
86
+ <!-- end multithreading -->
87
+
72
88
  ## Code example
73
89
 
74
90
  <!-- start code-example -->
@@ -104,10 +120,6 @@ print(energy) # prints -104.17181289596
104
120
 
105
121
  <!-- end code-example -->
106
122
 
107
- ## Multithreading
108
-
109
- Some ffsim functions implemented in Rust use multithreading. The number of threads can be set using the environment variable `RAYON_NUM_THREADS`. For example, to disable multithreading, set this variable as `RAYON_NUM_THREADS=1`.
110
-
111
123
  ## Citing ffsim
112
124
 
113
125
  <!-- start citing -->
@@ -24,6 +24,22 @@ This method won't work natively on Windows, however. Refer to the [installation
24
24
 
25
25
  <!-- end installation -->
26
26
 
27
+ ## Get started
28
+
29
+ <!-- start get-started -->
30
+
31
+ Visit [*State vectors and gates*](https://qiskit-community.github.io/ffsim/explanations/state-vectors-and-gates.html) to start learning ffsim's core concepts, or jump straight into a [tutorial](https://qiskit-community.github.io/ffsim/tutorials/double-factorized-trotter.html). Check out the [guides](https://qiskit-community.github.io/ffsim/how-to-guides/index.html) for help with specific tasks, or visit the [API reference](https://qiskit-community.github.io/ffsim/api/index.html) for detailed documentation of all function and classes available in the library.
32
+
33
+ <!-- end get-started -->
34
+
35
+ ## Multithreading
36
+
37
+ <!-- start multithreading -->
38
+
39
+ Some ffsim functions implemented in Rust use multithreading. The number of threads can be controlled using the environment variable `RAYON_NUM_THREADS`. For example, to disable multithreading, set this variable as `RAYON_NUM_THREADS=1`.
40
+
41
+ <!-- end multithreading -->
42
+
27
43
  ## Code example
28
44
 
29
45
  <!-- start code-example -->
@@ -59,10 +75,6 @@ print(energy) # prints -104.17181289596
59
75
 
60
76
  <!-- end code-example -->
61
77
 
62
- ## Multithreading
63
-
64
- Some ffsim functions implemented in Rust use multithreading. The number of threads can be set using the environment variable `RAYON_NUM_THREADS`. For example, to disable multithreading, set this variable as `RAYON_NUM_THREADS=1`.
65
-
66
78
  ## Citing ffsim
67
79
 
68
80
  <!-- start citing -->
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72"><circle cx="36" cy="36" r="36" style="fill:#111"/><path d="M34.001 30.005c-.355 0-.508 0-.508-.254 0-.152.051-.305.102-.61 1.016-4.42 2.134-7.112 4.674-7.112.406 0 .812.102.812.407s-.254.254-.812.508c-.66.305-1.067 1.016-1.067 1.93 0 1.423 1.016 2.134 2.286 2.134 1.32 0 2.49-.864 2.49-2.743s-1.169-3.404-4.37-3.404c-4.927 0-7.67 3.505-9.347 8.382-.254.762-.305.762-1.016.762l-2.947.001c-.56 0-.813.254-.813.813q0 .762.762.762h2.946c.305 0 .407 0 .407.203 0 .102-.05.254-.102.508l-3.2 11.124c-1.423 4.98-2.337 6.605-4.37 6.605-.66 0-.914-.204-.914-.458 0-.406.458-.152 1.22-.66a2.22 2.22 0 0 0 1.016-1.88c0-1.32-.915-2.083-2.286-2.083-1.524 0-2.642 1.22-2.642 2.795 0 2.234 1.676 3.403 3.81 3.403 3.86 0 6.248-2.59 9.042-8.33 1.474-3.1 2.591-6.25 3.81-10.568l.051-.05c0-.153.407-.61.66-.61h7.198c.305 0 .407.001.407.204 0 .102-.05.254-.102.508l-3.2 11.124c-1.423 4.98-2.337 6.605-4.37 6.605-.66 0-.914-.204-.914-.458 0-.406.458-.152 1.22-.66a2.22 2.22 0 0 0 1.016-1.88c0-1.32-.915-2.083-2.286-2.083-1.524 0-2.642 1.22-2.642 2.795 0 2.234 1.676 3.403 3.81 3.403 3.86 0 6.248-2.59 9.042-8.33 1.474-3.1 2.591-6.25 3.81-10.568l.051-.05c0-.153.407-.61.66-.61h3.303c.558 0 .812-.254.812-.813q0-.762-.762-.762h-3.047c-.355 0-.508 0-.508-.254 0-.152.051-.305.102-.61 1.016-4.42 2.134-7.112 4.674-7.112.406 0 .812.102.812.407s-.254.254-.812.508c-.66.305-1.067 1.016-1.067 1.93 0 1.423 1.016 2.134 2.286 2.134 1.32 0 2.49-.864 2.49-2.743s-1.169-3.404-4.37-3.404c-4.927 0-7.67 3.505-9.347 8.382-.254.762-.305.762-1.016.762z" style="fill:#aaa"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72"><circle cx="36" cy="36" r="36" style="fill:#fff"/><path d="M34.001 30.005c-.355 0-.508 0-.508-.254 0-.152.051-.305.102-.61 1.016-4.42 2.134-7.112 4.674-7.112.406 0 .812.102.812.407s-.254.254-.812.508c-.66.305-1.067 1.016-1.067 1.93 0 1.423 1.016 2.134 2.286 2.134 1.32 0 2.49-.864 2.49-2.743s-1.169-3.404-4.37-3.404c-4.927 0-7.67 3.505-9.347 8.382-.254.762-.305.762-1.016.762l-2.947.001c-.56 0-.813.254-.813.813q0 .762.762.762h2.946c.305 0 .407 0 .407.203 0 .102-.05.254-.102.508l-3.2 11.124c-1.423 4.98-2.337 6.605-4.37 6.605-.66 0-.914-.204-.914-.458 0-.406.458-.152 1.22-.66a2.22 2.22 0 0 0 1.016-1.88c0-1.32-.915-2.083-2.286-2.083-1.524 0-2.642 1.22-2.642 2.795 0 2.234 1.676 3.403 3.81 3.403 3.86 0 6.248-2.59 9.042-8.33 1.474-3.1 2.591-6.25 3.81-10.568l.051-.05c0-.153.407-.61.66-.61h7.198c.305 0 .407.001.407.204 0 .102-.05.254-.102.508l-3.2 11.124c-1.423 4.98-2.337 6.605-4.37 6.605-.66 0-.914-.204-.914-.458 0-.406.458-.152 1.22-.66a2.22 2.22 0 0 0 1.016-1.88c0-1.32-.915-2.083-2.286-2.083-1.524 0-2.642 1.22-2.642 2.795 0 2.234 1.676 3.403 3.81 3.403 3.86 0 6.248-2.59 9.042-8.33 1.474-3.1 2.591-6.25 3.81-10.568l.051-.05c0-.153.407-.61.66-.61h3.303c.558 0 .812-.254.812-.813q0-.762-.762-.762h-3.047c-.355 0-.508 0-.508-.254 0-.152.051-.305.102-.61 1.016-4.42 2.134-7.112 4.674-7.112.406 0 .812.102.812.407s-.254.254-.812.508c-.66.305-1.067 1.016-1.067 1.93 0 1.423 1.016 2.134 2.286 2.134 1.32 0 2.49-.864 2.49-2.743s-1.169-3.404-4.37-3.404c-4.927 0-7.67 3.505-9.347 8.382-.254.762-.305.762-1.016.762z" style="fill:#000"/></svg>
@@ -41,8 +41,14 @@ html_theme_options = {
41
41
  "source_branch": "main",
42
42
  "source_directory": "docs/",
43
43
  "sidebar_qiskit_ecosystem_member": True,
44
+ "light_logo": "logo.svg",
45
+ "dark_logo": "logo-dark.svg",
44
46
  }
45
47
 
48
+ # HTML static files
49
+ html_static_path = ["_static"]
50
+ html_favicon = "_static/logo.svg"
51
+
46
52
  # autosummary options
47
53
  autosummary_generate = True
48
54
  templates_path = ["_templates"]
@@ -114,7 +114,7 @@
114
114
  "source": [
115
115
  "n_reps = 2\n",
116
116
  "\n",
117
- "# Construct from random t2- and t1-amplitudes. The t2-amplitudes are double factorized\n",
117
+ "# Construct from random t2- and t1-amplitudes. The t2-amplitudes are double-factorized\n",
118
118
  "# to obtain the diagonal Coulomb matries and orbital rotations. The t1-amplitudes are\n",
119
119
  "# used to set a final orbital rotation.\n",
120
120
  "t2 = ffsim.random.random_t2_amplitudes(norb, nocc, seed=rng, dtype=float)\n",