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.
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
andmaskedlastword=false
. E.g., all echelonize code will automatically benefit and use vectorized code.