Betriebssystem-Eigenschaften von RMOS3
8.9 C-Runtime-Bibliothek CRUN
Behandlung von speziellen 8087-Zahlenformaten
Alle speziellen Zahlenformate werden als Argumente von numerischen Funktionen
folgendermaßen behandelt:
NaNs (Not a Number)
Tritt ein NaN als Argument in einer numerischen Funktion auf, wird dieses NaN wieder
unverändert durch die Funktion zurückgegeben. Dieses Vorgehen ist konform zum ISO/IEC
DIS 9899–Standard. Ein NaN ist z.B. der Rückgabewert der Quadratwurzelfunktion, wenn
die Quadratwurzel aus einer negativen Zahl gezogen wird. Bei einem NaN als Argument
wird weder
INFs (Infinities)
INFs (Infinities) sind spezielle unendlich große Zahlen im ISO/IEC DIS 9899–Format zur
Darstellung von +∞ und -∞. +INF entsteht z.B. bei der Division von 1 durch 0 bei gesperrter
ZERO–Divide–Exception im Coprozessor. Dieser Wert kann dann als Argument an eine
numerische Bibliotheksfunktion gegeben werden. INFs werden entsprechend der
Definitionsbereiche behandelt. So ergibt beispielsweise
Denormals
Denormals sind sehr kleine Zahlen, die auf dem Coprozessor nicht mehr mit der vollen
Genauigkeit dargestellt werden können (wegen führender Nullen in der Mantisse). Diese
Zahlen werden von der CRUN–Bibliothek wie Null behandelt.
Unnormals
Unnormals sind Zahlen, die durch Weiterrechnen mit einer Denormal–Zahl entstehen. Sie
treten nur auf dem 8087 oder 80287 auf. Diese Zahlen könnten wieder ohne führende Nullen
in der Mantisse dargestellt werden, der numerische Coprozessor rechnet aber mit führenden
Nullen weiter. Unnormals entstehen auch, wenn ein Denormal in den Coprozessor geladen
wird.
In der CRUN–Bibliothek wird folgendes Vorgehen gewählt:
Ist das Argument ein Unnormal < 2
wird es normalisiert und
deutet auf Fehler im Anwenderprogramm hin.
Hinweis
Denormals und Unnormals < 2
Bibliothek wie Nullen behandelt. Unnormals > 2
normalerweise nicht entstehen. NaNs und INFs weisen auf fehlerhafte Ergebnisse in
vorangegangenen Berechnungen hin.
154
aufgerufen, noch
matherr
mit DOMAIN aufgerufen. Das Auftreten großer Unnormals
matherr
treten sehr selten auf und werden von der CRUN-
–63
gesetzt.
errno
atan(+INF)
, wird es wie Null behandelt. Ist das Unnormal > 2
–63
sind extrem selten und dürften
–63
Bedienhandbuch, 07/2012, A5E03692290-01
= π/2
.
–63
RMOS3 V3.50 Benutzerhandbuch
,