Canonical fixed-wire routing layouts #
The matching pass identifies a destination by data-dependent sorted position.
Resource circuits, however, need one fixed wire for every (group, point)
slot. This module adds the second routing sort used in the manuscript:
- complement every source/destination tag after predecessor copying;
- reinterpret a record's prefix as
(tag, key)rather than(key, tag); - sort again in ascending order.
For a full active-key-space destination array, active destinations then form the initial block, in canonical lexicographic key order. All transformations are explicit De Morgan circuits or free wire permutations.
Complementing the physical tag field #
One output formula for the tag-complement pass.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Semantic tag complement on a packed routing array.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Gate count of one tag-complement output formula.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Explicit circuit complementing precisely the tag bit of every record.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The tag complement costs at most one gate per physical input bit (and in fact exactly one gate per record).
Sorting by (tag, key) #
Within-record permutation taking the virtual order (tag, key, payload)
to the physical order (key, tag, payload).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The selected virtual prefix is exactly the physical tag followed by the physical routing key.
The complete canonicalization pass: flip tags, then sort by (tag, key).
The matching/copy pass is supplied separately so this primitive is reusable
for both scatter and gather.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Explicit tag-flip and canonical-sort circuit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The exact gate count of canonicalSortCircuit.
Header permutations through the two routing sorts #
Canonical header of a standalone physical routing record.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Header obtained after complementing the tag of a standalone record.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Canonical header occupied by the active destination for one unmarked base key.
Equations
Instances For
Canonical-routing compatibility theorem for preservation of matching position counts under a sequence permutation.
Canonical-routing compatibility theorem for matching-position counts in an appended sequence.
Canonical-routing compatibility theorem for matching-position counts under an equality-of-lengths reindexing.
Canonical-routing compatibility theorem identifying a unique sorted value's index with the number of smaller entries.
Rank of the complete active-destination block #
In the semantic source/destination/padding layout, exactly target.val
complemented headers lie below the active destination at canonical position
target. Source tags exclude the source block; the reserved marker excludes
the padding block.
The same exact header-rank statement after flattening and casting the semantic layout to the sorting network's power-of-two capacity.
Complete match-and-canonicalize pass #
Semantic composition of the first sort-and-copy pass with the canonical tag-flip and second sort.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Explicit two-sort routing circuit: match by (key, tag), copy the source
payload, flip tags, then sort by (tag, key).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The exact gate count of matchedCanonicalRoutingCircuit.
Header-level permutation invariant for the complete matching and canonicalization pipeline.
Complete active-key-space destinations occupy fixed output positions:
position target contains exactly the destination with base key
lexBitVectorAt target.
The complete match, tag-flip, and canonical-sort pipeline permutes the canonical headers of the initial records after tag complementation. Payload updates do not affect this statement.