IndexedLadderOperator Module
Fermionic ladder operators with index tracking and ordering predicates.
A LadderOperatorUnit is either Raise j (= a†ⱼ, creation) or Lower j (= aⱼ, annihilation), where j is the spin-orbital index. Products of ladder operators must respect normal ordering (all creation operators to the left of all annihilation operators) and index ordering (within each group, indices are sorted). The functions isInNormalOrder and isInIndexOrder test these conditions. Normal ordering is required before encoding: the Jordan-Wigner and other transforms assume the operator product is in canonical form.
Types
| Type | Description |
|
Represents a product of indexed fermionic ladder operators with a coefficient. |
|
|
Represents a sum of ladder operator product terms. |
|
|
Represents the type of a fermionic ladder operator. |
Functions and values
| Function or value |
Description
|
Full Usage:
isInIndexOrder productTerm
Parameters:
P<IxOp<uint32, LadderOperatorUnit>>
-
The product term to check.
Returns: bool
True if indices are properly ordered; false otherwise.
|
Checks whether a product term's operators are in index order. Index ordering requires:
|
Full Usage:
isInNormalOrder productTerm
Parameters:
P<IxOp<uint32, LadderOperatorUnit>>
-
The product term to check.
Returns: bool
True if the term is in normal order; false otherwise.
|
Checks whether a product term's operators are in normal order. Normal order requires all creation (Raise) operators to appear before all annihilation (Lower) operators: a†ᵢ a†ⱼ ... aₖ aₗ This is the canonical form required by Jordan-Wigner and other encodings.
|