Initialisiere eine konstante Eigenmatrix in einer Header-Datei

8

Dies ist eine Frage, die von Nicht-Eigen-Benutzer beantwortet werden kann ...

Ich möchte die Eigen-API verwenden, um eine konstante Matrix in einer Header-Datei zu initialisieren, aber Eigen scheint keinen Konstruktor bereitzustellen, um dies zu erreichen, und folgendes habe ich versucht:

%Vor%

Was ist die Alternative, um dies in einer Header-Datei zu erreichen?

    
Hailiang Zhang 23.09.2014, 15:47
quelle

3 Antworten

9

Es gibt mindestens zwei Möglichkeiten. Der erste verwendet die Komma-Initialisierer-Funktionen von Eigen:

%Vor%

Die zweite Methode verwendet den Konstruktor Matrix3d(const double*) , der Daten von einem rohen Zeiger kopiert. In diesem Fall müssen die Werte in der gleichen Reihenfolge wie die Speicherreihenfolge des Ziels angegeben werden, also in den meisten Fällen spaltenweise:

%Vor%     
ggael 23.09.2014, 20:26
quelle
1

Sie können keinen beliebigen Code außerhalb einer Funktion wie dieser platzieren.

Versuchen Sie Folgendes. Die Implementierung kann sogar in einer Quelldatei zum schnelleren Kompilieren verwendet werden.

%Vor%     
Neil Kirk 23.09.2014 15:58
quelle
1

Ich habe keinen Weg gesehen, es komplett in einem Header zu machen, aber das sollte funktionieren:

%Vor%

Ich habe noch nie mit Eigen gearbeitet, also kann ich es nicht testen ...

    
0xfee1dead 23.09.2014 16:24
quelle

Tags und Links