qml.FermiSentence¶
- class FermiSentence(operator)[source]¶
Bases:
dictImmutable 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 = qml.FermiWord({(0, 0) : '+', (1, 1) : '-'}) >>> w2 = qml.FermiWord({(0, 1) : '+', (1, 2) : '-'}) >>> s = qml.FermiSentence({w1 : 1.2, w2: 3.1}) >>> print(s) 1.2 * a⁺(0) a(1) + 3.1 * a⁺(1) a(2)
Attributes
Methods
adjoint()Return the adjoint of FermiSentence.
clear()copy()fromkeys([value])Create a new dictionary with keys from iterable and values set to value.
get(key[, default])Return the value for key if key is in the dictionary, else default.
items()keys()pop(k[,d])If the key is not found, return the default if given; otherwise, raise a KeyError.
popitem()Remove and return a (key, value) pair as a 2-tuple.
setdefault(key[, default])Insert key with a value of default if key is not in the dictionary.
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.
update([E, ]**F)If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
values()- clear() None. Remove all items from D.¶
- copy() a shallow copy of D¶
- fromkeys(value=None, /)¶
Create a new dictionary with keys from iterable and values set to value.
- get(key, default=None, /)¶
Return the value for key if key is in the dictionary, else default.
- items() a set-like object providing a view on D's items¶
- keys() a set-like object providing a view on D's keys¶
- pop(k[, d]) v, remove specified key and return the corresponding value.¶
If the key is not found, return the default if given; otherwise, raise a KeyError.
- popitem()¶
Remove and return a (key, value) pair as a 2-tuple.
Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.
- setdefault(key, default=None, /)¶
Insert key with a value of default if key is not in the dictionary.
Return the value for key if key is in the dictionary, else default.
- 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 ** 30bytes that make 1GB of memory. In general, larger buffers allow faster computations.
- Returns:
Matrix representation of the
FermiSentence.- Return type:
NumpyArray
Example
>>> fw1 = qml.FermiWord({(0, 0): "+", (1, 1): "-"}) >>> fw2 = qml.FermiWord({(0, 0): "+", (1, 0): "-"}) >>> fs = qml.FermiSentence({fw1: 1.2, fw2: 3.1}) >>> fs.to_mat() array([[0. +0.j, 0. +0.j, 0. +0.j, 0. +0.j], [0. +0.j, 0. +0.j, 0. +0.j, 0. +0.j], [0. +0.j, 1.2+0.j, 3.1+0.j, 0. +0.j], [0. +0.j, 0. +0.j, 0. +0.j, 3.1+0.j]])
- update([E, ]**F) None. Update D from dict/iterable E and F.¶
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
- values() an object providing a view on D's values¶