Function guff_matrix::simulator::warm_multiply[][src]

pub fn warm_multiply(
    xform: &mut TransformMatrix,
    input: &mut InputMatrix,
    output: &mut OutputMatrix
)
Expand description

First (byte-wise) matrix multiply simulation

“warm”: “wrap-around read matrix”

This routine treats the transform and input matrices as being infinite byte streams, multiplies them, then apportions the products to the correct dot product sums. Completed dot products are written out sequentially along the diagonal of the output matrix.

Provided the number of columns in the input and output matrices (both set to the same value) has a factor that is relatively prime to both dimensions of the transform matrix, the diagonal traversal of the output matrix is guaranteed to write to every cell in the matrix.