next up previous contents
: 解説 : 4階テンソル同士の積 : 4階テンソル同士の積   目次

実装

4階テンソル同士の積を関数として以下のように実装する。

/* 4階テンソル同士の積 */
void WH_Tensor3D__whT4_colon_whT4_OUT_whT4
(double whT4_C[3][3][3][3],
 double whT4_D[3][3][3][3],
 double OUT__whT4_E[3][3][3][3])
/*
  入力引数:
    whT4_C, whT4_Dは4階テンソル
  出力引数:
    OUT__whT4_Eは4階テンソルで、whT4_C と whT4_D の積
*/
{
  int i, j, k, l, m, n;

  for (i = 0; i < 3; i++) {
    for (j = 0; j < 3; j++) {
      for (k = 0; k < 3; k++) {
        for (l = 0; l < 3; l++) {
          double tmp = 0;

          for (m = 0; m < 3; m++) {
            for (n = 0; n < 3; n++) {
              tmp += whT4_C[i][j][m][n] * whT4_D[m][n][k][l];
            }
          }
          OUT__whT4_E[i][j][k][l] = tmp;
        }
      }
    }
  }
}



Hiroshi KAWAI 平成15年4月19日