Выровнены ли плотные подматрицы blaze rowMajor, если они начинаются в первом столбце - PullRequest
0 голосов
/ 19 декабря 2018

Я использую библиотеку шаблонов выражений blaze и у меня возникает следующий вопрос: Безопасно ли объявлять rowMajor submatrix как выровненный, если выбор начинается с первого столбца?

Я бы предположил, что да, потому что я думаю, что плотные матрицы используют заполнение, чтобы гарантировать SIMD-совместимое выравнивание вдоль большой оси.Однако я не уверен на 100%.

Другими словами: гарантируется ли, что следующее выражение всегда будет выровнено и, следовательно, не выкинет std::invalid_argument?

using blaze::aligned;

blaze::DynamicMatrix<double,blaze::rowMajor> D( 13UL, 17UL );
// ... Resizing and initialization

auto dsm1 = submatrix<aligned>( D, 3UL, 0UL, 7UL, 71UL );
...