怎么优化下面这个程序

 for (u=0; u<8; u++)
            for ( v=0; v<8; v++)
            {
                temp=0.0;
                for (x=0; x<8; x++)
                for (y = 0; y < 8; y++)
                    temp+=(double)inblock[x][y]*cos((2*x+1)*u*pi/16)*cos((2*y+1)*v*pi/16);
            }

还有优化的余地吗

不用优化了,循环次数这么少,也看不出什么效果了

for (int u = 0; u < 8 * 8; u++) {
double temp = 0.0;
for (int y = 0; y < 8*8; y++){
temp += (double)inblock[y/8][y%8]*cos((2*(y/8)+1)*(v/8)*pi/16)*cos((2*(y%8)+1)*(v%8)*pi/16);
}
}

我不能定义一个inblock【4096】【8】【8】吗?一运行就会出错

这还优化个屁啊 非要搞 那就研究一下三角函数的转换 看看转换之后是否好利于计算

    double cosxy[8][8],te=pi/16.0;
    for (x=0; x<8; x++)
        for (y = 0; y < 8; y++)
            cosxy[x][y]=cos((2*x+1)*y*te);

    for (u=0; u<8; u++)
        for ( v=0; v<8; v++)
        {
            temp=0.0;
            for (x=0; x<8; x++)
                for (y = 0; y < 8; y++)
                    temp+=(double)inblock[x][y]*cosxy[x][u]*cosxy[y][v];
        }