Input layout for a halving scheduler buffer #
Completed records contain original request data and a complete point list. Pending records contain original request data only. All phase inputs are free selections from this buffer; scalar-validity flags are fixed constants.
Width of a completed request together with its stored point list.
Equations
- Algebraic.MassProduction.Nonuniform.BufferInput.storedWidth requestWidth slots keyWidth = requestWidth + slots * keyWidth
Instances For
Completed records followed by pending request records.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flatten the two record arrays into the buffer input.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Applying a function to a buffer acts independently on its stored fields.
One bit of an already completed record.
Equations
- Algebraic.MassProduction.Nonuniform.BufferInput.completedWire pending record bit = Algebraic.DeMorgan.Wiring.input (Fin.castAdd (pending * requestWidth) (finProdFinEquiv (record, bit)))
Instances For
One bit of a pending request's original data.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A stored occupied-point address, with source records flattened by request and slot.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Scalar-validity flags are repeated for every stored completed request.
Equations
- Algebraic.MassProduction.Nonuniform.BufferInput.flagWire inputs valid source = Algebraic.DeMorgan.Wiring.constant (valid (finProdFinEquiv.symm source).2)
Instances For
Reading a completed record recovers its exact stored bit.
Reading a pending record recovers its exact original request bit.
Each occupied-point query uses the stored point-list suffix.