Как вы получаете итератор для строки boost :: numeric :: ublas :: matrix <T>? - PullRequest
3 голосов
/ 25 марта 2012

Я работаю над умножением матриц, и мне нужен итератор для одной строки матрицы повышений? Можно ли это сделать?

В настоящее время я должен получить итератор и продвинуть его. Кажется, что слишком много работы процессора / неоптимизировано ...

boost::numeric::ublas::matrix<T> aMatrix(2048, 4096);
typename boost::numeric::ublas::unbounded_array<T>::iterator it;
it = aMatrix.data().begin();
offset = row * aMatrix.size2();
advance(it, offset);

1 Ответ

4 голосов
/ 25 марта 2012

Эврика! Матричные прокси ...

boost::numeric::ublas::matrix_row<boost::numeric::ublas::matrix<T> > aRow(aMatrix, row);
...