Guarded ranks for forbidden projective directions #
The greedy scheduler forms difference vectors between the current target and previously occupied recovery points. A nonzero difference forbids its projective direction; a zero difference forbids nothing. This module gives an explicit Boolean circuit for the fixed-width operation
- zero vector
->the invalid projective-rank sentinel; - nonzero vector
->its canonical projective block rank.
It then replicates that circuit over a power-of-two packed array. Padding by zero vectors therefore becomes padding by the sentinel automatically.
The raw vector is the first half of the postprocessor input.
Equations
- Algebraic.MassProduction.ForbiddenRanks.rawVectorBit vectorWidth input bit = input (finProdFinEquiv (0, bit))
Instances For
The already-computed rank is the second half of the postprocessor input.
Equations
- Algebraic.MassProduction.ForbiddenRanks.computedRankBit vectorWidth input bit = input (finProdFinEquiv (1, bit))
Instances For
Test whether every bit in the raw-vector half is zero.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Select the sentinel on a zero raw vector and the computed rank otherwise.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Gate count of one independently compiled guarded output bit.
Equations
- Algebraic.MassProduction.ForbiddenRanks.guardedRankOutputGateCount dimension width output = (Algebraic.MassProduction.ForbiddenRanks.guardedRankOutputExpression dimension width output).gateCount
Instances For
Postprocess a (raw vector, computed rank) pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Preserve the raw vector alongside the projective rank computed from it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
rawAndProjectiveRankCircuit has exactly the gates of projectiveDirectionRankCircuit; the
surrounding wiring adds none.
Rank one vector, mapping the zero vector to the sentinel.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The exact gate count of guardedProjectiveRankCircuit.
On a nonzero packed vector, guarded ranking agrees with the complete normalizer-plus-ranker circuit.
Every nonzero packed vector is guarded-ranked by its actual projective direction.
A guarded rank lies below the projective sentinel exactly when its raw packed vector is nonzero.
On explicitly encoded nonzero field vectors, guarded ranking is exactly the rank of the projective class of that vector.
Polynomial bound for sentinel-guarded normalization and ranking.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Replicate guarded ranking over a power-of-two array of packed vectors.
Equations
- Algebraic.MassProduction.ForbiddenRanks.guardedProjectiveRankGateCount dimension widthPositive = (Algebraic.MassProduction.ForbiddenRanks.guardedProjectiveRankCircuit dimension widthPositive).size
Instances For
Apply guarded projective ranking independently to every record in the power-of-two array.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Positions containing genuine nonzero difference vectors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Guarded ranking sends exactly the zero-vector positions to the sentinel, so the number of in-range ranks is the number of nonzero input blocks.
Replicated guarded-ranking cost bound.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One constructive scheduler stage: guarded-rank all forbidden difference vectors, sort their ranks, choose a missing valid rank, and unrank it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One guarded rank per input record, then the fresh-direction search.
A scheduler stage returns a canonical direction key whose rank differs from the guarded rank of every packed input vector. Each nonzero input block also comes with its actual forbidden projective direction and a proof that the selected direction is different from it.
Total-array capacity is a convenient sufficient condition for the sentinel-aware scheduler theorem.
Polynomial cost bound for a scheduler stage once its difference array is available.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A punctured line over the concrete binary extension field, using a local finite enumeration rather than exporting another global typeclass instance.
Equations
- Algebraic.MassProduction.ForbiddenRanks.binaryExtensionPuncturedLine target direction = Algebraic.MassProduction.puncturedLine target direction
Instances For
Sentinel-aware geometric scheduler-stage correctness. Zero padding does not count against direction capacity.
Geometric scheduler-stage correctness under the simpler total-array capacity condition.