for_each_distinct_pair(label_a, label_b)ΒΆ

for_each_distinct_pair is the dense pair iterator without diagonal visits.

It iterates over all ordered pairs with i != j.

Use it when the diagonal is never meaningful and you want that fact encoded in the iterator itself rather than in an extra predicate.

Example:

hop = (
    SymbolicDiscreteJaxOperator(hi, "hop")
    .for_each_distinct_pair("i", "j")
    .where(site("i") > 0)
    .emit(shift("i", -1).shift("j", +1), matrix_element=1.0)
    .build()
)