Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ frexp(3C) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cc(1)

math(5)

frexp(3C)                                                         frexp(3C)

NAME
     frexp, ldexp, logb, ilogb, nextafter, scalb, modf, modff - Teile von
     Gleitkommazahlen bearbeiten

SYNTAX
     #include <math.h>

     double frexp(double num, int *exp);

     double ldexp(double x, int exp);

     double logb(double x);

     int ilogb(double x);

     double nextafter(double x, double y);

     double scalb(double x, double n);

     double modf(double x, double *iptr);

     float modff(float value, float *iptr);

BESCHREIBUNG
     frexp() zerlegt eine Gleitkommazahl in einen normalen Bruch und eine
     ganzzahlige Potenz von 2. Der ganzzahlige Exponent wird im Objekt int
     gespeichert, auf das exp zeigt.

     ldexp() gibt die Größe x * 2^exp zurück.

     scalb() berechnet x * r^n, wobei r die Basis der von der Maschine ver-
     wendeten Gleitkomma-Arithmetik ist. Wenn r gleich 2 ist, entspricht
     scalb() der Funktion ldexp().

     logb() berechnet den Exponenten von x, den ganzzahligen Teil aus
     logr|x|, als einen Gleitkommawert mit Vorzeichen für x ungleich Null,
     wobei r die Basis der von der Maschine verwendeten Gleitkomma-
     Arithmetik ist.

     ilogb() gibt den Exponentialteil von x zurück. Formal ist der Rückga-
     bewert der ganzzahlige Teil aus logr|x|, angegeben als ein ganzzahli-
     ger Wert mit Vorzeichen für x ungleich Null, wobei r die Basis der von
     der Maschine verwendeten Gleitkomma-Arithmetik ist.

     Der Aufruf ilogb(x) entspricht (int)logb(x).

     modf() und modff() (Version für einfach genaue Gleitkommazahlen) geben
     den Bruchteil des Wertes x zurück und speichern den ganzzahligen Teil
     indirekt an der Stelle, auf die iptr zeigt. Beide Teile erhalten das
     Vorzeichen von x.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

frexp(3C)                                                         frexp(3C)

     nextafter() liefert die nächste auf x folgende, darstellbare Gleitkom-
     mazahl in der Richtung von y. Das bedeutet, wenn y kleiner als x ist,
     wird die größte darstellbare Gleitkommazahl kleiner als x geliefert.

ERGEBNIS
     Die Funktion frexp() gibt den Wert x zurück, so daß x ein double mit
     der Größe im Intervall [½, 1) oder 0 ist, und num dem Wert x mal 2
     erhoben zur Potenz *exp entspricht. Wenn num gleich 0 ist, sind beide
     Teile des Ergebnisses 0. Wenn num gleich NaN ist, wird NaN zurückgege-
     ben, errno möglicherweise auf EDOM gesetzt und der Wert von *exp ist
     nicht spezifiziert. Wenn num gleich +Inf ist, wird num zurückgegeben,
     errno möglicherweise auf EDOM gesetzt und der Wert von *exp ist nicht
     spezifiziert.

     Wenn ldexp() einen Überlauf verursacht - und wenn das Programm mit
     -kansi oder -kosi kompiliert wurde -, wird HUGEVAL (in math.h defi-
     niert) zurückgegeben (je nach dem Vorzeichen des Werts x), und errno
     wird auf ERANGE gesetzt. [Wenn mit der Option -kcc (Standard) kompi-
     liert wurde, wird HUGE anstelle von HUGEVAL zurückgegeben.] Wenn
     ldexp() einen Unterlauf verursachen würde, wird Null zurückgegeben und
     errno auf ERANGE gesetzt. Wenn der Eingabewert x für ldexp() NaN ist,
     wird die Eingabe zurückgegeben, und errno wird auf EDOM gesetzt.

     Nach erfolgreicher Ausführung gibt die Funktion scalb() x * r^n
     zurück. Würde der korrekte Wert zu einem Überlauf führen, gibt scalb()
     den Wert +HUGEVAL (je nach dem Vorzeichen von x) zurück und setzt
     errno auf ERANGE. Würde der korrekte Wert zu einem Unterlauf führen,
     gibt scalb() den Wert 0 zurück und setzt errno auf ERANGE. Die Funk-
     tion scalb() gibt x zurück, wenn x gleich +Inf ist. Wenn x oder n
     gleich NaN ist, gibt scalb() den Wert NaN zurück und setzt errno mög-
     licherweise auf EDOM.

     Nach erfolgreicher Ausführung gibt die Funktion logb() den Exponenten
     von x zurück. Wenn x gleich 0.0 ist, gibt logb() den Wert -HUGEVAL
     zurück und setzt errno auf EDOM. Wenn x gleich +Inf ist, gibt logb()
     +Inf zurück. Wenn x gleich NaN ist, gibt logb() den Wert NaN zurück
     und setzt errno möglicherweise auf EDOM.

     Nach erfolgreicher Ausführung gibt ilogb() den Exponentialteil von x
     zurück. Wenn x gleich 0 oder NaN ist, gibt ilogb() den Wert INTMIN
     zurück. Wenn x gleich +Inf ist, gibt ilogb() den Wert INTMAX zurück.

     Ist der Eingabewert x für nextafter() positiv oder negativ unendlich,
     wird der Eingabewert zurückgeliefert und errno wird auf EDOM gesetzt.
     Eine Überlauf- und Ungenauigkeitsausnahme wird erzeugt, wenn x endlich
     ist, aber das Ergebnis von nextafter(x, y) nicht. Liegt
     nextafter(x, y) genau zwischen +2^-1022, dann wird eine Unterlauf- und
     Ungenauigkeitsausnahme erzeugt. In beiden Fällen wird errno auf ERANGE
     gesetzt.

HINWEISE
     Die Funktion modff() ist nur im ANSI-Modus zu verwenden.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

frexp(3C)                                                         frexp(3C)

SIEHE AUCH
     cc(1), math(5).




















































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026