groups_have_uniform_coeffs
groups_have_uniform_coeffs(op, *, atol=1e-08, abs=True)
Gibt für jede Gruppe zurück, ob alle ihre Koeffizienten numerisch gleich sind.
Bei abs (der Standardeinstellung) werden die Koeffizientengrößen verglichen; dies entspricht der Annahme, die group_coeff_means() trifft, wenn es den Mittelwert von berechnet abs(coeff). Ohne diese müssen die Koeffizienten exakt übereinstimmen. Beachten Sie, dass eine hermitische Gruppe die strengere Form durchaus nicht erfüllen kann, da ein konjugiertes Paar mit komplexen Koeffizienten zwar gleiche Beträge, aber ungleiche Koeffizienten aufweist. Wenn der Betreiber keine Gruppen verfolgt, wird hier. zurückgegeben None.
Eine leere oder aus einem einzigen Element bestehende Gruppe ist trivialerweise homogen.
Dies ist keine abgeschwächte Form von groups_are_hermitian(): Das eine impliziert das andere nicht. Einheitliche Koeffizienten machen eine Gruppe noch nicht hermitisch, und eine hermitische Gruppe kann unterschiedliche Größenordnungen enthalten.
>>> 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]
Parameter
- op – der Operator, dessen Gruppen überprüft werden sollen.
- atol – Die numerische Genauigkeit, bis zu der Koeffizienten als gleich angesehen werden. Dieser Wert ist standardmäßig auf
1e-8. gesetzt. - abs – Gibt an, ob die Größen der Koeffizienten statt der Koeffizienten selbst verglichen werden sollen. Dieser Wert ist standardmäßig auf
True. gesetzt.
Rückgabe
Ein Flag pro Gruppenindex oder None falls der Operator keine Gruppen verfolgt.
Erhöhungen
TypeError – wenn kein unterstützter Operatortyp op ist (siehe OperatorTrait).