2階テンソルのテンソル積を関数として以下のように実装する。
/* 2階テンソルのテンソル積 */
void WH_Tensor3D__whT_otimes_whT_OUT_whT4
(double whT_X[3][3],
double whT_Y[3][3],
double OUT__whT4_A[3][3][3][3])
/*
入力引数:
whT_X, whT_Y はテンソル
出力引数:
OUT__whT4_Aは4階テンソルで、whT_X と whT_Y のテンソル積
*/
{
int i, j, k, l;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
for (k = 0; k < 3; k++) {
for (l = 0; l < 3; l++) {
OUT__whT4_A[i][j][k][l] = whT_X[i][j] * whT_Y[k][l];
}
}
}
}
}