Denken Sie daran, dass C eine alte Sprache ist und dass FPUs ein relativ neues Phänomen sind. Ich sah C zuerst auf 8-Bit-Prozessoren, wo es viel Arbeit war, selbst eine 32-Bit-Integer-Arithmetik durchzuführen. Viele dieser Implementierungen hatten nicht einmal eine Gleitkomma-Mathematikbibliothek verfügbar!
Selbst auf den ersten 68000-Maschinen (Mac, Atari ST, Amiga) waren Gleitkomma-Coprozessoren oft teure Erweiterungen.
Um all diese Gleitkomma-Mathematik zu machen, benötigten Sie eine ziemlich umfangreiche Bibliothek. Und die Mathematik würde langsam sein. Also haben Sie Floats selten verwendet. Sie haben versucht, alles mit Ganzzahlen oder skalierten Ganzzahlen zu machen. Wenn Sie math.h einbeziehen mussten, haben Sie die Zähne zusammengebissen. Oft haben Sie Ihre eigenen Näherungen und Suchtabellen geschrieben, um sie zu vermeiden.
Es gab lange Zeit Kompromisse. Manchmal gab es konkurrierende Mathematikpakete namens "fastmath" oder ähnliches. Was ist die beste Lösung für Mathematik? Wirklich genau, aber langsam? Ungenau, aber schnell? Große Tabellen für trigonometrische Funktionen? Es war nicht, bis Coprozessoren garantiert im Computer waren, dass die meisten Implementierungen offensichtlich wurden. Ich stelle mir vor, dass es irgendwo einen Programmierer gibt, der gerade an einem eingebetteten Chip arbeitet und entscheiden muss, ob er die Mathematikbibliothek einbezieht, um ein mathematisches Problem zu lösen.
Deshalb war Mathematik nicht standardisiert. Viele oder vielleicht die meisten Programme haben nicht einen einzigen Float verwendet. Wenn FPUs immer verfügbar gewesen wären und Floats und Doubles immer preiswert zu handhaben gewesen wären, wäre es zweifellos eine "stdmath" gegeben.
0 Stimmen
Verwandt: GCC -lm -lz -lrt-Optionen - wovon handeln sie?