Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

C-Bibliotheksfunktionen, die IEEE-Gleitpunktzahlen unterstützen

&pagelevel(4)&pagelevel

Im C-Laufzeitsystem gibt es zu jeder Funktion, die mit Gleitpunktzahlen arbeitet oder eine Gleitpunktzahl zurückliefert,

  • eine Implementierung der Funktion mit /390-Arithmetik,

  • eine Implementierung der Funktion mit IEEE-Arithmetik,

  • ein Makro-Define, das die Originalfunktion (/390-Funktion) auf die zugehörige IEEE-Funktion abbildet.

Prototyp einer IEEE-Funktion und zugehöriges Define sind in derselben Include-Datei abgelegt, in der auch die korrespondierende Originalfunktion deklariert ist. Dies hat den Vorteil, dass, außer ggf. <ieee_390.h> (siehe "Explizite Konvertierung von Gleitpunktzahlen"), für die Nutzung der IEEE-Gleitpunkt-Arithmetik keine zusätzlichen Include-Dateien benötigt werden.

Namen der IEEE-Funktionen

Die Namen der IEEE-Funktionen sind nach folgender Syntax aufgebaut:

__originalfunktion_ieee()

Dabei ist für originalfunktion der Name der Originalfunktion einzusetzen.

Die IEEE-Variante von sin() beispielsweise lautet __sin_ieee().

C-Bibliotheksfunktionen, zu denen es eine IEEE-Funktion gibt

Zu folgenden C-Bibliotheksfunktionen gibt es jeweils eine IEEE-Variante:

acos

asin

atan

atan2

atof

ceil

cos

cosh

difftime

difftime64   

ecvt

erf

erfc

exp

expm1

fabs

fcvt

floor

floorf

floorl

fmod

fprintf

frexp

fscanf

gamma

gcvt

hypot

j0

j1

jn

ldexp     

lgamma 

llrintf     

llrintf

llrintl

llround   

llroundf

llroundl

log

log10

log1p

lrint

lrintf

lrintl

lround

lroundf

lroundl     

modf

modff

modfl

pow

printf

rint

rintf

rintl

round

roundf

roundl

scanf

sin

sinh

snprintf

sprintf

sqrt

sscanf

strtod

strtof

strtold

tan

tanh

vfprintf

vfscanf

vprintf

vscanf

vsnprintf

vsprintf

vsscanf

y0

y1

yn





Für die folgenden Funktionen werden die IEEE-Prototypen nur im Sprachmodus C11 bzw. C++ 2017 generiert:

acosf

acosl

asinf

asinl

atanf

atanl

atan2f

atan2l

atan2f

atan2l

copysign

copysignf

copysignl

cosf

cosl

coshf

coshl

erff

erfl

erfcf

erfcl

expf

expl

expm1f

expm1l

exp2

exp2f

exp2l

fabsf

fabsl

fdim

fdimf

fdiml

fmax

fmaxf

fmaxl

fmin

fminf

fminl

fmodf

fmodl

frexpf

frexpl

hypotf

hypotl

hypotf

ldexpf

ldexpl

lgammaf

lgammal

logf

logl

log10f

log10l

log1pf

log1pl

log2

log2f

log2l

nearbyint

log2l

nearbyintl

powf

powl

scalbln

scalblnf

scalblnl

scalbn

scalbnf

scalbnl

sinf

sinl

sinhf

sinhl

sqrtf

sqrtl

tanf

tanl

tanhf

tanhl

tgamma

tgammaf

tgammal

trunc

truncf

truncl