トップページ > プログラム > 2015年11月17日 > LOJvjEiT

書き込み順位&時間帯一覧

24 位/178 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000001001002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
スレ立てるまでもない質問はここで 141匹目 [転載禁止]©2ch.net

書き込みレス一覧

スレ立てるまでもない質問はここで 141匹目 [転載禁止]©2ch.net
364 :デフォルトの名無しさん[sage]:2015/11/17(火) 18:58:48.76 ID:LOJvjEiT
C++スレからスレチの指摘により移動
ちょっと相談のってくれ頼む


X[i][j][k][l] = A[i][v][w][x] * B[j][v][y] * C[k][w][y][z] * D[l][x][z]

のような多次元行列積を最速でやりたいと思ったらさ、右辺がただの行列積の連続になるように添字の順番を入れ替えてBLASみたいな線形代数演算のライブラリに投げるのが一番だよな?

でもそのやり方では、各添字が1〜Nだとすると中間生成物の多次元行列のサイズが最大でNの5乗になる
それがメモリ的にキツい場合はどのように実装したら良いだろう?
10個の添字(変数)を愚直にforループで回すくらいしか思い付かないんだが、これは最悪だよな?
スレ立てるまでもない質問はここで 141匹目 [転載禁止]©2ch.net
366 :デフォルトの名無しさん[sage]:2015/11/17(火) 21:24:57.32 ID:LOJvjEiT
>>365
多次元行列積という言葉が悪かったかもしれん

for(i=0; i<N; i++)
……
for(l=0; l<N; l++)
for(v=0; v<N; v++)
……
for(z=0; z<N; z++)
X[i][j][k][l] = A[i][v][w][x] * B[j][v][y] * C[k][w][y][z] * D[l][x][z];

みたいな感じ
forは添字の数(10個)ある


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。