Je fais de l'algèbre linéaire avec de très grandes matrices symétriques (~ 800mb), et j'essaie plusieurs décompositions différentes. Actuellement, j'implémente LDLT et j'aimerais en profiter pour réduire de moitié mes besoins en mémoire en écrasant le triangle supérieur de ma matrice avec L^T. Bien que la documentation d'Eigen ne mentionne pas de toute façon cela, il y a des méthodes cachées dans l'espace de noms interne qui peuvent faire ce que je veux.Inplace LDLT décomposition avec Eigen
Les méthodes se trouvent dans ces struct: template<> struct ldlt_inplace<Lower>
et template<> struct ldlt_inplace<Upper>
dans http://eigen.tuxfamily.org/dox/LDLT_8h_source.html
Ai-je raison que ces méthodes sont ce que je veux? Comment les utiliser? Devrais-je éviter de les utiliser parce qu'ils sont internes, et donc sujets à changement et dépréciation?
Merci! C'est assez simple en fait. Y a-t-il des précautions que je peux prendre pour me protéger des changements futurs? – nitrous
Il est maintenant officiellement supporté: http://eigen.tuxfamily.org/dox-devel/group__InplaceDecomposition.html – ggael