Suponga que tiene un conjunto de elemento de N, se puede hacer una verificación de bit frente a un conjunto de vectores base.
Por ejemplo, usted tiene una matriz de 15 elementos que desea probar.
Puede probarlo en contra de un 8-elemento de la matriz cero, un 4-elemento de la matriz cero, un 2-elemento de la matriz cero y un 1-elemento de la matriz cero.
es suficiente con asignar estos elementos una vez, dado que se conoce el tamaño máximo de las matrices que desea probar. Además, la prueba se puede realizar en paralelo (y con el ensamblaje intrínseco si es necesario).
mejora adicional en términos de asignación de memoria se puede hacer con el uso de solamente una matriz de 8 elementos desde un 4-elemento de la matriz cero es simplemente la primera mitad de la 8-elemento de la matriz cero.
Si está utilizando 'std :: bitset', puede utilizar el' ninguno) método ('. http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00263.html#ac224d7f896a9922057d9e14f307b30fd – Arun
¿Hay alguna razón por la cual esto es un problema porque es más o menos lo que el código de la máquina necesitará hacer de todos modos – doron
@ arunsaha: tengo que establecer el tamaño para un bitset en tiempo de compilación, pero necesito para asignar dinámicamente memoria en tiempo de ejecución – knittl