forループを使用する代わりに、Eigenライブラリ関数を使用し、コード自体のベクトル化を助けるための1行のコードを実装して、OpenMPによる並列化を容易にしたかったのです。 array
を想定しEigen:forループの使用を避ける
Eigen::VectorXd get_vector(int n, int j , int start){
Eigen::VectorXd foo(n);
indices = Eigen::VectorXd::LinSpaced(n, start + n - 1, start).array();
for(int i =0;i<indices.size();i++)
foo(i) = (array(indices(i)) - array(j))*(array(indices(i)) - array(j));
return foo;
}
// array is globally declared as Eigen::VectorXd and have length greater than n, it is already been defined.(set of N(>n) random double numbers)
'foo(i)= ...'を意味しますか? 'array'とは何ですか? – chtz
@chtzはい、私は今質問を編集しました – user7440094