Hast du dich nie gefragt wie dein Taschenrechner das macht oder wie diese Funktionen (Sin,Cos ect.) aus Math.h funktioniert ? Ich schon.
Tja, die aus Math.h sind aber leider eben keine Reihenentwicklungen, sondern auf üblichen PCs ein Befehl des mathematischen Koprozessors - fsin, fcos, etc. Diese laufen mit Garantie schneller, als was Du da versuchst. Das war auch genau der Grund, warum ich gefragt habe.
Wenn es Dir um die Umsetzung als Übung geht, dann ist das eine gute Idee. Wenn Du damit aber glaubst Dein Programm schneller machen zu können oder die Mathe-Bibiothek nachbauen zu können, dann muss ich Dich leider enttäuschen.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
|
double sin ( double x )
{
__asm
{
fld qword ptr x
fsin
lea eax, x
fst qword ptr [eax]
}
}
|
Da ich im Studium auch einige Reihen-Entwicklungen für Sinus und Cosinus vorgestellt bekommen habe... öh nein... da habe ich mich danach nie gefragt, wie mein Taschenrechner das wohl macht. Und vorher ehrlich gesagt auch nicht.
Spannender als eine Sinus-Berechnung, die nur einem abstrakten Algorithmus aus Grundrechenarten folgt, ist für mich eher die Art, wie ein Computer die Grundrechenarten umsetzt. Alles darüber ist dann ja schon fast High-Level.