Stack Overflow in der Eigen Libary
-
Hallo zusammen,
ich benutze die Eigen Libary und möchte mithilfe von Maps Arrays in Eigenmatrixen umwandeln
double realMatrixValues[400*400]; // hier wird die Matrix zu testzwecken befüllt MapType map (realMatrixValues,400,400); map = map.transpose()*map;Nun zu meinem Problem Ab der größenordnunf 400x400 kommt ein Stackoverflow, dabei bräuchte ich mindestens 4000*4000 Matrizen. Kann man das irgendwie reparieren oder gibt es eine bessere freie BLAS implementierung als Eigen? Vielen Dank schonmal für alle Antworten.
-
Eigen ist da nicht das Problem. Dein Ansatz, im typischerweise stark begrenzten automatischen Speicher, soviel allozieren zu wollen, ist ... blöd.
Das
double realMatrixValues[400*400];kannst Du durch
std::vector<double> realMatrixValues (400*400);ersetzen und später, wo die Adresse benötigt wird,
&realMatrixValues[0]einsetzen. Ich weiß aber nicht, was du da genau machen willst. Möglicherweise geht das auch noch eleganter.
-
dabei bräuchte ich mindestens 4000*4000 Matrizen.
Das wären ca 122MB, der Stack ist fast nie größer als 1MB.
Nimm dazu wie gesagt std::vector.