fpgetround(3C) fpgetround(3C)
NAME
fpgetround, fpsetround, fpgetmask, fpsetmask, fpgetsticky, fpsetsticky
- IEEE-Gleitkomma-Umgebung steuern
SYNTAX
include <ieeefp.h>
fprnd fpgetround(void);
fprnd fpsetround(fprnd rnddir);
fpexcept fpgetmask(void);
fpexcept fpsetmask(fpexcept mask);
fpexcept fpgetsticky(void);
fpexcept fpsetsticky(fpexcept sticky);
BESCHREIBUNG
Es gibt fünf Gleitkomma-Ausnahmen: Dividieren durch Null, Überlauf,
Unterlauf ungenaues Ergebnis und ungültige Funktion. Bei Auftreten
einer Gleitkomma-Ausnahmen wird das entsprechende Sticky-Bit gesetzt
(1), und wenn das Mask-Bit eingeschaltet ist (1), wird eine Unterbre-
chung erzeugt. Mit diesen Funktionen kann der Benutzer das Verhalten
bei Auftreten einer dieser Ausnahmen sowie den Ab-/Aufrundemodus für
Gleitkommaoperationen ändern.
FPXINV /* invalid operation exception */
FPXOFL /* overflow exception */
FPXUFL /* underflow exception */
FPXDZ /* divide-by-zero exception */
FPXIMP /* imprecise (loss of precision) */
FPRN /* round to nearest representative number */
FPRP /* round to plus infinity */
FPRM /* round to minus infinity */
FPRZ /* round to zero (truncate) */
fpgetround() gibt den aktuellen Rundungsmodus zurück.
fpsetround() setzt den Rundungsmodus und gibt den vorherigen Rundungs-
modus zurück.
fpgetmask() gibt die aktuellen Ausnahme-Mask-Bits zurück.
fpsetmask() setzt die Ausnahme-Mask-Bits und gibt die vorherige Ein-
stellung zurück.
fpgetsticky() gibt die aktuellen Ausnahme-Sticky-Bits zurück.
fpsetsticky() setzt (löscht) die Ausnahme-Sticky-Bits und gibt die
vorherige Einstellung zurück.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
fpgetround(3C) fpgetround(3C)
Die Standardumgebung ist wie folgt: Der Rundungsmodus ist auf round to
nearest (FPRN) gesetzt, und alle Unterbrechungen sind abgeschaltet.
Einzelne Bits können durch die in ieeefp.h definierten Konstanten
untersucht werden.
HINWEISE
fpsetsticky() ändert alle Sticky-Bits. fpsetmask() ändert alle Mask-
Bits. fpsetmask() löscht das Sticky-Bit entsprechend den freigegebenen
Unterbrechungen.
Für C ist ein Abschneiden ("Round to zero") für Umwandlungen von
Gleitkomma- in Ganzzahldarstellung erforderlich. Der aktuelle Run-
dungsmodus hat keinen Einfluß auf diese Umwandlungen.
Sie müssen nach einem Anhalten wegen Gleitkomma-Unterbrechung das
Sticky-Bit löschen, um fortzufahren. Wird das Sticky-Bit nicht vor dem
Auftreten des nächsten Anhaltens gelöscht, wird möglicherweise ein
falscher Ausnahmetyp gemeldet.
SIEHE AUCH
isnan(3C).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98