問題タブ [marray]

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.

0 投票する
2 に答える
1654 参照

haskell - ボックス化されていない可変配列インスタンスを作成する方法

次のタイプがあるとしましょう:

p>

そのようなインスタンスのいずれかを作成する方法はありますか:

p>

とりあえずWord8で全部保存して(ラップして)fromEnum/toEnumで変換してるけどなんか違和感。メモリ内で大規模なデータ構造 (>1.2Go) を使用していて、遅延ロードできないため、厳格さとボックス化解除が必要です。解決策が見つからない場合は、すべてを C++ で再実装しますが、現在のプロジェクトでは避けたいと考えています。

#haskell で質問しましたが、回答がありませんでした。質問するのに適切な時間ではなかったのかもしれません。

0 投票する
1 に答える
793 参照

haskell - runST の適用時に「Could not deduce (MArray (STUArray s) Int (ST s)) from context ()」

私はhaskellを学習している最中で、この問題に遭遇しました:

使用するGlasgow Haskell Compiler, Version 6.10.4, for Haskell 98, stage 2 booted by GHC version 6.10.1

ファイルの共通先頭

STArray の使用 (動作)

STUArray の使用 (機能しません)

しかし、ボックス化されていないアレイに切り替えようとすると、エラー メッセージが表示されます。

エラーメッセージ

また:

型注釈をいじってからほぼ 2 時間後、誰かが私を正しい方向に向けてくれることを願っています。いったい何が間違っているのでしょうか?

お時間をいただきありがとうございます。

0 投票する
1 に答える
663 参照

c++ - Intel C++ コンパイラは深いテンプレートを処理できませんか?

marrayライブラリを使用した C++ のプロジェクトがあります。今のところ、Windows 7 x64 上の MinGW g++ 4.7 および msvc2010 で、また Linux Mint x64 上の g++ 4.7 で、非常にうまくコンパイルおよび実行されます。Linux 用の Intel C++ コンパイラ v. 12.1.4 を試してみることにしました。コードをコンパイルすることはできましたが、式テンプレート (3 つの項すべてが行列である c = a + b など) に悩まされている行を実行しようとすると、セグメンテーション違反で失敗します。この問題は、アプリのデバッグ バージョンとリリース バージョンの両方に影響します。

また、marray ライブラリーの単体テストとチュートリアル・コードをコンパイルしようとしましたが、インテル C++ はコードをコンパイルしますが、式テンプレートがある場合は実行に失敗します。インテル® C++ は深いテンプレートで本当に悪いのでしょうか? それとも何か足りないのでしょうか? テンプレート式を機能させるには、特別なコンパイラ フラグを設定する必要がありますか? それとも、一般的な式テンプレートの手法ではなく、使用している特定のライブラリに何か問題があるのでしょうか?

また、 -ftemplate-depth- nフラグをnにさまざまな値を使用して10^10 という途方もなく大きな値まで設定しようとしましたが、セグメンテーション違反なしでアプリも marray ユニット テスト/チュートリアルも実行できませんでした。

Upd .:これは、デバッグ モードで icpc を使用してコンパイルされた前述のライブラリからの tutorial-marray の gdb ログです。

問題は一般に式テンプレートの手法に起因するものではないようです。数値を使用した配列演算は正常に機能します。ある配列を別の配列に追加しようとすると、問題が発生します。

更新。2:実際には、全体がここで言及されている問題と非常によく似ています。解決策は、演算子 E&() { return static_cast(*this); を書き直すことです。} E& get_ref() { return static_cast(*this); のようなものに const参照についても同じです。もちろん、コード内でのこれらの使用方法も変更してください。早速試して結果を報告します。

0 投票する
2 に答える
455 参照

haskell - MArray の STArray への特殊化

Haskell でポリモーフィズムのある STArray を使用することについて混乱しています。

次の設定があるとします

今、私は thawData のタイプがこの場合に特化していると信じています

ただし、do 式の本体で明示的に入力しようとしても、明示的に STArray を使用するように thawData の型を変更しない限り、これはコンパイルされません。

一体何が起こっているのでしょうか?タイプを特化できないのはなぜですか?
thawData の型ではなく、doSomething の本体を何らかの方法で変更できますか?

ありがとう!

0 投票する
1 に答える
177 参照

arrays - IOArray (または一般的には MArray) のスライス

IOArrayから、またはMArray一般的にスライス (サブ配列ビュー) を効率的に構築する方法はありますか? つまり、境界を制限するだけで、同じ配列を取得します。署名は

たとえば、境界を持つ配列を取得し、元の配列の(1,1000)境界を持つ要素にのみアクセスできるビューを作成します(500,700)。ドキュメントを検索しましたが、そのような機能は見つかりませんでした。

0 投票する
1 に答える
179 参照

arrays - 速度のために MArray 関数を適切に最適化する方法は?

MArraysのソート ライブラリに取り組んでいます。速度は重要なので、可能な限り最適化したいと考えています。

現在、並べ替え関数を単純にインライン化しています。これにより、最適化されていないコードと比較して、コードが 10 倍以上高速化されます。ただし、関数が複数の場所で使用されている場合、これによりコード サイズが簡単に爆発し、コンパイルが遅くなる可能性があります。

他の唯一の代替手段は、MArray の既存のすべてのインスタンスに対して関数を SPECIALIZE するようです。これにより、結果のコードも拡大されますが、関数が使用される回数に依存しない一定の係数によってのみ拡大されます。問題は、MArray の新しいインスタンスが出現する可能性があるかどうかです。それとも、MArray は非常に特別で、Haskell の内部にバインドされているので、他のモジュールによって新しいインスタンスが定義されないようにすることができますか?

0 投票する
1 に答える
194 参照

haskell - 制約の種類を持つポリモーフィック STUArray の再検討

スコア型に動的プログラミング アルゴリズム ポリモーフィックを実装したいと考えています。これは、境界条件のない単純化された 1D バージョンです。

制約は機能しません。

要約すると、Could not deduce (MArray (STUArray s) e (ST s)) from the context forall s. MArray (STUArray s) e (ST s i). に制約を追加するとresultArrayST、問題が にプッシュされるだけであることに注意してくださいrunSTUArray

私は現在、4 つの欠陥のあるソリューションを知っています。

  1. STArrayボックス化されたs または単に非モナドs の問題を回避しArray、おそらくseqand bang パターンを使用して、結果として生じるメモリの問題を緩和します。
  2. unsafeFreezeとを使用して型システムを壊します。unsafePerformIOこれには、ひどい制約が正常にMArray IOUArray e IO機能します。
  3. タイプクラスを使用し、すべての「ボックス化できない」タイプのインスタンスを作成する同様の問題に対するこのソリューション。
  4. これは GHC 書き換えルールを使用して、各タイプ (および汎用STArrayバージョン) ごとに異なる関数を選択します。

ConstraintKindsただし、最新の言語拡張により、元のコードの意図を表現できるようになることを期待して、この質問をしていforall s. MArray (STUArray s) e (ST s)ます。

0 投票する
1 に答える
58 参照

api - セッション署名プロセス用のアプリケーションを使用した Docusign API

以下のリンクのように、docusign を自分のアプリケーションとその作業に統合したいと考えています。ユーザーがアプリケーションで生成されたドキュメントに署名し、アプリケーションに戻るように指示した場合、どのようにそれを行うか。

" http://loancosample.azurewebsites.net "