長さ m の n 個のベクトルがあり、それらを結合して mxn 行列を作成したい場合、Boost uBLAS を使用して C++ でこれを行う最も効率的な方法は何ですか?
明らかに、それらをループして各行列要素に対応するベクトル値を割り当てることができますが、これを行うためのより良い方法があるように感じます。
長さ m の n 個のベクトルがあり、それらを結合して mxn 行列を作成したい場合、Boost uBLAS を使用して C++ でこれを行う最も効率的な方法は何ですか?
明らかに、それらをループして各行列要素に対応するベクトル値を割り当てることができますが、これを行うためのより良い方法があるように感じます。
ベクトルのリスト全体を要素ごとに反復するのではなく、各ベクトルを対応する行列列に直接割り当ててみます。
template<class AE >
BOOST_UBLAS_INLINE matrix_column & operator= (const vector_expression< AE > &ae)
ある時点で各要素をコピーする必要がありますが、これはネストされたループ (または、そうでない場合は Boost.uBlas のパフォーマンス バグ) よりも高速です。