мне было интересно, если метод reserve
в Эйгене делает также выделяет память для внешних индексов и внутренних индексов (в случае 3-CSC.)Эйген разреженного матрица резерв NNZ
Это означает, что если я сделать
n = 1000
SparseMatrix<float> A;
A.reserve(n)
затем
- Алло Cate
n
память данных - выделить
n
памяти для внутренних индексов - выделить
n+1
памяти для внешних индексов (в худшем случае и априори не известно)
документация говорит только
void Eigen::SparseMatrix<...>::reserve (Index reserveSize)
Предоставляет резервные копии без нулей.
Условие: матрица должна быть в сжатом режиме.
Может кто-нибудь разъяснить это? Или сказать что-то о политике резервирования? Спасибо
, так что, если я знаю, размеры в начале говорят 'SparseMatrix A (m, m); A.reserve (n); 'then ** внутренние индексы ** и ** данные ** захват' n' памяти и ** внешние индексы ** захватывает память 'm + 1'? –
Первая часть является истинной, но не последней: память для внешних индексов выделяется и инициализируется конструктором A (m, m). 'reserve' ничего не делает с уважением к внешним индексам. – ggael
большое спасибо. возможно, вы должны отредактировать и включить это в свой ответ. –