gpt4 book ai didi

matrix - 在 C 中优化矩阵计算

转载 作者:太空宇宙 更新时间:2023-11-03 23:58:12 24 4
gpt4 key购买 nike

我正在尝试找到将矩阵与其转置相乘的最有效方法。关于最有效的数学公式有什么想法吗?

最佳答案

您可以通过在同一个 for 循环中初始化 AB 矩阵来改进您的第一个解决方案。

n * k也是计算了两次,你可以把它存储到一个变量中以节省一些时间。

最好使用 B[i + n * j] += ... 而不是 B[i + n * j] = B[i + n * j] + ...,因为在第一个中,B[i + n * j] 被读取了一次,而在第二个中,它被读取了两次。

void print_unmodified()
{
unsigned int n = 64u;
unsigned int A[N_MAX];
unsigned int B[N_MAX];

/* Initializing the A and B matrix with values 1->64^2 */
for (int i = 0; i < (n * n); i++)
{
A[i] = i + 1;
B[i] = 0u;
}

/* Matrix Multiplication B = A*A' */
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
int index = i + n*j;
for (int k = 0; k < n; k++)
{
int p = n * k;
B[index] += A[i + p] * A[j + p];
}
}
}
}

关于matrix - 在 C 中优化矩阵计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56373772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com