eigen

    0

    1答えて

    テンプレート関数内で固有:: LLTの使用:基本的には template<typename mattype, typename vectype> inline static boost::any ApplyCholesky(boost::any const& A, boost::any const& x) { const Eigen::LLT<mattype>& chol =

    2

    2答えて

    Eigen :: MatrixXd型の行列出力を列方向に計算するためにネストされたfor-loopを使用する必要があります。ここで、inputwise [0]、input [1]、input [2]は、Eigen :: ArrayXXdとして定義され、要素ごとのoprerationsを使用します。この部分は私のコードのボトルネックと思われます。誰も私がこのループを加速するのを助けることができますか

    3

    1答えて

    私はEigenライブラリでアルゴリズムの実装を開始しました。行列の空白(カーネル)を計算する必要がありました。私はその後、 0, 0, 1, 0, 1, 0, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0 が、私は後でその上でその権利カーネルを実現し、 0.5 0 -1 1 0 0 0 0 0 0.5 -0.5 0 -0 0 1 0 0 0 0 -0

    1

    1答えて

    2つのEigen::ArrayX3dオブジェクトがあります。これはN行と3列です。これを具体的にするために、第1のアレイは、N個の粒子の3d速度からなる。もう1つは、各粒子の位置における磁場ベクトルからなる。私はローレンツの力、v x Bを計算しようとしています - これは私が行の各ペアを取ってクロス製品を計算しなければならないことを意味します。 Pythonでは、単にnumpy.cross(v,

    0

    1答えて

    Eigen :: MatrixXdを作成する方法はありますか?各列は異なる '生の'ベクターから来ます。例えば、私はドキュメントからこのコードを取るたいと思います: int array[8]; for(int i = 0; i < 8; ++i) array[i] = i; cout << "Column-major:\n" << Map<Matrix<int,2,4> >(array) <<

    -1

    1答えて

    私は 固有値を変換する方法を探しています::疎行列<フロート> < - >カスプ:: hyb_matrix < int型、float型、 cusp :: host_memory> 前後です。 固有行列は以前の計算の結果であり、後で共役勾配計算にGPUを使用するにはcusp :: hyb_matrixが必要です。 ありがとうございました。

    0

    1答えて

    Eigen 3.2.7から3.3.4に更新した後、JacobiSVD.solveで問題が発生し、非常に間違った結果が返されます。 BDCSVDも同じ結果になります。 問題は、次のコードで再現することができます:固有3.3.4で計算B4の値は​​、私は、これは、SDKのバグいくつかの奇妙なメモリアライメントの問題のいずれかであり得ることを考えさせる #include <Eigen/Eigen> #

    1

    2答えて

    Eigenの適切なパラメータタイプの控除について。 Matrix(MatrixXd)またはVector(VectorXd)で初期化できるクラスを作成したいとします。 // roughly typedef Matrix<double, Dynamic, 1> VectorXd; typedef Matrix<double, Dynamic, Dynamic> MatrixXd; 私はVect

    4

    1答えて

    boost::formatを使ってintの固有ベクトルを計算し、その数が右寄せになるようにしたいと思います。これまでのところ私ならば、私は希望の結果を得ることができ、私は次のコード int main(){ vector<Vector3i> foo; Vector3i bar; bar << -1,-1,0; foo.push_back(bar); bar << 0, 0,0; foo.pu

    1

    1答えて

    私はEigenライブラリの行列、たとえばAを持っていて、複数のスレッドからその列を埋めたい、つまりスレッドはA.col(j) = xjを呼び出します。各列jは、正確に1回、1つのスレッドでのみ書き込まれます。したがって、2つのスレッドが同じ列に書き込むことはありませんが、2つの異なる列を同時に書き込むことはできません。 スレッド環境でEigenを使用する前に、Eigen::initParallel