我想要做的是使用未知变量填充特定矩阵的值。以下哪个实现更快?
这是第一个实现:
#define PHI(I,J,K) phi[xlength*ylength*(I)+xlength*(J)+(K)] //Macro that calls function
其中Phi是维一维矩阵xlength * ylength * tlength
或
phi= new double[xlength*ylength*tlength]; //code for phi
另一种选择是定义的功能等
void PHI(double *&phi, int &I, int &J, int &K, double &value) //declare function
{
phi[xlength*ylength*I+xlength*J+K]=value; //return specific value of phi
}
我会用宏或功能是这样的:
for (int i=0;i<tlength;i++) //just making a loop here
{
for (int j=0;j<ylength;j++)
{
PHI(i,j,1)= stuff here //The macro or the function would go here
}
}
所以我在做什么要么使用宏指向矩阵披[]的特定细胞或我使用了一个函数来填充矩阵phi []的特定值。
哪个更快?
通过基准程序找出它。堆栈溢出成员可能很聪明,但他们的大脑当然不具备现代CPU的计算能力。 – 2013-05-17 17:47:42
噢好吧。哈哈!我只是检查将所有这些东西传递给函数还是简单地使用宏将会更快。如果它是未知的,我想我可以测试它。 – Mechy
@ H2CO3,但我可以用这种方式使用宏,对吧?可以从宏内的for循环获取变量,对吗? – Mechy