問題タブ [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.

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

c++ - Visual Studio 2010 で Eigen ライブラリのパフォーマンスを高速化

Visual Studio 2010 で Eigen ライブラリのパフォーマンスを向上させるために変更する必要がある設定は何ですか? つまり、gcc には最適化をオンにするオプションがあります-O3。Visual Studio で最適化をオンにするにはどうすればよいですか (可能な場合)。

0 投票する
3 に答える
711 参照

c++ - 型が Eigen3 型かどうかを確認する

Eigen3 と組み込み型の相互互換性

こんにちは。私は、Eigen3 型 (行列と配列) と組み込み型の両方を処理できるルーチンを作成するという問題に悩まされています。例を挙げて説明すると、Meter<Type>実行時に統計を収集する機能を持つテンプレート クラスがあるとします。

Type クラスは、次の演算子をサポートする必要があります。

  • operator=(Scalar)
  • operator=(Type)
  • operator+(Type)
  • operator-(Type)
  • operator*(Type)
  • operator/(Type)
  • operator*(Scalar)
  • operator/(Scalar)

Eigen3types は、これらすべての演算子に 2 つの例外を指定して提供します。1 つ目は、が のサブクラスであるoperator*(Type)場合はドットプレダクトを表し、 が のサブクラスである場合は係数単位の積を表します。これは簡単に回避できます。第二に、どちらもゼロへの正しい初期化を保証するために必要なを実装していません。TypeEigen::MatrixBaseTypeEigen::ArrayBaseoperator=(Scalar)

次のファンクタークラスを実装して区別を処理しようとしましたが、それらを機能させることができません:

組み込み型とEigen3型の間の区別を処理するためのいくつかの構造体:

関数の実装自体

特殊化されたバージョンset_const_impl<EigenType>はインスタンス化されません。たとえば、私が電話した場合

私はコンパイラにオンラインで不平を言うように0させます

つまり、ファン0クターEigen::Matrix<double, 3, 1>のバージョンを選択したことを意味しset_const_impl<Scalar, true>ます (両方の引数が共通の型を共有する場合Scalar)。is_scalarこれは、既に使用して他のクラスで問題なくテストしたとしても、この場合、私の構築が機能していないことも意味します。

他のいくつかのクラスでこの動作が必要ですが、それぞれを明示的に特化したくありません! これを修正するにはどうすればよいか知っている人はいますか?

助けてくれてありがとう!

0 投票する
3 に答える
3147 参照

c++ - 新しい値の値がゼロのconservativeResize()

マトリックスのサイズを変更した後、新しい値をゼロに設定する方法は? マトリックスのサイズを変更した後、新しい値が少なくともゼロに設定されるのではなく、ゴミの値に設定されるのは本当に奇妙です。

結果

ここに画像の説明を入力

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

optimization - Eigen3: 係数単位の乗算

Eigen3 を使用して要素ごとの乗算を実行するにはどうすればよいですか?

する

その場で実行しますか?それとも

スタイルとパフォーマンスの点で優れたソリューションは?

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

c++ - バイナリファイルから固有行列を読み書きする方法

Eigen::Matrix をファイルに書き込むには、以下を使用するのが本当に好きです。

しかし残念ながら、逆のことができるものは定義されていません:

この問題を回避するには、どうすれば Eigen::Matrix をバイナリ ファイルに読み書きできますか?

0 投票する
0 に答える
499 参照

c++ - Visual Studio 2012 で固有行列の値を調べる

現在、Visual Studio 2012 を使用しています。Eigen3 ライブラリのマトリックス エントリを視覚化するには、こちらで説明されているように何かを行う必要があることを知っていました。ただし、そこに記載されている両方の方法を試しても、Visual Studio でデバッグしているときにマトリックス エントリを表示することはできません。誰かが同じ問題を抱えていて、どのように解決しましたか? ありがとう!

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

c++ - Eigen ライブラリを使用して sparseLU を実行し、L&U を表示しますか?

私はEigenが初めてで、スパースLU問題に取り組んでいます。ベクトル b(n) を作成すると、Eigenは Ax=b 方程式の x(n) を計算できることがわかりました。

質問:

  1. 元の行列 A の因数分解結果である L & U を表示するにはどうすればよいですか?

  2. Eigenにゼロ以外を挿入する方法は? 現在、小さなスパース行列でテストしているだけなので、ゼロ以外を 1 つずつ挿入しますが、大規模な行列がある場合、プログラムに行列を入力するにはどうすればよいですか?

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

c++ - 行列ベクトル cwiseProduct 操作の Eigen3 replicate()

次のコードがあります。

出力:

replicate()呼び出しを使用するよりも効率的にこれを達成する方法はありますか?

0 投票する
0 に答える
284 参照

c++ - 固有マップをクラスに入れられないのはなぜですか?

固有マップをクラスの定義に入れようとしましたが、コンパイラを通過できません。以下は「ex.cc」ファイルです。

コンパイラは次のように述べています。

何故かはわからない。Map をクラスに入れることを除いて、ここで説明したとおりに行っています。

0 投票する
5 に答える
10353 参照

c++ - Eigen ライブラリで疎行列の逆行列を計算するにはどうすればよいですか

C++ の Eigen ライブラリについて質問があります。実は、疎行列の逆行列を計算したいのです。Eigen で密行列を使用した場合、.inverse() 操作を使用して密行列の逆を計算できます。しかし、スパース行列では、逆演算はどこにも見つかりません。疎行列の逆を計算することを知っている人はいますか? 助けて。