Repa で、過去の値 (つまり、より小さいインデックス) に依存する配列を計算することは可能ですか? 配列の最初の部分 (例: a[0]
) が与えられます。(配列の要素を示すために C に似た表記法を使用していることに注意してください。混同しないでください。)
チュートリアルを読んでハックをサクッと確認したのですが、それを行う機能が見つかりませんでした。
(この種の計算を 1D 配列で行うことは、Repa では並列化できないため意味がないと思います。ただし、2 次元以上の場合は並列化できると思います。)
編集f
:おそらく、私が使用したい種類についてより具体的にする必要があります。がスカラーの場合は並列化する方法がないため、N 次元ベクトルa[i]
の場合に注目しましょう。ベクトルに「展開」できるため、高次元 (行列など) であるa[i]
必要はありません。a[i]
つまり、f
R^N を R^N にマップする関数です。
ほとんどの場合、次のようになります。
b = M a[i-1]
a[i][j] = g(b)[j]
ここb
で、 は N 次元ベクトル、M
は N 行 N 列の行列 (まばらであることを前提としない)、およびg
は何らかの非線形関数です。i=1,..N-1
そして、与えられたa[0]
、g
およびに対してそれを計算したいと思いM
ます。(1)このタイプの計算を並列化し、(2)効率的な中間変数の割り当てを行うための一般的な方法があることを願っていb
ます(Cのような言語では、再利用できます。Repaまたは同様のライブラリは、純度を損なうことなく魔法のようにそれを行うことができます)。