Actual producer, tile-kernel and reconstruction code #
Main definitions #
QueriedProduct.program: fixed native composition, with signed or raw nonnegative matrices.QueriedProduct.tileStep: actual offset loads, catalogue pointers, epoch call and update.QueriedProduct.reconstruct: restore the original request order from actual stored indices.
All three existing 96-register callees use the low bank. The caller's 64 additional registers retain its scalar layout and counters. Copying, initial directory clearing, header adaptation, raw-entry doubling, dispatch, reporting and restoration are real instructions. Supporting code definitions are exposed for execution proofs; they are implementation APIs.
Reuse each existing native program in the same low 96-register bank.
Instances For
The unchanged copy routine uses the first seven low registers.
Instances For
Persistent caller depth.
Instances For
Original inner depth, determining the shared dimension 4^m.
Instances For
Original outer matrix dimension.
Instances For
Number of original request occurrences, including duplicates.
Instances For
Computed shared dimension 4^m.
Instances For
Number of masks visited by the actual subset-table scan.
Instances For
Number of cells in each padded band array.
Instances For
Number of leaf entries in each shared encoding.
Instances For
Computed number of row bands, also used for column bands.
Instances For
Number of tile calls, the square of the band count.
Instances For
Length of the complete original memory prefix, including word zero.
Instances For
Protected snapshot pointer used to restore the original input.
Instances For
Protected copy of the router's immutable prefix offsets.
Instances For
Protected copy of the actual grouped query codes.
Instances For
Protected permutation from grouped positions to original occurrence indices.
Instances For
Base of the grouped answers written by tile calls.
Instances For
Base of the reconstructed original-order answers, returned by halt.
Instances For
Base of reusable pruned-kernel stack and cache space.
Instances For
Base of the timestamp directory shared by all tiles.
Instances For
One past the complete caller and kernel allocation.
Instances For
Returned kernel epoch propagated to the next tile.
Instances For
Current tile, directory-entry or reporting-loop index.
Instances For
First grouped position of the current tile's actual span.
Instances For
One past the last grouped position of the current tile.
Instances For
Row band computed by division of the current tile key.
Instances For
Column band computed by remainder of the current tile key.
Instances For
Actual shared left-encoding pointer for the current tile.
Instances For
Actual shared right-encoding pointer for the current tile.
Instances For
Actual grouped-query pointer passed to the kernel.
Instances For
Current grouped-answer pointer passed to the kernel.
Instances For
Source pointer supplied to a real native copy.
Instances For
Destination pointer supplied to a real native copy.
Instances For
Number of words supplied to a real native copy.
Instances For
Temporary address for scalar loads, stores and reporting.
Instances For
Temporary loaded matrix value, answer or original-position index.
Instances For
Persistent unsigned zero.
Instances For
Persistent loop-increment constant one.
Instances For
Persistent multiplier two for raw-to-signed conversion.
Instances For
Persistent constant four for header offsets and kernel stack sizing.
Instances For
First original matrix-payload address, immediately after the four headers.
Instances For
Persistent constant six used in the computed router allocation.
Instances For
Total word count of both original matrix payloads.
Instances For
Original coordinate-pair block address.
Instances For
One past the actual router allocation.
Instances For
One past the shared-band producer allocation.
Instances For
Temporary product used while computing separated buffer addresses.
Instances For
Base of the producer's shared two-sided encoding catalogue.
Instances For
Persistent constant three used in the router allocation.
Instances For
Compute genuine band scalars before selecting a protected caller area. No memory writes.
Instances For
Preserve the computed original parameters and calculate every caller buffer address.
Instances For
Real argument setup followed by the unchanged dynamic-length native copy.
Instances For
Save the entire ordinary input, including its length word and coordinate list.
Instances For
Put the original raw coordinate pairs in the actual Wanted input convention.
Instances For
Save every computed tile offset, including the terminal offset.
Instances For
Save the actual grouped query codes.
Instances For
Save the actual original-position permutation.
Instances For
Preserve the computed arrays before the band producer reuses the low work area.
Instances For
One actual load, unsigned doubling and store converts a raw 0/1 matrix entry.
Instances For
Copy real matrix words into the band producer's adjacent front input blocks. The bit-input variant executes the conversion instruction at every entry.
Instances For
Initialize the one timestamp directory by actual stores, once for the entire product.
Instances For
Load actual group endpoints and compute both shared catalogue pointers and kernel ABI.
Instances For
One real pruned-kernel call, with the returned epoch propagated to the next tile.
Instances For
Compute all tiles from the actual group arrays; the zero-tile case never divides by zero.
Instances For
Read one actual original index and scatter its computed answer into request order.
Instances For
Every original occurrence is reconstructed by charged native reads and stores.
Instances For
Restore the complete actual input after all private low-memory reuse has finished.
Instances For
Complete actual routing preparation and protected preservation of the original input.
Instances For
The complete fixed producer/consumer program. bits=false takes canonical signed matrix
words; bits=true takes raw unsigned 0/1 words and performs actual per-entry doubling.