問題タブ [boost-ublas]
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.
c++ - uBlasは非常に遅い
重複の可能性:
BOOST uBLAS マトリックス製品が非常に遅い
uBlas ライブラリを (boost で) 使用しようとしています。
複数の 2 つの大きな行列に簡単なコードを書きました。結果が遅すぎる、MatlabとOctaveでパフォーマンスを比較したところ、極端に遅かった。問題を解決するのを手伝ってくれませんか
c++ - ブースト行列prod()関数を乗算関数として渡すにはどうすればよいですか?
行列指数を実行しようとしていますが、べき乗関数をコピーして貼り付けたくなく、クラステンプレートを使用したいと思います。問題は、ブースト行列の場合、行列を乗算するには、prod
(の代わりにoperator*
)関数を使用することです。
g++は私が使用したいテンプレートを理解できないようです。以下のコードで発生するエラーは次のとおりです。
コードは次のとおりです。
テンプレートを解決するためにprod()をmy_powに渡す方法はありますか?ありがとう。
明確でない場合:bは基数、eは指数、my_powはb^eを計算する
c++ - ブーストを使用して(密な)線形システムAx=bを解く
私はC++プログラムで解くためのタイプAx=bの密な連立方程式を持っており、ブーストでUBLASを使用して解を実装することを望んでいました。他のいくつかの質問で、人々が拡張機能LAPACKを使用していることがわかりましたが、残念ながら、それは私の標準のブーストインストールの一部ではないようで(少なくともDebianでは)、依存関係を追加することは許可されていません。
LAPACKやその他のライブラリを使用しないソリューションを誰かが貼り付けることはできますか?
c++ - BoostuBLASマトリックスリファレンス
Boost uBLASマトリックスの個々の要素のアドレスを取得できるかどうか疑問に思っていますか?
あれは
さて、もちろん2行目は機能しません...しかし、私はそれを望んでいます。
何かご意見は?
ありがとう!
c++ - GDBはBoostuBLASマトリックスを表示できませんか?
BoostのuBLAS行列の実装を使用して正常にコンパイルされたプログラムがあります。残念ながら、デバッグ中にマトリックスの内容を確認する方法が見つからなかったため、gdbを使用したデバッグには問題があります。行列Vの要素(存在し、データでいっぱいです)を表示しようとすると、次のようになります。
これを回避する方法はありますか?
ありがとう!
c++ - ブースト、matrix_proxy、const マトリックス
これを与える:
エラー:
unconst
関数のパラメーターで指定された参照の方法、または使用する回避策は? 単純な割り当てかどうかわかりません
オーバーヘッドはありません。
c++ - ublas::bounded_vectorを使用した型変換について警告するg++コンパイラオプション
次のコードを検討してください。
次のオプションを指定してg++(バージョン4.6.1)を使用してこれをコンパイルすると、次のようになります。
次の警告が表示されます。
プログラムを実行すると、次のようになります。
コンパイラーはスカラーの変換に関する警告を生成しましたが、ublas変換に関する警告はありませんでした。その場合、コンパイラーに警告を書き込む方法はありますか?のように見える-Wconversion
か、他のオプションのいずれかがこれを行いません。
c++ - ブースト行列乗算が私のものより遅いのはなぜですか?
私は1つの行列乗算を実装しましたboost::numeric::ublas::matrix
(私の完全な作業ブーストコードを参照してください)
標準アルゴリズムを使用した別のもの (完全な標準コードを参照):
これは私が速度をテストする方法です:
どちらのプログラムも、2 つの 2000 x 2000 行列を含むハードコードされたテキスト ファイルを読み取ります。両方のプログラムは、次のフラグを使用してコンパイルされました。
実装に15 秒、ブーストの実装に4 分以上かかりました。
編集:それをコンパイルした後
ikjアルゴリズムで 28.19秒、Boost で60.99 秒でした。そのため、Boost は依然としてかなり低速です。
ブーストが私の実装よりもずっと遅いのはなぜですか?
c++ - zero_vector を使用して boost / c++ で初期化するにはどうすればよいですか?
私は答えの1つを見ていました: ブーストベクトルまたはマトリックスを埋める ことですが、私はブースト(およびxcode、さらに言えば)が初めてで、ブーストzero_vectorに頭を悩ませようとしています。
答えの1つとほぼ同じだと思った簡単なプログラムを試しました:
これはコンパイルされますが、実行すると実行時エラーが発生します (実際のパスを「/PATH/TO」に置き換えます)。
ここでは、単一の main.cpp をテスト領域として使用しています。実際のプログラムでは、宣言を .h ファイルに分割し、初期化をオブジェクトの .cpp ファイルに分割しています。しかし、上記のコードは実際のプログラムと同じように失敗します。(つまり、宣言と初期化を2つのステップに分割している理由)
また、サイズ変更がすでにゼロに初期化されていることも知っています。代わりにscalar_vectorを実行するか、後で配列をリセットする必要があるかもしれません。壊れているコードを分離しようとしていました。