Lupanov truth-table blocks #
This module defines the padded truth-table blocks and sparse support expressions used by finite Lupanov synthesis. It contains only the table representation and its elementary cost and one-hot semantics.
Number of consecutive address-table blocks of length blockSize.
Equations
- Algebraic.MassProduction.LupanovSynthesis.blockCount addressWidth blockSize = 2 ^ addressWidth ⌈/⌉ blockSize
Instances For
Number of Boolean patterns on one address block.
Equations
- Algebraic.MassProduction.LupanovSynthesis.patternCount blockSize = 2 ^ blockSize
Instances For
The block containing a given address assignment.
Equations
- Algebraic.MassProduction.LupanovSynthesis.selectedBlock blockSizePositive address = ⟨↑address / blockSize, ⋯⟩
Instances For
Offset of an address assignment inside its selected block.
Equations
- Algebraic.MassProduction.LupanovSynthesis.selectedOffset blockSizePositive address = ⟨↑address % blockSize, ⋯⟩
Instances For
The padded truth-table column on one consecutive address block. Rows beyond the address table in the last block are fixed to false.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Canonical index of the padded pattern in one truth-table block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Data assignments whose padded column has one fixed block pattern.
Equations
- Algebraic.MassProduction.LupanovSynthesis.rightSupport function block pattern = {data : Fin (2 ^ dataWidth) | Algebraic.MassProduction.LupanovSynthesis.blockPattern function block data = pattern}
Instances For
OR exactly the input wires in a finite support. Unlike a full-width OR, its charged size is the cardinality of the support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
On a one-hot vector, a sparse OR is exactly support membership of the selected coordinate.
The sparse data-pattern expression for one block and pattern.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The right supports for a fixed block partition all data assignments.