私がやろうとしているのは、未知の変数を使用して特定の行列の値を埋めることです。
最初の実装は次のとおりです。
#define PHI(I,J,K) phi[xlength*ylength*(I)+xlength*(J)+(K)] //Macro that calls function
ここで、phi は次元 xlength*ylength*tlength の 1D 行列です
また
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[] の特定のセルを指すか、関数を使用して行列 phi[] の特定の値を入力しています。
どちらが速いですか?