Provided by: manpages-pl-dev_20060617-3_all bug

NAZWA

       feclearexcept,    fegetexceptflag,    feraiseexcept,   fesetexceptflag,
       fetestexcept, fegetenv, fegetround, feholdexcept, fesetround, fesetenv,
       feupdateenv - zaokrglanie zmiennoprzecinkowe i obsluga wyjtkow w C99

SK/LADNIA

       #include <fenv.h>

       void feclearexcept(int excepts);
       void fegetexceptflag(fexcept_t *flagp, int excepts);
       void feraiseexcept(int excepts);
       void fesetexceptflag(const fexcept_t *flagp, int excepts);
       int fetestexcept(int excepts);

       int fegetround(void);
       int fesetround(int rounding_mode);

       void fegetenv(fenv_t *envp);
       int feholdexcept(fenv_t *envp);
       void fesetenv(const fenv_t *envp);
       void feupdateenv(const fenv_t *envp);

OPIS

       Tych   jedenacie  funkcji  zdefiniowano  w  C99.  Realizuj  one  obslug
       zmiennoprzecinkowego zaokrglania i wyjtkow  (nadmiar,  dzielenie  przez
       zero, itp.).

   Wyjtki
       Wyjtek  DivideByZero  (dzielenie  przez  zero)  wystpuje  gdy dokladnym
       wynikiem operacji na liczbach skoczonych jest nieskoczono.

       Wyjtek Overflow (nadmiar) wystpuje gdy wynik musi by przedstawiony jako
       liczba  zmiennoprzecinkowa,  ale  ma  on (duo) wiksz warto bezwzgldn ni
       najwiksza    (skoczona)    liczba     zmiennoprzecinkowa     posiadajca
       przedstawienie.

       Wyjtek  Underflow  (niedomiar) wystpuje gdy wynik musi by przedstawiony
       jako liczba zmiennoprzecinkowa, ale ma on mniejsz  warto  bezwzgldn  ni
       najmniejsza   dodatnia   znormalizowana   iczba  zmiennoprzecinkowa  (i
       nastpilaby  dua  utrata  precyzji,  gdyby  przedstawi  go  jako   liczb
       nieznormalizowan).

       Wyjtek  Inexact  (niedokladny)  wystpuje gdy wynik operacji zaokrglenia
       nie jest rowny wynikowi o  nieskoczonej  precyzji.  Moe  on  towarzyszy
       wystpieniu Overflow lub Underflow.

       Wyjtek  Invalid  (nieprawidlowy)  wystpuje  gdy  operacja nie ma dobrze
       zdefiniowanego wyniku, jak  dla  0/0,  nieskoczono  -  nieskoczono  lub
       sqrt(-1).

   Obs/luga wyjtk'ow
       Wyjtki  s  reprezentowane  na dwa sposoby: jako pojedyncze bity (wyjtek
       obecny/nieobecny),  ktore  to  bity  odpowiadaj  w  pewien  zaleny   od
       implementacji  sposob  pozycjom  bitowym  w  liczbie calkowitej, i jako
       nieprzezroczysta  struktura,  ktora  moe  zawiera  wicej  informacji  o
       wyjtkach (zapewne adres kodu, gdzie wyjtek wystpil).

       Kade   z   makr   FE_DIVBYZERO,  FE_INEXACT,  FE_INVALID,  FE_OVERFLOW,
       FE_UNDERFLOW  jest  zdefiniowane,  gdy  implementacja  wspiera   obslug
       odpowiedniego  wyjtku,  i  wowczas  definiuje ono odpowiedni(e) bit(y),
       umoliwiajc wywolywanie funkcji obslugi  wyjtkow,  np.  podajc  argument
       calkowity  FE_OVERFLOW|FE_UNDERFLOW.   Dla  innych  wyjtkow  moe nie by
       wsparcia.  Makro  FE_ALL_EXCEPT  jest  bitowym  OR   wszystkich   bitow
       odpowiadajcym wspieranym wyjtkom.

       Funkcja feclearexcept zeruje wspierane wyjtki reprezentowane przez bity
       jej argumentu.

       Funkcja  fegetexceptflag  umieszcza   odwzorowanie   stanu   znacznikow
       przypisanych   wyjtkom   reprezentowanym   przez   argument  excepts  w
       nieprzezroczystym obiekcie *flagp.

       Funkcja feraiseexcept zglasza  wspierane  wyjtki  reprezentowane  przez
       bity excepts.

       Funkcja fesetexceptflag ustawia pelny stan o wartoci *flagp dla wyjtkow
       reprezentowanych przez excepts.  Warto ta musi by otrzymana jako  wynik
       wczeniejszego   wywolania   fegetexceptflag   z   ostatnim   argumentem
       zawierajcym wszystkie bity excepts.

       Funkcja fetestexcept zwraca slowo z ustawionymi tymi  bitami,  ktore  s
       ustawione  w argumencie excepts, i dla ktorych jest aktualnie ustawiony
       odpowiedni wyjtek.

   Rounding
       Kade z makr FE_DOWNWARD, FE_TONEAREST,  FE_TOWARDZERO,  FE_UPWARD  jest
       zdefiniowane,   gdy   implementacja  wspiera  pobieranie  i  ustawianie
       odpowiedniego kierunku zaokrglania.

       Funkcja  fegetround  zwraca  makro  odpowiedajce   aktualnemu   trybowi
       zaokrglania.

       Funkcja  fesetround ustawia tryb zaokrglania podany jako jej argument i
       zwraca zero gdy si powiedzie.

   rodowisko zmiennoprzecinkowe
       Cale rodowisko zmiennoprzecinkowe, wlczajc  w  to  tryby  sterowania  i
       znaczniki  stanu, moe by obslugiwane jako jeden nieprzezroczysty obiekt
       typu fenv_t.  rodowisko domylne jest okrelone  przez  FE_DFL_ENV  (typu
       const  fenv_t *).  S to ustawienia rodowiska przy uruchomieniu programu
       i s one zdefiniowane przez  ISO  C  jako:  zaokrglanie  do  najbliszej,
       wszystkie   wyjtki  wyzerowane  i  tryb  nieprzerywany  (kontynuacja  w
       przypadku wystpienia wyjtku).

       Funkcja fegetenv  zachowuje  aktualne  rodowisko  zmiennoprzecinkowe  w
       obiekcie *envp.

       Funkcja   feholdexcept  robi  to  samo,  a  nastpnie  zeruje  wszystkie
       znaczniki wyjtkow i ustawia tryb nieprzerywany (kontynuacja w przypadku
       wystpienia wyjtku), o ile to moliwe. Zwraca zero, gdy si powiedzie.

       Funkcja fesetenv odtwarza rodowisko zmiennoprzecinkowe z obiektu *envp.
       Obiekt ten musi by  znany  jako  poprawny,  np.  jako  wynik  wywolania
       fegetenv  lub feholdexcept lub jako rowny FE_DFL_ENV.  To wywolanie nie
       zglasza wyjtkow.

       Funkcja feupdateenv instaluje rodowisko zmiennoprzecinkowe  odwzorowane
       w  obiekcie  *envp,  poza  tym,  e  aktualnie  zgloszone  wyjtki  nie s
       zerowane.  Po jej  wywolaniu,  zgloszone  wyjtki  bd  bitowym  OR  tych
       zgloszonych  wczeniej  oraz  zawartych w *envp.  Jak poprzednio, obiekt
       *envp musi by znany jako poprawny.

SZCZEG'O/LY GNU

       O ile  to  moliwe,  biblioteka  GNU  C  definiuje  makro  FE_NOMASK_ENV
       odwzorowujce  rodowisko,  w  ktorym  kade  zgloszenie  wyjtku  powoduje
       wystpienie pulapki. Mona sprawdza warto tego  makra  za  pomoc  #ifdef.
       Jest  ono  zdefiniowane  jedynie,  gdy  zdefiniowane  jest _GNU_SOURCE.
       Standard C99 nie okrela sposobu ustawiania poszczegolnych bitow w masce
       zmiennoprzecinkowej,  np.  aby  przechwytywa  tylko  wybrane znaczniki.
       glibc 2.2 bdzie  obslugiwa  funkcje  feenableexcept  i  fedisableexcept
       ustawiajce   wybrane   znaczniki  zmiennoprzecinkowe  oraz  fegetexcept
       odpytujc o stan.

       int feenableexcept (int excepts);
       int fedisableexcept (int excepts);
       int fegetexcept (void);

       Funkcje feenableexcept i fedisableexcept wlczaj (wylczaj)  pulapkowanie
       poszczegolnych   wyjtkow   odwzorowanych  w  przez  excepts  i  zwracaj
       poprzednie ustawienie pulapkowania wyjtkow, jeli  si  powiod,  a  -1  w
       pozostalych   przypadkach.    Funkcja   fegetexcept   zwraca   aktualne
       ustawienie pulapkowania wyjtkow.

ZGODNE Z

       IEC 60559 (IEC 559:1989), ANSI/IEEE 854, ISO C99 (ISO/IEC 9899:1999).

INFORMACJE O T/LUMACZENIU

       Powysze tlumaczenie pochodzi z nieistniejcego ju  Projektu  Tlumaczenia
       Manuali  i  moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
       opisem a rzeczywistym zachowaniem  opisywanego  programu  lub  funkcji,
       prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.