TAC++ - Quelltransformationstool für C
Testversion mit freundlicher Genehmigung von FastOpt GbR Hamburg
Vorbereitung:
- Skript /homes/guest/slawig/TAC++/stac++ in eigenen Bereich kopieren
- stac++ -setup aufrufen, am einfachsten ohne Passphrase
- Der ssh-Zugang wird dann von FastOpt ermöglicht
Differenzieren:
- Zu differenzierenden Code in eine Funktion void f(double x, double *y) schreiben, z.B. in Datei f.c
- Vorwärtsmodus:
- Aufruf des Skripts:
- stac++ -toplevel f -input x -output y -l - -forward f.c
- toplevel: Funktion die differenziert werden soll
- input: Name unabhängige Variable
- output: Name abhängige Variable
- ggfs. Passphrase eingeben
- generierte Datei f_tl.c enthält Funktion void f_tl(...)
- Seed Matrix: x_tl
- Ableitung: y_tl
- Rückwärtsmodus:
- Skript
- stac++ -toplevel f -input x -output y -l - -reverse f.c
- Passphrase eingeben
- generierte Datei f_ad.c enthält Funktion void f_ad(...)
- adjungierte Seed Matrix: y_ad
- Ableitung: x_ad
Einige Einschränkungen: Noch keine Funktionsaufrufe innerhalb der toplevel-Routine.