Charged native splitting of tensor-string digits #
Main results #
BandPreparation.exec_split: the actual base-seven digit loop computes the binary mask and both compressed offsets with every native arithmetic operation charged.
Fixed scalar inputs to a digit loop, without execution or fit assumptions.
Original depth.
Constant one.
Constant two.
Constant three.
Constant four.
Constant seven.
Instances For
Remaining-digit equations and elementary counter bounds during the native scan.
- fixed : SplitParameters L x
Parameters are retained.
Number of consumed levels.
Division only decreases the residual index.
Binary place weight.
At most one outer place is consumed per level.
At most one inner place is consumed per level.
Partial binary value is below its next place.
Partial base-three value is below its next place.
Partial base-four value is below its next place.
- mask_value : x.regs maskAcc + x.regs maskPower * (MatrixMultiplication.Schonhage.BandDigits.parts (L - x.regs level) (x.regs residue)).mask = (MatrixMultiplication.Schonhage.BandDigits.parts L a).mask
The binary accumulator and remaining digits give the complete mask.
- outer_value : x.regs outerAcc + x.regs outerPower * (MatrixMultiplication.Schonhage.BandDigits.parts (L - x.regs level) (x.regs residue)).outer = (MatrixMultiplication.Schonhage.BandDigits.parts L a).outer
The outer accumulator and remaining digits give the complete outer offset.
- inner_value : x.regs innerAcc + x.regs innerPower * (MatrixMultiplication.Schonhage.BandDigits.parts (L - x.regs level) (x.regs residue)).inner = (MatrixMultiplication.Schonhage.BandDigits.parts L a).inner
The inner accumulator and remaining digits give the complete inner offset.
Instances For
One native digit iteration, using only bounds derived from the original index/depth.
All digits are split by the fixed native loop. Scratch need not start at zero: every accumulator and place weight is explicitly initialized and its initialization is charged.