インテル® C++ コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
次の例について考えてみます。
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>
namespace ublas = boost::numeric::ublas;
int main ()
{
unsigned size = 1000;
ublas::vector<double> dest(size), src(size), arg(src);
for (int i = 0; i < size; ++ i)
{
src(i) = i * 1.2;
arg(i) = i * 2.3;
}
// Loop to be vectorized
dest = src + 1.5 * arg;
return 0;
};
この例では、デフォルトの O2 設定でコンパイラーがこのループをベクトル化できません。例外処理コードを削除するか、別のライブラリーを使用するようにコードを変更します。