новый для переполнения стека. Я работаю над тем, чтобы ускорить метод, которым я должен маскировать определенные элементы в трехмерном массиве. Мой код такой, какой он есть:
for (i = 1; i < height-1; i++)
for (j = 1; j < width-1; j++)
{
tmp =
mask[1][0]*a[i][j-1][0]+
mask[0][1]*a[i-1][j][0]+
mask[1][1]*a[i][j][0]+
mask[2][1]*a[i+1][j][0]+
mask[1][2]*a[i][j+1][0];
if (tmp>255)
tmp = 255;
else if (tmp<0)
tmp = 0;
c[i][j][0] = tmp;
tmp =
mask[1][0]*a[i][j-1][1]+
mask[0][1]*a[i-1][j][1]+
mask[1][1]*a[i][j][1]+
mask[2][1]*a[i+1][j][1]+
mask[1][2]*a[i][j+1][1];
if (tmp>255)
tmp = 255;
else if (tmp<0)
tmp = 0;
c[i][j][1] = tmp;
tmp =
mask[1][0]*a[i][j-1][2]+
mask[0][1]*a[i-1][j][2]+
mask[1][1]*a[i][j][2]+
mask[2][1]*a[i+1][j][2]+
mask[1][2]*a[i][j+1][2];
if (tmp>255)
tmp = 255;
else if (tmp<0)
tmp = 0;
c[i][j][2] = tmp;
}
Я уже сделал некоторые оптимизации, развернув внешний цикл for, однако мне нужно сделать его быстрее. Я знаю, что должен быть способ использовать указатели для более эффективного доступа к адресам трехмерной памяти, однако я не обладаю достаточным уровнем знаний C для этого. Любая помощь будет принята с благодарностью.