groups_are_hermitian
groups_are_hermitian(op, *, atol=1e-08)
Restituisce, per ciascun gruppo, se l’operatore formato dai termini di quel gruppo è ermitiano.
I gruppi non attribuiscono alcun significato proprio; ciò conferma una convenzione comune, ovvero che ogni gruppo è separatamente ermitiano. Questa è la proprietà su cui si basa una formula di prodotto randomizzata quando campiona gruppi interi, poiché solo un gruppo ermitiano presenta un’evoluzione temporale unitaria. Se l'operatore non tiene traccia di alcun gruppo, questa funzione restituisce None.
Un gruppo vuoto è considerato ermitiano, poiché lo è l'operatore zero.
Ciò eredita la garanzia unilaterale secondo cui is_hermitian(): una voce True è sempre affidabile, mentre una False voce è affidabile solo per i tipi di operatori la cui forma normale è una forma canonica autentica. Per gli altri, la verifica è prudente e può portare a risultati relativi False a un gruppo che in realtà è ermitiano.
Ciò non è implicito in (né implica) groups_have_uniform_coeffs(). I coefficienti uniformi non rendono un gruppo ermitiano, e un gruppo ermitiano può presentare grandezze miste.
>>> from qiskit_fermions.operators import FermionOperator
>>> from qiskit_fermions.operators.terms.grouping import groups_are_hermitian
>>> # built from the sparse arrays rather than a dictionary, because only the former
>>> # fixes the term order that the group indices are paired with
>>> op = FermionOperator(
... [1.0, 1.0, 1.0],
... [True, False, True, False, True, False],
... [0, 1, 1, 0, 2, 3],
... [0, 2, 4, 6],
... )
>>> op.groups = [0, 0, 1] # the leading conjugate pair, then one unpaired term
>>> groups_are_hermitian(op)
[True, False]
Parametri
- op – l'operatore i cui gruppi devono essere controllati.
- atol – Il livello di precisione numerica entro il quale i coefficienti sono considerati uguali. Il valore predefinito è
1e-8.
Risultati
Una bandiera per ogni indice di gruppo, oppure None se l'operatore non tiene traccia di alcun gruppo.
Aumenti
TypeError – se non op è un tipo di operatore supportato (vedi OperatorTrait).