tequila-basic 1.9.8__py3-none-any.whl → 1.9.10__py3-none-any.whl

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 (86) hide show
  1. tequila/__init__.py +29 -14
  2. tequila/apps/__init__.py +14 -5
  3. tequila/apps/_unary_state_prep_impl.py +145 -112
  4. tequila/apps/adapt/__init__.py +9 -1
  5. tequila/apps/adapt/adapt.py +154 -113
  6. tequila/apps/krylov/__init__.py +1 -1
  7. tequila/apps/krylov/krylov.py +23 -21
  8. tequila/apps/robustness/helpers.py +10 -6
  9. tequila/apps/robustness/interval.py +238 -156
  10. tequila/apps/unary_state_prep.py +29 -23
  11. tequila/autograd_imports.py +8 -5
  12. tequila/circuit/__init__.py +2 -1
  13. tequila/circuit/_gates_impl.py +135 -67
  14. tequila/circuit/circuit.py +177 -88
  15. tequila/circuit/compiler.py +114 -105
  16. tequila/circuit/gates.py +288 -120
  17. tequila/circuit/gradient.py +35 -23
  18. tequila/circuit/noise.py +83 -74
  19. tequila/circuit/postselection.py +120 -0
  20. tequila/circuit/pyzx.py +10 -6
  21. tequila/circuit/qasm.py +201 -83
  22. tequila/circuit/qpic.py +63 -61
  23. tequila/grouping/binary_rep.py +148 -146
  24. tequila/grouping/binary_utils.py +84 -75
  25. tequila/grouping/compile_groups.py +334 -230
  26. tequila/grouping/ev_utils.py +77 -41
  27. tequila/grouping/fermionic_functions.py +383 -308
  28. tequila/grouping/fermionic_methods.py +170 -123
  29. tequila/grouping/overlapping_methods.py +69 -52
  30. tequila/hamiltonian/paulis.py +12 -13
  31. tequila/hamiltonian/paulistring.py +1 -1
  32. tequila/hamiltonian/qubit_hamiltonian.py +45 -35
  33. tequila/ml/__init__.py +1 -0
  34. tequila/ml/interface_torch.py +19 -16
  35. tequila/ml/ml_api.py +11 -10
  36. tequila/ml/utils_ml.py +12 -11
  37. tequila/objective/__init__.py +8 -3
  38. tequila/objective/braket.py +55 -47
  39. tequila/objective/objective.py +91 -56
  40. tequila/objective/qtensor.py +36 -27
  41. tequila/optimizers/__init__.py +31 -23
  42. tequila/optimizers/_containers.py +11 -7
  43. tequila/optimizers/optimizer_base.py +111 -83
  44. tequila/optimizers/optimizer_gd.py +258 -231
  45. tequila/optimizers/optimizer_gpyopt.py +56 -42
  46. tequila/optimizers/optimizer_scipy.py +157 -112
  47. tequila/quantumchemistry/__init__.py +66 -38
  48. tequila/quantumchemistry/chemistry_tools.py +394 -203
  49. tequila/quantumchemistry/encodings.py +121 -13
  50. tequila/quantumchemistry/madness_interface.py +170 -96
  51. tequila/quantumchemistry/orbital_optimizer.py +86 -40
  52. tequila/quantumchemistry/psi4_interface.py +166 -97
  53. tequila/quantumchemistry/pyscf_interface.py +70 -23
  54. tequila/quantumchemistry/qc_base.py +866 -414
  55. tequila/simulators/__init__.py +0 -3
  56. tequila/simulators/simulator_api.py +258 -106
  57. tequila/simulators/simulator_aqt.py +102 -0
  58. tequila/simulators/simulator_base.py +156 -55
  59. tequila/simulators/simulator_cirq.py +58 -42
  60. tequila/simulators/simulator_cudaq.py +600 -0
  61. tequila/simulators/simulator_ddsim.py +390 -0
  62. tequila/simulators/simulator_mqp.py +30 -0
  63. tequila/simulators/simulator_pyquil.py +190 -171
  64. tequila/simulators/simulator_qibo.py +95 -87
  65. tequila/simulators/simulator_qiskit.py +124 -114
  66. tequila/simulators/simulator_qlm.py +52 -26
  67. tequila/simulators/simulator_qulacs.py +85 -59
  68. tequila/simulators/simulator_spex.py +464 -0
  69. tequila/simulators/simulator_symbolic.py +6 -5
  70. tequila/simulators/test_spex_simulator.py +208 -0
  71. tequila/tools/convenience.py +4 -4
  72. tequila/tools/qng.py +72 -64
  73. tequila/tools/random_generators.py +38 -34
  74. tequila/utils/bitstrings.py +13 -7
  75. tequila/utils/exceptions.py +19 -5
  76. tequila/utils/joined_transformation.py +8 -10
  77. tequila/utils/keymap.py +0 -5
  78. tequila/utils/misc.py +6 -4
  79. tequila/version.py +1 -1
  80. tequila/wavefunction/qubit_wavefunction.py +52 -30
  81. {tequila_basic-1.9.8.dist-info → tequila_basic-1.9.10.dist-info}/METADATA +23 -17
  82. tequila_basic-1.9.10.dist-info/RECORD +93 -0
  83. {tequila_basic-1.9.8.dist-info → tequila_basic-1.9.10.dist-info}/WHEEL +1 -1
  84. tequila_basic-1.9.8.dist-info/RECORD +0 -86
  85. {tequila_basic-1.9.8.dist-info → tequila_basic-1.9.10.dist-info/licenses}/LICENSE +0 -0
  86. {tequila_basic-1.9.8.dist-info → tequila_basic-1.9.10.dist-info}/top_level.txt +0 -0
tequila/__init__.py CHANGED
@@ -1,25 +1,37 @@
1
1
  from tequila.utils import BitString, BitNumbering, BitStringLSB, initialize_bitstring, TequilaException, TequilaWarning
2
2
  from tequila.circuit import gates, QCircuit, NoiseModel, compile_circuit, CircuitCompiler
3
3
  from tequila.hamiltonian import paulis, QubitHamiltonian, PauliString
4
- from tequila.objective import Objective, VectorObjective,\
5
- ExpectationValue, Variable, assign_variable, format_variable_dictionary,\
6
- vectorize
4
+ from tequila.objective import (
5
+ Objective,
6
+ VectorObjective,
7
+ ExpectationValue,
8
+ Variable,
9
+ assign_variable,
10
+ format_variable_dictionary,
11
+ vectorize,
12
+ )
7
13
  from tequila.objective import QTensor
8
14
  from tequila.objective.braket import BraKet, make_transition, make_overlap, Overlap, Fidelity
9
15
 
10
- # backward compatibility
11
- braket = BraKet
12
-
13
16
  from tequila.optimizers import INSTALLED_OPTIMIZERS, show_available_optimizers
14
17
  from tequila.optimizers import minimize, minimize_scipy, minimize_gd, optimizer_scipy
15
18
 
16
- from tequila.simulators.simulator_api import simulate, compile, compile_to_function, draw, pick_backend, \
17
- INSTALLED_SAMPLERS, \
18
- INSTALLED_SIMULATORS, SUPPORTED_BACKENDS, INSTALLED_BACKENDS, show_available_simulators
19
+ from tequila.simulators.simulator_api import (
20
+ simulate,
21
+ compile,
22
+ compile_to_function,
23
+ draw,
24
+ pick_backend,
25
+ INSTALLED_SAMPLERS,
26
+ INSTALLED_SIMULATORS,
27
+ SUPPORTED_BACKENDS,
28
+ INSTALLED_BACKENDS,
29
+ show_available_simulators,
30
+ )
19
31
  from tequila.wavefunction import QubitWaveFunction
20
32
  from tequila.circuit.qasm import export_open_qasm, import_open_qasm, import_open_qasm_from_file
21
33
  from tequila.circuit.pyzx import convert_to_pyzx, convert_from_pyzx
22
- import tequila.quantumchemistry as chemistry # shortcut
34
+ import tequila.quantumchemistry as chemistry # shortcut
23
35
  from tequila.quantumchemistry import Molecule, MoleculeFromOpenFermion, MoleculeFromTequila
24
36
 
25
37
  # make sure to use the jax/autograd numpy for objectives
@@ -32,11 +44,14 @@ from tequila.tools.random_generators import make_random_circuit, make_random_ham
32
44
  # get rid of the jax GPU/CPU warnings
33
45
  import warnings
34
46
 
35
- warnings.filterwarnings("ignore", module="jax")
36
- warnings.filterwarnings("ignore", module="absl")
37
- warnings.filterwarnings("default", category=TequilaWarning)
38
-
39
47
  # load applications and helpers
40
48
  from tequila.apps import adapt
41
49
 
42
50
  from .version import __version__, __author__
51
+
52
+ # backward compatibility
53
+ braket = BraKet
54
+
55
+ warnings.filterwarnings("ignore", module="jax")
56
+ warnings.filterwarnings("ignore", module="absl")
57
+ warnings.filterwarnings("default", category=TequilaWarning)
tequila/apps/__init__.py CHANGED
@@ -3,7 +3,8 @@ from tequila.apps.unary_state_prep import UnaryStatePrep
3
3
  from tequila.apps import adapt
4
4
  from tequila.apps import krylov
5
5
 
6
- def gem(circuits:list, H, variables:dict=None, *args, **kwargs):
6
+
7
+ def gem(circuits: list, H, variables: dict = None, *args, **kwargs):
7
8
  """
8
9
  Solve the generalized eigenvalue equation: HC = ESC
9
10
  with matries Hij = <i|H|j>, Sij = <i|j> and states |i> = U[i]|00...0> generated by the circuits given
@@ -24,13 +25,21 @@ def gem(circuits:list, H, variables:dict=None, *args, **kwargs):
24
25
  ----------
25
26
  a tuple of eigenenergies E and eigenvectors C in the same format as numpy.linalg.eigh
26
27
  """
27
-
28
+
28
29
  varnames = sum([U.extract_variables() for U in circuits], [])
29
30
  if len(varnames) > 0:
30
31
  if variables is None:
31
- raise TequilaException("GEM method: no variables dictionary given, but circuits have {} variables:\n{}".format(len(varnames),str(varnames)))
32
+ raise TequilaException(
33
+ "GEM method: no variables dictionary given, but circuits have {} variables:\n{}".format(
34
+ len(varnames), str(varnames)
35
+ )
36
+ )
32
37
  for k in varnames:
33
38
  if k not in variables:
34
- raise TequilaException("GEM method: you gave a parametrized circuit, but the variable {} was not set in the variables dictionary".format(k))
39
+ raise TequilaException(
40
+ "GEM method: you gave a parametrized circuit, but the variable {} was not set in the variables dictionary".format(
41
+ k
42
+ )
43
+ )
35
44
 
36
- return krylov.krylov_method(krylov_circs=circuits,H=H,variables=variables)
45
+ return krylov.krylov_method(krylov_circs=circuits, H=H, variables=variables)