Tensorprodukt
-
Hey Leute
Ich muss das Tensorprodukt implementieren, leider werde ich von den Erklärungen im Internet nicht schlau, da ich wenig von der Mathematischen Schreibweise verstehe.
Ich wär dankbar, wenn jemand in Worten erklären könnte , wie man zwei Tensoren miteinander Multipliziert.Ich verstehe unter einem Tensor, eine Abstraktion von Matrizen und Vektoren in einen N-Dimensionalen Raum.
Somit meine ich ,dass die Matrixmultiplikation eine Sonderform des Tensorproduktes ist und sich durch Induktiv-Rekursiv Implementieren lässt
( was ist wenn die Dimension des Tensors ungerade ist? - was müsste man mit den Vektoren am Ende der Rekursion tun? ).Es wär sehr hilfreich wenn mir jemand einen deduktiven Ansatz zeigen könnte.
folgende vereinfachte Klasse sei gegeben :template<typename Type , uint Dimension , uint...Dimensions> struct Tensor { Tensor<Type, Dimensions...> Data [ Dimension ] ; enum { N = sizeof...(Dimensions) + 1 } ; const static uint Ranges[] = { Dimension , Dimensions... } ; // nur eine Vereinfachung typedef /* Template-Magie */ Transponded_Tensor; // was ist noch notwendig ? template<???> Tensor<Type , ???> operator* ( Tensor<Type , ???> const& RHS ) // für welche Dimensionkombinationen (Ranges) ist ein Tensorprodukt definiert ? { // wie sieht die Implementation aus? } };
MFG
Speedps Links zu Literatur sehe ich ebenfalls gerne