問題タブ [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++ - オブジェクトを追加するときのセグメンテーション違反
2 次元配列を行列として使用する方法と、boost::ublas::matrix を使用する方法の 2 つの異なる方法でコードを記述しました。最初のケースでこのオブジェクトを追加すると動作しますが、2 番目のケースではセグメンテーション エラーが発生します。私は 2 番目の方法を使用したいので、セグメンテーション違反が発生する理由を誰かが知っていれば、感謝します。
コード:
img.h
img.cpp
このコードがセグメンテーション違反の原因ではないことは確かです。しかし、メインプログラムで使用すると、セグメンテーション違反が発生します(2番目の方法でのみ、最初は機能しています):
main.cpp
c++ - C++、boost::numeric::ublas::mapped_matrix - std::map の代わりに std::tr1::unordered_map を使用する場合の反復の問題
ブースト ライブラリ (1.44) と VC++ 2010 を使用しています。
以下のコードに問題が見つかりました。
このテストは、std::tr1::unordered_map を使用した StorageUnorderedMap でのみ失敗しました。しかし、insert_element() と find_element() のテストはすべてパスしました。
c++ - ブースト uBLAS マトリックス/ベクター製品
誰かがuBLAS製品を使用して物事を増やす方法の例を提供できますか? または、より優れた C++ マトリックス ライブラリがあれば、それも歓迎します。これは 1 つの大きな頭痛の種になっています。
これが私のコードです:
エラーは次のとおりです。
私は私の検索を使い果たしました。Stackoverflow には、これに関する質問があります。Boost のドキュメントには、ここに例があります。例からコードをコピーしましたが、stdout で機能するテンプレート マジックは役に立たないため、役に立ちません。
c++ - ブーストublasマトリックス製品の問題
Boostのublas部分を使用しようとしていますが、何らかの理由で行列を乗算してその結果を他の行列に割り当てることができません。
これは機能します:
しかし、私がその行のコメントを外しgoo = prod(foo,foo);
たり、次のようなことを試みたりした場合:
解読できないランタイムエラーが発生します。
行列を乗算して結果を割り当てるにはどうすればよいですか?
matlab - ベクトル化がMatlabプログラムにとって有益なのはなぜですか?NumPyとBoost(uBLAS)でも同じですか?
ベクトル化を使用してforループを置き換えると、Matlabプログラムの速度が大幅に向上する可能性があります。ベクトル化されたコードが並行して実行されているためですか?
ベクトル化は、NumPyまたはuBLASを使用するプログラムにも役立ちますか?
c++ - ブーストベクトルとSTLベクトル
実行時の効率をどのようboost::numeric::ublas::vector
にstd::vector
比較しますか?
次のように書くだけで、プログラム全体std::vector
を使用から使用に変換できると想定しても安全ですか。boost::numeric::ublas::vector
#include<vector>
?の代わりに すべての面でSTLベクトルであるかのようにブーストベクトルを使用できますか?
<algorithm>
関数はブーストベクトルで機能しますか?彼らは同じイテレータを使用していますか?
それらはC++0xで動作しますか?それらは範囲ベースのループで機能しますか?
c++ - uBLASSlowMatrix-SparseVector乗算
最適化されたブーストuBLASライブラリを使用するために、独自のベクトル代数コードの一部を変換しています。ただし、SymmetricMatrix-SparseVectorの乗算を実行しようとすると、自分の実装よりも約4倍遅いことがわかりました。ベクトルサイズは通常約0〜500で、約70〜80%のエントリはゼロです。
これが私のコードです
sparseVectorIndexesは、入力ベクトルの非ゼロ値のインデックスを格納します。vectorLengthはベクトルの長さであり、sparseLengthはベクトル内の非ゼロの数です。行列は対称行列として格納されsymmetric_matrix<double, lower>
ます。
私自身の実装は、単純なネストされたループの反復であり、行列は単なる2D二重配列です。
}
uBLAS 4xが遅いのはなぜですか?掛け算をきちんと書いていませんか?それとも、これにより適した別のライブラリがありますか?
編集:代わりに密なベクトル配列を使用すると、uBLASは2倍遅くなります...
c++ - uBLAS を使用して C++ でベクトルから行列を作成する
長さ m の n 個のベクトルがあり、それらを結合して mxn 行列を作成したい場合、Boost uBLAS を使用して C++ でこれを行う最も効率的な方法は何ですか?
明らかに、それらをループして各行列要素に対応するベクトル値を割り当てることができますが、これを行うためのより良い方法があるように感じます。
c++ - uBlas 圧縮マトリックスから行を削除しますか?
uBlas の圧縮されたマトリックスから行を削除する最良の方法は何だろうと思っていましたか? ベクトル内の圧縮された列データを取得する方法があるかどうか疑問に思っていましたか? このページhttp://netlib.org/linalg/html_templates/node92.htmlを見ていますが、これらの要素にアクセスする方法が見つかりません。
私の行列は次のように宣言されています:
私の最終的な目標は、このメソッドを使用してすべてのゼロ行を削除することです。
編集: 解決策には、ublas::compressed_matrix 構造を内部的に変更することが含まれると思われます。ゼロ以外のエントリの数は 1k 程度になると想定しても安全だと思います。行を削除するメソッドをおそらく 20 回呼び出すことを望んでいます。
c++ - UbuntuでPyUblasサンプルを動作させる
uBLASベクトル/行列を返すPythonでC++関数を呼び出したいと思います。これを行うためのPyUblasというパッケージがありますが、Ubuntuでこれを機能させるのに問題があります。
このサンプルを機能させるための手順を誰かに教えてもらえますか?
また、インストール手順と多少混乱しています。すでにUbuntuリポジトリからインストールしているので、boostとnumpyをインストールするための指示には従いませんでした。