habe in der Uni im Moment ein Projekt am laufen.
Es soll mathematische Funktionen ausrechnen können. Das ganze funktioniert bislang mit Java und Antlr4.
Also Antlr4 generiert mir Bäume die in etwa aussehen:
Der generierte TreeWalker iteriert dann darüber und ruft die entsprechenden Funktionen im Listener auf. So wird das ganze dann berechnet.
Damit lassen sich dann Ausdrücke wie: f(a,b)=2*a-5*b^2; f(3,4); oder einfach nur Rechnungen wie 5-(2*3) ausrechnen.
Nun soll hinzukommen, dass eine C++ Routine die Ableitung an einer bestimmten Stelle ausrechnet. Also f(x)=x^2; f'(2); oder Ähnliches.
Das ganze soll über die JNI Schnittstelle implementiert werden.
Erste Aufgabe soll es sein, erstmal eine solche Ableitung an einer Stelle x0 zu berechnen in einer C++ Funktion. Da wir uns C++ jetzt selbst aneignen müssen bin ich ziemlich ratlos wie man in C++ "rechnet".
In Java kann ich einen String ja nur ausrechnen indem ich über Bäume iteriere und dann Funktionen im Listener aufrufe, die dann Ergebnise auf einen Stack pushen und verrechnen.
In C++ hab ich jetzt natürlich weder einen TreeWalker, noch Antlr4, noch einen Listener etc.
Gibt es eine Datenstruktur oder irgendwelche andere Verfahren um eine Funktion zu berechnen oder wie geht man das am besten an?
Denke wir sollen keine fertig implementieren Schnittstellen nehmen sondern sowas "händisch" machen.
Hoffe jemand hat da einen Ansatz
Grüße






