qml.fermi.FermiSentence¶
- class FermiSentence(operator)[source]¶
Bases:
dict
Immutable dictionary used to represent a Fermi sentence, a linear combination of Fermi words, with the keys as FermiWord instances and the values correspond to coefficients.
>>> w1 = FermiWord({(0, 0) : '+', (1, 1) : '-'}) >>> w2 = FermiWord({(0, 1) : '+', (1, 2) : '-'}) >>> s = FermiSentence({w1 : 1.2, w2: 3.1}) >>> s 1.2 * a⁺(0) a(1) + 3.1 * a⁺(1) a(2)
Attributes
Methods
adjoint
()Return the adjoint of FermiSentence.
simplify
([tol])Remove any FermiWords in the FermiSentence with coefficients less than the threshold tolerance.
to_mat
([n_orbitals, format, buffer_size])Return the matrix representation.
- simplify(tol=1e-08)[source]¶
Remove any FermiWords in the FermiSentence with coefficients less than the threshold tolerance.
- to_mat(n_orbitals=None, format='dense', buffer_size=None)[source]¶
Return the matrix representation.
- Parameters
n_orbitals (int or None) – Number of orbitals. If not provided, it will be inferred from the largest orbital index in the Fermi operator
format (str) – The format of the matrix. It is “dense” by default. Use “csr” for sparse.
buffer_size (int or None) – The maximum allowed memory in bytes to store intermediate results in the calculation of sparse matrices. It defaults to
2 ** 30
bytes that make 1GB of memory. In general, larger buffers allow faster computations.
- Returns
Matrix representation of the
FermiSentence
.- Return type
NumpyArray
Example
>>> fs = FermiSentence({FermiWord({(0, 0): "+", (1, 1): "-"}): 1.2, FermiWord({(0, 0): "+", (1, 0): "-"}): 3.1}) >>> fs.to_mat() array([0.0 + 0.0j, 0.0 + 0.0j, 0.0 + 0.0j, 0.0 + 0.0j], [0.0 + 0.0j, 0.0 + 0.0j, 0.0 + 0.0j, 0.0 + 0.0j], [0.0 + 0.0j, 1.2 + 0.0j, 3.1 + 0.0j, 0.0 + 0.0j], [0.0 + 0.0j, 0.0 + 0.0j, 0.0 + 0.0j, 3.1 + 0.0j])