相关疑难解决方法(0)

二进制矩阵向量乘法

我想将8x8 二进制矩阵乘以由无符号字符表示的8位向量表示为无符号64位整数.但是,由于一些其他问题,矩阵必须按列排序,因此不容易匹配字节以便于乘法.

知道如何加快这样的计算吗?每项操作都是重要的,我需要进行数十亿次这样的计算.

乘法是在2元素场(F-2)上进行的.

c vector matrix binary-matrix

7
推荐指数
2
解决办法
3076
查看次数

二进制矩阵乘法比特错误的黑客

抽象

嗨,假设你有两个不同的独立64位二进制矩阵AT(它T是自身的转置版本,使用矩阵的转置版本允许在乘法运算T的行而不是列,这对二进制算术来说非常酷)和你想要将这些矩阵相乘,唯一的事情是矩阵乘法结果被截断为64位,如果你得到的值大于1某个特定矩阵单元格中的值,则生成的矩阵单元格将包含1否则0

   A        T
00000001 01111101 
01010100 01100101 
10010111 00010100 
10110000 00011000 <-- This matrix is transposed
11000100 00111110 
10000011 10101111 
11110101 11000100 
10100000 01100010 
Run Code Online (Sandbox Code Playgroud)

二元和传统乘法结果:

 Binary  Traditional
11000100  11000100
11111111  32212121
11111111  32213421
11111111  21112211
11101111  22101231
11001111  11001311
11111111  54213432
11001111  11001211
Run Code Online (Sandbox Code Playgroud)

如何以最有效的方式以上述方式将这些矩阵相乘?

PS

我试图利用二进制and(即&运算符)而不是在单独的位上执行乘法,在这种情况下,我必须为乘法准备数据:

ulong u;

u = T & 0xFF;
u = (u << 00) + (u …
Run Code Online (Sandbox Code Playgroud)

algorithm bit-manipulation pseudocode matrix matrix-multiplication

7
推荐指数
1
解决办法
2525
查看次数