小编use*_*043的帖子

如何提高Strassen算法实现的速度?

我正在努力确定为什么我的Strassen实现如此缓慢.它会在每次迭代时分配内存,但我会在适当时释放它们.

int** multiply(int** a, int** b, int size)
{
int row,col,i,j;

if(size == 1)
{
    int** c = allocate(size);
    c[0][0] = (a[0][0] * b[0][0])%2;
    return c;
}

if(size <= 2)
{
    int a11,a12,a21,a22,b11,b12,b21,b22;    
    int** c = allocate(size);
    a11 = a[0][0];
    a12 = a[0][1];
    a21 = a[1][0];
    a22 = a[1][1];
    b11 = b[0][0];
    b12 = b[0][1];
    b21 = b[1][0];
    b22 = b[1][1];

    c[0][0] = (a11*b11 + a12*b21)%2;
        c[0][1] = (a11*b12 + a12*b22)%2;
        c[1][0] = (a21*b11 + a22*b21)%2;
    c[1][1] = (a21*b12 + …
Run Code Online (Sandbox Code Playgroud)

c algorithm linear-algebra strassen

2
推荐指数
1
解决办法
400
查看次数

标签 统计

algorithm ×1

c ×1

linear-algebra ×1

strassen ×1