Я выполняю линейную алгебру с очень большими симметричными матрицами (~ 800 мб), и я пробую несколько разных разложений. В настоящее время я реализую LDLT, и я хотел бы воспользоваться этим, чтобы сократить вдвое мои требования к памяти, переписав верхний треугольник моей матрицы с помощью L^T. Хотя документация Eigen не перечисляет все равно, чтобы сделать это, во внутреннем пространстве имен есть некоторые скрытые методы, которые могут делать то, что я хочу.Inplace LDLT декомпозиция с Eigen
Методы могут быть найдены в следующих структурах: template<> struct ldlt_inplace<Lower>
и template<> struct ldlt_inplace<Upper>
в http://eigen.tuxfamily.org/dox/LDLT_8h_source.html
Правильно ли я, что эти методы являются то, что я хочу? Как их использовать? Должен ли я избегать их использования, потому что они являются внутренними и, следовательно, могут быть изменены и отменены?
Спасибо! На самом деле это довольно просто. Есть ли какие-либо меры предосторожности, которые я могу предпринять, чтобы защитить себя от будущих изменений? – nitrous
Теперь это официально поддерживается: http://eigen.tuxfamily.org/dox-devel/group__InplaceDecomposition.html – ggael