Ob eine solche Optimierung sinnvoll ist, sieht man leider oft erst, nachdem man sie implementiert hat, denn sie ist von vielen Faktoren abhängig: wie teuer ist eine Multiplikation gegen eine Addition, etc.Zitat von sep
Wie GCC mit doubles und floates umgeht siehst du in den Quellen von GCC in
gcc/libgcc2.c
gcc/config/avr/libgcc.S
gcc/config/avr/avr.md
Solche Optimierungen macht avr-gcc AFAIK nicht und IMHO würd ich eher versuchen gute Routinen für die zu berechnenden Funktionen zu finden als an den Basics rumzuschrauben.
tan würde ich nicht direkt implementieren, sonder als tan=sin/cos wegen der Pole von tan.
Den atan via ln zu berechnen ginge dann weiter ins Complexe zu artanh, weil ln grottig konvergiert.
Der OP hat auch nix darüber gesagt, auf welcher Maschine er überhaupt ist. "auf einem uC" kann ja alles sein...
Lesezeichen