Charged materialization of the subset tables #
Main definitions #
BandPreparation.tableStep: the exact memory writes made by one table iteration.
Main results #
BandPreparation.exec_tableWrite: actual inverse/forward table stores and counter updates.
The inverse word is initialized even for an unselected mask. Selected masks also write one forward-table cell. This is only a mathematical description of the two native stores.
Instances For
The part of both tables computed after visiting t masks. The outside frame permits
arbitrary caller memory, including future query inputs and scratch regions.
- inverse (a : ℕ) : a < t → current (inv + a) = MatrixMultiplication.Schonhage.MaskTable.lookup L m a
Every visited inverse word has been initialized.
- forward (a : ℕ) : a < t → MatrixMultiplication.Schonhage.MaskTable.lookup L m a ≠ 0 → current (tab + MatrixMultiplication.Schonhage.MaskTable.prefixCount L m a) = a
Every selected visited mask has been placed at its prefix rank.
Only the two explicitly reserved table blocks may change.
Instances For
Empty scan prefix, with no initialized-memory assumption.
The actual two stores extend the initialized table prefix by one mask.
Execute the stores after the population loop. The code neither searches a supplied table nor receives a table-validity certificate.
Persistent scalar parameters read by the table loops. These are register contents only; there is no execution, fit or cost assumption in this postcondition.
Original depth.
Original inner cardinality.
Computed complete binary-mask range.
Inverse-table base.
Forward-table base.
- square : x.regs BandPreparation.square = MatrixMultiplication.Schonhage.K0 L m * MatrixMultiplication.Schonhage.K0 L m
Computed number of selected masks.
Constant zero.
Constant one.
Constant two.
Instances For
The complete native scan computes both tables, with all inner population scans and outer controls charged. Outside memory may contain arbitrary caller data.