codecryptanalysis / mccl

modular code cryptanalysis library
MIT License
8 stars 3 forks source link

Tagged views #5

Closed cr-marcstevens closed 2 years ago

cr-marcstevens commented 2 years ago

This pull request makes matrices, vectors and views templated on a parameter: block_tag<bits,maskedlastword>. This tag controls how big aligned blocks it can work on, and whether it needs to use a mask for the last block. Such a mask is needed for instance when using a submatrix, so that the parent matrix will not be changed outside the submatrix.

This should make it much easier to write more optimized code that makes use of bits=256,512 and maskedlastword=false. E.g., all echelonize code will automatically benefit and use vectorized code.