groups_have_uniform_coeffs
groups_have_uniform_coeffs(op, *, atol=1e-08, abs=True)
Restituisce, per ciascun gruppo, se tutti i suoi coefficienti sono numericamente uguali.
Con abs (impostazione predefinita), vengono confrontati i valori assoluti dei coefficienti: questa è l'ipotesi su cui si group_coeff_means() basa quando calcola la media di abs(coeff). In assenza di ciò, i coefficienti devono corrispondere esattamente. Si noti che un gruppo ermitiano può legittimamente non soddisfare la forma più rigorosa, poiché una coppia coniugata con coefficienti complessi ha magnitudini uguali ma coefficienti disuguali. Se l'operatore non tiene traccia di alcun gruppo, questa funzione restituisce None.
Un gruppo vuoto o composto da un unico termine è, ovviamente, uniforme.
Non si tratta di una forma più debole di groups_are_hermitian(): nessuna delle due implica l’altra. I coefficienti uniformi non rendono un gruppo ermitiano, e un gruppo ermitiano può avere grandezze miste.
>>> from qiskit_fermions.operators import FermionOperator
>>> from qiskit_fermions.operators.terms.grouping import groups_have_uniform_coeffs
>>> op = FermionOperator.from_dict(
... {
... ((True, 0), (False, 1)): 1.0j,
... ((True, 1), (False, 0)): -1.0j,
... }
... )
>>> op.groups = [0, 0]
>>> groups_have_uniform_coeffs(op) # equal magnitudes
[True]
>>> groups_have_uniform_coeffs(op, abs=False) # but not equal coefficients
[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. - abs – Se confrontare i valori assoluti dei coefficienti anziché i coefficienti stessi. Il valore predefinito è
True.
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).