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)

wires

Return wires of the FermiSentence.

wires

Return wires of the FermiSentence.

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.

adjoint()[source]

Return the adjoint of FermiSentence.

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])