ComplexTerm

class zixy.qubit.pauli.ComplexTerm(qubits: int | Qubits = 0, source: SpecT | None = None)[source]

Bases: Term[complex]

A term consisting of a Pauli string and a complex coefficient.

A single qubit-based term consisting of a Pauli string and a complex coefficient that may be an owning instance referencing a single element in a TermData instance, or a view on an element in another collection.

__eq__(other: object) bool

Return whether self and other are equal.

__imul__(rhs: int | float | complex | Sign | ComplexSign | Expr | String | Term[CoeffT]) Self

In-place multiplication of self by rhs.

__init__(qubits: int | Qubits = 0, source: SpecT | None = None)

Initialize the term.

Parameters:
  • qubits – The qubit register or qubit count.

  • source – The term specifier to use for default qubits and initial value.

__mul__(rhs: OtherCoeffT | Cmpnt[ImplT, SpecT] | TermMulMixin[ImplT, SpecT, OtherCoeffT]) TermMulMixin[ImplT, SpecT, Any]
Overloads:
  • self (TermMulMixin[ImplT, SpecT, float]), rhs (float) → TermMulMixin[ImplT, SpecT, float]

  • self (TermMulMixin[ImplT, SpecT, float]), rhs (complex) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, float]), rhs (Sign) → TermMulMixin[ImplT, SpecT, float]

  • self (TermMulMixin[ImplT, SpecT, float]), rhs (ComplexSign) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, float]), rhs (Expr) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, complex]), rhs (float) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), rhs (complex) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), rhs (Sign) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), rhs (ComplexSign) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), rhs (Expr) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Sign]), rhs (float) → TermMulMixin[ImplT, SpecT, float]

  • self (TermMulMixin[ImplT, SpecT, Sign]), rhs (complex) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, Sign]), rhs (Sign) → TermMulMixin[ImplT, SpecT, Sign]

  • self (TermMulMixin[ImplT, SpecT, Sign]), rhs (ComplexSign) → TermMulMixin[ImplT, SpecT, ComplexSign]

  • self (TermMulMixin[ImplT, SpecT, Sign]), rhs (Expr) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), rhs (float) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), rhs (complex) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), rhs (Sign) → TermMulMixin[ImplT, SpecT, ComplexSign]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), rhs (ComplexSign) → TermMulMixin[ImplT, SpecT, ComplexSign]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), rhs (Expr) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), rhs (float) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), rhs (complex) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), rhs (Sign) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), rhs (ComplexSign) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), rhs (Expr) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, float]), rhs (TermMulMixin[ImplT, SpecT, float]) → TermMulMixin[ImplT, SpecT, float]

  • self (TermMulMixin[ImplT, SpecT, float]), rhs (TermMulMixin[ImplT, SpecT, complex]) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, float]), rhs (TermMulMixin[ImplT, SpecT, Sign]) → TermMulMixin[ImplT, SpecT, float]

  • self (TermMulMixin[ImplT, SpecT, float]), rhs (TermMulMixin[ImplT, SpecT, ComplexSign]) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, float]), rhs (TermMulMixin[ImplT, SpecT, Expr]) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, complex]), rhs (TermMulMixin[ImplT, SpecT, float]) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), rhs (TermMulMixin[ImplT, SpecT, complex]) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), rhs (TermMulMixin[ImplT, SpecT, Sign]) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), rhs (TermMulMixin[ImplT, SpecT, ComplexSign]) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), rhs (TermMulMixin[ImplT, SpecT, Expr]) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Sign]), rhs (TermMulMixin[ImplT, SpecT, float]) → TermMulMixin[ImplT, SpecT, float]

  • self (TermMulMixin[ImplT, SpecT, Sign]), rhs (TermMulMixin[ImplT, SpecT, complex]) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, Sign]), rhs (TermMulMixin[ImplT, SpecT, Sign]) → TermMulMixin[ImplT, SpecT, Sign]

  • self (TermMulMixin[ImplT, SpecT, Sign]), rhs (TermMulMixin[ImplT, SpecT, ComplexSign]) → TermMulMixin[ImplT, SpecT, ComplexSign]

  • self (TermMulMixin[ImplT, SpecT, Sign]), rhs (TermMulMixin[ImplT, SpecT, Expr]) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), rhs (TermMulMixin[ImplT, SpecT, float]) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), rhs (TermMulMixin[ImplT, SpecT, complex]) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), rhs (TermMulMixin[ImplT, SpecT, Sign]) → TermMulMixin[ImplT, SpecT, ComplexSign]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), rhs (TermMulMixin[ImplT, SpecT, ComplexSign]) → TermMulMixin[ImplT, SpecT, ComplexSign]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), rhs (TermMulMixin[ImplT, SpecT, Expr]) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), rhs (TermMulMixin[ImplT, SpecT, float]) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), rhs (TermMulMixin[ImplT, SpecT, complex]) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), rhs (TermMulMixin[ImplT, SpecT, Sign]) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), rhs (TermMulMixin[ImplT, SpecT, ComplexSign]) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), rhs (TermMulMixin[ImplT, SpecT, Expr]) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, CoeffT]), rhs (Cmpnt[ImplT, SpecT]) → TermMulMixin[ImplT, SpecT, CoeffT]

Multiply self with rhs.

__repr__() str

Return a string representation of self.

__rmul__(lhs: OtherCoeffT | Cmpnt[ImplT, SpecT]) TermMulMixin[ImplT, SpecT, Any]
Overloads:
  • self (TermMulMixin[ImplT, SpecT, float]), lhs (float) → TermMulMixin[ImplT, SpecT, float]

  • self (TermMulMixin[ImplT, SpecT, float]), lhs (complex) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, float]), lhs (Sign) → TermMulMixin[ImplT, SpecT, float]

  • self (TermMulMixin[ImplT, SpecT, float]), lhs (ComplexSign) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, float]), lhs (Expr) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, complex]), lhs (float) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), lhs (complex) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), lhs (Sign) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), lhs (ComplexSign) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, complex]), lhs (Expr) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Sign]), lhs (float) → TermMulMixin[ImplT, SpecT, float]

  • self (TermMulMixin[ImplT, SpecT, Sign]), lhs (complex) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, Sign]), lhs (Sign) → TermMulMixin[ImplT, SpecT, Sign]

  • self (TermMulMixin[ImplT, SpecT, Sign]), lhs (ComplexSign) → TermMulMixin[ImplT, SpecT, ComplexSign]

  • self (TermMulMixin[ImplT, SpecT, Sign]), lhs (Expr) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), lhs (float) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), lhs (complex) → TermMulMixin[ImplT, SpecT, complex]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), lhs (Sign) → TermMulMixin[ImplT, SpecT, ComplexSign]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), lhs (ComplexSign) → TermMulMixin[ImplT, SpecT, ComplexSign]

  • self (TermMulMixin[ImplT, SpecT, ComplexSign]), lhs (Expr) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), lhs (float) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), lhs (complex) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), lhs (Sign) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), lhs (ComplexSign) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, Expr]), lhs (Expr) → TermMulMixin[ImplT, SpecT, Expr]

  • self (TermMulMixin[ImplT, SpecT, CoeffT]), lhs (Cmpnt[ImplT, SpecT]) → TermMulMixin[ImplT, SpecT, CoeffT]

Multiply lhs with self.

aliases(other: Term[Any, Any, Any]) bool

Determine whether self is a view of the same component as other.

clear() None

Set the value of the component to zero and the coefficient to unity.

Note

This method operates in-place.

clone() Self

Return a deep copy of self.

property cmpnt: Cmpnt[ImplT, SpecT]

Get a view on the component of self.

property cmpnt_type: type[Cmpnt[ImplT, SpecT]]

Get the component type of self.

cmpnts_type

alias of Strings

property coeff: CoeffT

Get a copy of the coefficient of self.

coeff_type

alias of complex

property coeffs_type: type[Coeffs[CoeffT]]

Get the coefficient container type of self.

conj_clifford_list(gates: GateList) None

Conjugate self by a list of Clifford gates.

Parameters:

gates – The Clifford gates to conjugate by.

Note

This method operates in-place.

classmethod from_cmpnt_coeff(cmpnt: Cmpnt[ImplT, SpecT], coeff: CoeffT) Self

Factory to make an instance of cls from a component and a coefficient.

Parameters:
  • cmpnt – Component to copy from.

  • coeff – Coefficient scaling the cmpnt in the new instance.

Returns:

An instance of cls with the given component and coefficient.

classmethod from_str(source: str, qubits: int | Qubits | None = None) Self

Create a new instance of cls by parsing an input string.

Parameters:
  • source – Input string to parse.

  • qubits – Space of qubits or a number of qubits. If None, infer from the max qubit index in the input string.

Returns:

A new instance containing the Pauli string and coefficient in the source.

into(t: type[OutT]) OutT

Clone self into a new related container of type t.

Parameters:

t – Type of the new container to create.

Returns:

A new instance of t containing the same data as self.

is_owning() bool

Check if self is owning (i.e. not a view).

property qubits: Qubits

Get the qubits corresponding to self.

set(source: Self | Cmpnt[ImplT, SpecT] | SpecT | tuple[SpecT | Cmpnt[ImplT, SpecT] | None, CoeffT | None] | None) None

Set the value of the term.

Parameters:

source – Specification for the new value.

Note

This method operates in-place.

property string: String

Get the string component of the term.

classmethod term_data_from_str(source: str, qubits: int | Qubits | None = None) TermData[QubitPauliArray, None | Sequence[PauliMatrix] | dict[int, PauliMatrix] | str, CoeffT]

Parse an input string and return the corresponding term data.

Parameters:
  • source – Input string to parse.

  • qubits – Space of qubits or a number of qubits. If None, infer from the max qubit index in the input string.

Returns:

The parsed term data.

to_sparse_matrix(big_endian: bool = False) Any

Return self as a sparse matrix.

Parameters:

big_endian – Whether to use big-endian basis ordering.

Returns:

The sparse matrix representation of self.