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; } } } } }