問題タブ [eigen]
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++ - C++ Eigen ライブラリは、特化したベンダー ライブラリよりも優れたパフォーマンスを発揮するのはなぜですか?
私はパフォーマンスのベンチマークを調べていました: http://eigen.tuxfamily.org/index.php?title=Benchmark
私は思わず、eigen がすべての専用ベンダー ライブラリよりも一貫して優れているように見えることに気付きました。質問は次のとおりです。それはどのように可能ですか?mkl/goto はプロセッサ固有の調整されたコードを使用すると想定されますが、固有値はかなり一般的です。
このhttp://download.tuxfamily.org/eigen/btl-results-110323/aat.pdf、本質的には dgemm に注意してください。N=1000 の場合、固有値は約 17Gf、MKL はわずか 12Gf になります。
multithreading - リリースモード用にコンパイルするとマルチスレッドが発生しません
VS2010のEigenライブラリを使用して行列-行列乗算をプログラミングしています。デバッグモードで実行すると、アプリケーションはすべてのCPUを使用しますが、リリースモードで実行すると、1つのスレッドのみを使用します。マルチスレッドを有効にするために変更する必要のある設定はありますか?
eigen - 行列が 512x512 を超えると固有並列のパフォーマンスが低下する
1 つのスレッドと 8 つのスレッドを使用して Eigen SGEMM 操作のベンチマークを行ったところ、パフォーマンスは 512x512 でピークに達しましたが、そのサイズを超えると低下しました。これには、おそらくより大きなマトリックスの複雑さを伴う何か特定の理由があるのではないかと思っていましたか? Eigen のウェブサイトでマトリックス - マトリックス操作のベンチマークを見ましたが、似たようなものは見当たりませんでした。
512x512 で、並行して 4 倍速くなりました。しかし、4096x4096 ではかろうじて 2 倍速くなりました。私は並列処理のために openMP を使用しており、それを 1 つのスレッドにするために num_of_threads を 2 に設定しています。
matrix - Eigenの1*1行列をfloatに変更する方法は?
固有行列ライブラリを使用しています。
1 * 1の行列を数値(浮動小数点数など)に変換するにはどうすればよいですか?
これをしても大丈夫です
しかし、私がこれをやろうとすると
「constEigen::GeneralProductを割り当てでフロートに変換することはできません」と書かれています。
c - cでEigenを使用することは可能ですか?
テンプレート プログラミングについてはよくわかりませんが、現在 gsl を使用しています。Eigen を C で使用できるかどうかに興味があります。以前に C で Eigen を使用したことのある人はいますか? 簡単かどうかを調べるためにテストできるものはありますか?
math - Eigen を使用した 2D カメラのモデル ビュー マトリックスの計算
2D カメラのモデル ビュー マトリックスを計算しようとしていますが、式を正しく取得できません。行列が OpenGL と互換性があるように、Affine3f 変換クラスを使用します。これは、私が試行錯誤して得たものに最も近いものです。このコードはカメラの回転とスケーリングを正常に行いますが、平行移動と回転を同時に適用すると、カメラの動きがおかしくなり、カメラが回転した形で動きます。(これはおそらく、最初に回転行列を適用してから変換したためです)
私が欲しいのは、カメラがスクリーンスペースのオフセット位置を中心に回転およびスケーリングし、{(0,0) はこの場合はスクリーンの中央です}、ワールドスペースのグローバル xy 軸に沿って配置されることです {(0,0) も最初は画面の中央} から最終的な位置まで。どうすればいいですか?
この問題に影響を与える可能性のある正投影行列も設定したことに注意してください。
c++ - boost::bind で Eigen 型を使用すると、Eigen の「参照渡しのみ」の規則に自動的に違反しますか?
libeigen はすべての型のメモリ アラインメントを調整する特別な作業を行うため、固有型を引数として渡す場合は常に参照渡しである必要があるという特別な規則があります。
ただし、boost::bind は暗黙的に値渡しすると思います。
私の直感では、boost::bind を固有型で (boost:ref を使用せずに) 使用すると、Eigen の参照渡しの規則に違反し、問題が発生します。
誰でもこれを確認できますか?
c++ - C++でメモリアライメントを適用する
内部でEIGENを使用するAPIを設計したい。
http://eigen.tuxfamily.org/dox/TopicPassingByValue.htmlに基づいて、クラスにメンバーとしてEigenオブジェクトがある場合、値で渡すことはできません。
コンパイラ(g ++など)にオブジェクトを値で渡せないことを伝える簡単な方法はありますか?
ios - XCode IOS Apple LLVM3.1-EigenNEONが壊れます
問題はAppleのLLVM3.1コンパイラの使用に関係している可能性があり、NEONを無効にすることで修正できると確信しています。ただし、NEONを使用したいと思います。
また、これはXCodeでのセットアップのエラーですが、Appleの場合もあります。本当に私は正しい方向へのいくつかのヒントを求めています。
この欠落したfloat32_tエラーは、そのファイル内のすべてのインスタンスで発生します。33行目でもtypedefは明確に実行されています。
更新:
強制#define EIGEN_NO_DEBUG
すると、残っている唯一のエラーは欠落しているcerrnoです。実際、すべてのcXXXライブラリが欠落しているようです(たとえば、cstdlib)。それでも、私がEigenの外にそれらを含めると、それらは機能します。
c++ - Eigenとダブルポインターを使用した行列表現
2D配列を表すためにダブルポインタを多用するコードを継承しました。Eigenの使用経験はほとんどありませんが、ダブルポインターよりも使いやすく、堅牢なようです。
どちらが望ましいかについて誰かが洞察を持っていますか?