general_wolffstep template parameter
Die Funktion general_wolffstep
nimmt im Vergleich zum metropolisstep
ein Argument mehr. Dieses wird durchgereicht zu den Funktionen ham.wolffcoupling
und ham.wolff_flip
, welche vom User implementiert werden müssen. Sie steuern die eigentliche Dynamik des Wolff-Algorithms, während die Funktion general_wolffstep
lediglich das Gerüst liefert (d.h. den Stack-Mechanismus).
Jetzt ist dieses zweite Argument im Moment ein StateVector
, weil das die typische Anwendung ist (random direction zur Projektion). Es soll aber eigentlich einfach ein Template-Argument sein, so dass man irgendwas beliebiges da reingeben kann. Nur bekomme ich das von der Syntax her nicht hin, weil die Funktion ja schon implizite Template-Parameter hat. Ich würde quasi gerne sowas haben:
template <class Grid, class Hamiltonian, class Additional>
inline int Marqov<Grid, Hamiltonian>::general_wolffstep(int rsite, const Additional& add_arg)
Wie bekomme ich das hin?