Documentation

Complexity.Algorithms.WordRAM.MatrixMultiplication.Schonhage.Product.Bands

Running the actual shared catalogue producer in the product caller #

Main results #

The input memory equations are discharged by the preceding charged matrix adaptation. No encoded catalogue, subset layout or producer execution is supplied to the program.

theorem Cslib.Algorithms.WordRAM.MatrixMultiplication.Schonhage.QueriedProduct.exec_bands {w L m N Q A : ℕ} (hw : 0 < w) (hm : m ≤ L) (X : Matrix (Fin N) (Fin (MatrixMultiplication.Schonhage.D m)) ℤ) (Y : Matrix (Fin (MatrixMultiplication.Schonhage.D m)) (Fin N) ℤ) (x : WordRAM.Data 160) (hp : Parameters L m N Q x) (hL : x.mem 1 = L) (hmemory : x.mem 2 = m) (hN : x.mem 3 = N) (hmat : ∀ (side : Bool), ∀ r < N, ∀ k < MatrixMultiplication.Schonhage.D m, x.mem (BandPreparation.matrixOffset m N side r k + 4) = WordRAM.Signed.encode (BandPreparation.matrixValues X Y side r k)) (hX : ∀ (i : Fin N) (k : Fin (MatrixMultiplication.Schonhage.D m)), |X i k| ≤ ↑A) (hY : ∀ (k : Fin (MatrixMultiplication.Schonhage.D m)) (j : Fin N), |Y k j| ≤ ↑A) (hmag : magnitudeBound L A < 2 ^ (w - 1)) (hfit : WordRAM.Fits (w + 2) (wordBudget L m N Q)) :

The actual native producer computes every shared band encoding, once per band. Its complete outside frame protects the caller's original input and saved routing arrays.