Autor Thema: >PURE C: Sinus/Cosinus mit Festpunktarithmetik in C  (Gelesen 14412 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.808
  • Rock'n'Roll is the thing - Jerry Lee is the king!
>PURE C: Sinus/Cosinus mit Festpunktarithmetik in C
« am: Sa 16.07.2011, 11:28:35 »
Hallo zusammen,

ich war auf der Suche nach etwas völlig anderem, fand dann aber einen schönen Source um Sinus und Cosinus in Integerdarstellung zu berechnen.

Dieser Source war in antikem K&R C verfasst,d en ich dann mal auf C99 Niveau verbessert habe.
Mit PureC oder AHCC habe ich den Source noch nicht übersetzt, aber ich denke das es läuft.

Die Funktionswerte sind um den Faktor 0x7FFF überhöht, also mit 1/32767 pro Bit skaliert.
Die Abweichung gegen eine float Implementierung, z.B. auf dem PC kann mit dem beiligenden Unittest geprüft werden. Es gibt Ungenauigkeiten, aber ich denke für Spiele- und Demoprogrammierung auf dem ST oder Falcon ohne FPU langt das dicke.

Der Source müsste sich auch sehr leicht nach Assembler übertragen lassen.

Achja, wem stdint.h fehlt, sollte das nachrüsten, oder zu aller Not die Includes ausbauen und stattdessen sinngemäß ein typedef signed short int16_t; auf dem Atari verwenden.

Siehe auch http://en.wikipedia.org/wiki/Stdint.h

Happy Coding!
ssb

PS: Das .PDF File im Anhang nach .ZIP umbenennen ;)
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee