問題タブ [eigen3]
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++ - Visual Studio 2010 で Eigen ライブラリのパフォーマンスを高速化
Visual Studio 2010 で Eigen ライブラリのパフォーマンスを向上させるために変更する必要がある設定は何ですか? つまり、gcc には最適化をオンにするオプションがあります-O3
。Visual Studio で最適化をオンにするにはどうすればよいですか (可能な場合)。
c++ - 型が Eigen3 型かどうかを確認する
Eigen3 と組み込み型の相互互換性
こんにちは。私は、Eigen3 型 (行列と配列) と組み込み型の両方を処理できるルーチンを作成するという問題に悩まされています。例を挙げて説明すると、Meter<Type>
実行時に統計を収集する機能を持つテンプレート クラスがあるとします。
Type クラスは、次の演算子をサポートする必要があります。
operator=(Scalar)
operator=(Type)
operator+(Type)
operator-(Type)
operator*(Type)
operator/(Type)
operator*(Scalar)
operator/(Scalar)
Eigen3
types は、これらすべての演算子に 2 つの例外を指定して提供します。1 つ目は、が のサブクラスであるoperator*(Type)
場合はドットプレダクトを表し、 が のサブクラスである場合は係数単位の積を表します。これは簡単に回避できます。第二に、どちらもゼロへの正しい初期化を保証するために必要なを実装していません。Type
Eigen::MatrixBase
Type
Eigen::ArrayBase
operator=(Scalar)
次のファンクタークラスを実装して区別を処理しようとしましたが、それらを機能させることができません:
組み込み型とEigen3
型の間の区別を処理するためのいくつかの構造体:
関数の実装自体
特殊化されたバージョンset_const_impl<EigenType>
はインスタンス化されません。たとえば、私が電話した場合
私はコンパイラにオンラインで不平を言うように0
させます
つまり、ファン0
クターEigen::Matrix<double, 3, 1>
のバージョンを選択したことを意味しset_const_impl<Scalar, true>
ます (両方の引数が共通の型を共有する場合Scalar
)。is_scalar
これは、既に使用して他のクラスで問題なくテストしたとしても、この場合、私の構築が機能していないことも意味します。
他のいくつかのクラスでこの動作が必要ですが、それぞれを明示的に特化したくありません! これを修正するにはどうすればよいか知っている人はいますか?
助けてくれてありがとう!
c++ - 新しい値の値がゼロのconservativeResize()
マトリックスのサイズを変更した後、新しい値をゼロに設定する方法は? マトリックスのサイズを変更した後、新しい値が少なくともゼロに設定されるのではなく、ゴミの値に設定されるのは本当に奇妙です。
結果
optimization - Eigen3: 係数単位の乗算
Eigen3 を使用して要素ごとの乗算を実行するにはどうすればよいですか?
する
その場で実行しますか?それとも
スタイルとパフォーマンスの点で優れたソリューションは?
c++ - バイナリファイルから固有行列を読み書きする方法
Eigen::Matrix をファイルに書き込むには、以下を使用するのが本当に好きです。
しかし残念ながら、逆のことができるものは定義されていません:
この問題を回避するには、どうすれば Eigen::Matrix をバイナリ ファイルに読み書きできますか?
c++ - Visual Studio 2012 で固有行列の値を調べる
現在、Visual Studio 2012 を使用しています。Eigen3 ライブラリのマトリックス エントリを視覚化するには、こちらで説明されているように何かを行う必要があることを知っていました。ただし、そこに記載されている両方の方法を試しても、Visual Studio でデバッグしているときにマトリックス エントリを表示することはできません。誰かが同じ問題を抱えていて、どのように解決しましたか? ありがとう!
c++ - Eigen ライブラリを使用して sparseLU を実行し、L&U を表示しますか?
私はEigenが初めてで、スパースLU問題に取り組んでいます。ベクトル b(n) を作成すると、Eigenは Ax=b 方程式の x(n) を計算できることがわかりました。
質問:
元の行列 A の因数分解結果である L & U を表示するにはどうすればよいですか?
Eigenにゼロ以外を挿入する方法は? 現在、小さなスパース行列でテストしているだけなので、ゼロ以外を 1 つずつ挿入しますが、大規模な行列がある場合、プログラムに行列を入力するにはどうすればよいですか?
c++ - 行列ベクトル cwiseProduct 操作の Eigen3 replicate()
次のコードがあります。
出力:
replicate()
呼び出しを使用するよりも効率的にこれを達成する方法はありますか?
c++ - 固有マップをクラスに入れられないのはなぜですか?
固有マップをクラスの定義に入れようとしましたが、コンパイラを通過できません。以下は「ex.cc」ファイルです。
コンパイラは次のように述べています。
何故かはわからない。Map をクラスに入れることを除いて、ここで説明したとおりに行っています。
c++ - Eigen ライブラリで疎行列の逆行列を計算するにはどうすればよいですか
C++ の Eigen ライブラリについて質問があります。実は、疎行列の逆行列を計算したいのです。Eigen で密行列を使用した場合、.inverse() 操作を使用して密行列の逆を計算できます。しかし、スパース行列では、逆演算はどこにも見つかりません。疎行列の逆を計算することを知っている人はいますか? 助けて。