問題タブ [repa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - コンパイル時にチェックされる repa のトリプレットの配列
まず第一に、私は repa の初心者であり、Haskell 全般の初心者であると考えています。
double のトリプレットの効果的な配列が必要です。単純なアプローチは可能です[(Double, Double, Double)]が、それは効果的ではありません。非常に効果的であるはずなので、repaを使用できると思いました。ただし、トリプレットの配列をどのように定義すればよいかわかりません。
トリプレットの要素を 2 番目の次元に保存することができますArray U DIM2 Double(つまり、最初のインデックスはトリプレットのインデックスで、2 番目のインデックスはトリプレットの要素です)。ただし、2 番目の次元がサイズ 3 のみになるように強制するものは何もありません。
のようなものが必要ですArray U DIM1 Vec3Dが、のVec3Dインスタンスではないため、それは不可能ですData.Vector.Unboxed.Base.Unbox。
arrays - repa (Haskell) で配列をスタックする方法
同じ長さの 2 つの 1 次元配列があるとします。
ここで、これら 2 つの配列を 1 つの 2 次元配列にスタックして、これらの配列が行を形成するようにします。どうすればレパでできますか?
基本的に、私は numpy に相当するものを探していrow_stackます:
ノート。2 つの配列xとyは外部から取得されます。つまり、2 次元配列を最初から作成することはできません。
haskell - Repa パッケージを使用しようとするとスコープ外エラーが発生する
私は Haskell に比較的慣れていないのでRepa、プロジェクトでパッケージを使用しようとしています。を使用してソース コードにパッケージをインポートしましたimport qualified Data.Array.Repa as Rが、Haskell ファイルを ghci にロードすると、次のエラーが発生します。
を使用するソース コードの一部を以下に示しますRepa。
パッケージがインポート (ロード) されていないようです。使用ghc-pkg list repaすると、次の結果が得られます。
私は何をすべきか?
haskell - 任意の寸法の Repa ステンシルを適用するにはどうすればよいですか?
Repa パッケージには、隣接する値から便利な方法で値を計算できるステンシルがあります (畳み込み、画像のぼかし、拡散シミュレーションなどに役立ちます)。
In the current Repa package I can make stencils with any shape, but only two-dimensional stencils can be applied using mapStencil2. Is there a way to apply stencils to arrays with a different dimension? There isn't even a way to apply one-dimensional stencils. I am looking for a way to apply three-dimensional stencils.
Thanks
arrays - Haskell での遅延配列の適切な表現
1 つの大きな配列で大規模な更新を行うプログラムを作成しようとしていますが、評価は数回しかありません。計算をできるだけ怠惰にしたいのですが、どの配列表現が私の場合に適しているかわかりません。具体的には、アレイに次のことを行います。
- サイズが固定されている
- 一定時間アクセス
- O(n) の n 要素を更新する
- 遅延評価
これらの要件にどのようにアプローチしますか? サブ質問として: このユースケースに特化したライブラリはありますか?
編集:
私の質問が具体的ではなかったかもしれないので、私のケースについてもっと説明しようと思います。
比較的小さい(約1200x800)か、それよりもはるかに大きい(少なくとも8000x8000)さまざまなサイズの画像を表現しようとしています。また、1 つの画像に対して多数のレイヤーが存在するため、画面上に画像を描画したい場合、フレーム バッファー画像が多数更新されることになります。Haskell の遅延評価の性質を利用できれば、更新のたびに同じピクセルを上書きするのではなく、フレーム バッファーに 1 回だけ書き込むことができると考えました。
Haskell で配列を表現するためのいくつかのオプションを認識していますが、それらのすべてが私の場合には適合しないようです。例えば:
- Data.Seq、Data.IntTrie : 一定時間アクセスできない
- Data.Vector、Data.Array : n 要素の更新には O(n) よりも時間がかかります
- ボックス化されていないバリアント : 遅延評価されていません (推測しますか?)
この場合、どのようなアプローチをとればよいでしょうか。