pow(3)

NUME
pow, powf, powl - funcții pentru operarea cu puteri

BIBLIOTECA
Biblioteca de matematică (libm, -lm)

SINOPSIS
#include <math.h>

double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);

    Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

powf(), powl():
    _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
        || /* Începând cu glibc 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

DESCRIERE
Aceste funcții returnează valoarea lui x ridicată la puterea lui y.

VALOAREA RETURNATĂ
În caz de succes, aceste funcții returnează valoarea lui x la puterea lui y.

Dacă rezultatul depășește intervalul, apare o eroare de interval, iar funcțiile returnează HUGE_VAL, HUGE_VALF sau HUGE_VALL, respectiv, cu semnul matematic corect.

Dacă rezultatul este sub limita inferioară și nu poate fi reprezentat, apare o eroare de interval și se returnează 0,0 cu semnul corespunzător.

Dacă x este +0 sau -0, iar y este un număr întreg impar mai mic decât 0, apare o eroare de polaritate (semn) și se returnează HUGE_VAL, HUGE_VALF sau HUGE_VALL, cu același semn ca x.

Dacă x este +0 sau -0, iar y este mai mic decât 0 și nu este un număr întreg impar, apare o eroare de polaritate (semn) și se returnează +HUGE_VAL, +HUGE_VALF sau +HUGE_VALL.

Dacă x este +0 (-0) și y este un număr întreg impar mai mare decât 0, rezultatul este +0 (-0).

Dacă x este 0, iar y este mai mare decât 0 și nu este un număr întreg impar, rezultatul este +0.

Dacă x este -1, iar y este infinit pozitiv sau infinit negativ, rezultatul este 1,0.

Dacă x este +1, rezultatul este 1,0 (chiar dacă y este NaN).

Dacă y este 0, rezultatul este 1,0 (chiar dacă x este NaN).

Dacă x este o valoare finită mai mică decât 0, iar y este un număr finit care nu este întreg, apare o eroare de domeniu și se returnează o valoare NaN.

Dacă valoarea absolută a lui x este mai mică decât 1, iar y este infinit negativ, rezultatul este infinit pozitiv.

Dacă valoarea absolută a lui x este mai mare decât 1, iar y este infinit negativ, rezultatul este +0.

Dacă valoarea absolută a lui x este mai mică decât 1, iar y este infinit pozitiv, rezultatul este +0.

Dacă valoarea absolută a lui x este mai mare decât 1, iar y este infinit pozitiv, rezultatul este infinit pozitiv.

Dacă x este infinit negativ, iar y este un număr întreg impar mai mic decât 0, rezultatul este -0.

Dacă x este infinit negativ, iar y este mai mic decât 0 și nu este un număr întreg impar, rezultatul este +0.

Dacă x este infinit negativ, iar y este un număr întreg impar mai mare decât 0, rezultatul este infinit negativ.

Dacă x este infinit negativ, iar y este mai mare decât 0 și nu este un număr întreg impar, rezultatul este infinit pozitiv.

Dacă x este infinit pozitiv, iar y este mai mic decât 0, rezultatul este +0.

Dacă x este infinit pozitiv și y este mai mare decât 0, rezultatul este infinit pozitiv.

Cu excepția cazurilor specificate mai sus, dacă x sau y este NaN, rezultatul este NaN.

ERORI-IEȘIRE
Consultați math_error(7) pentru informații despre cum să determinați dacă a apărut o eroare la apelarea acestor funcții.

Pot apărea următoarele erori:

Eroare de domeniu: „x” este negativ, iar „y” este un număr finit care nu este întreg.
    errno este configurată la EDOM. Se generează o excepție de virgulă mobilă nevalidă (FE_INVALID).

Eroare polaritate (semn): „x” este zero, iar „y” este negativ
    errno este configurată la ERANGE (dar vedeți secțiunea ERORI). Se generează o excepție de împărțire la zero în virgulă mobilă (FE_DIVBYZERO).

Eroare de interval: rezultatul este peste limita superioară
    errno este configurată la ERANGE. Se generează o excepție de depășire în virgulă mobilă (FE_OVERFLOW).

Eroare de interval: rezultatul este sub limita inferioară
    errno este configurată la ERANGE. Se generează o excepție de sub-limită în virgulă mobilă (FE_UNDERFLOW).

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
pow(), powf(), powl() | Siguranța firelor | MT-Safe

STANDARDE
C11, POSIX.1-2008.

ISTORIC
C99, POSIX.1-2001.

Varianta care returnează double este, de asemenea, conformă cu SVr4, 4.3BSD, C89.

ERORI

  Erori din trecut (acum remediate)
Înainte de glibc 2.28, pe unele arhitecturi (de exemplu, x86-64), pow() poate fi de peste 10.000 de ori mai lent pentru unele intrări decât pentru alte intrări similare. Aceasta afectează numai pow(), și nu powf() sau powl(). Această problemă a fost rezolvată în glibc 2.28.

O serie de erori din implementarea glibc a pow() au fost remediate în glibc 2.16.

În glibc 2.9 și versiunile anterioare, atunci când apare o eroare de polaritate, errno este configurată la EDOM în loc de ERANGE, care este recomandat de POSIX. Începând cu glibc 2.10, glibc face ceea ce trebuie.

În glibc 2.3.2 și versiunile anterioare, când apare o eroare de depășire a limitei superioare sau de depășire a limitei inferioare, funcția pow() a glibc generează o excepție falsă de tip număr în virgulă mobilă nevalid (FE_INVALID) în plus față de excepția de depășire a limitei superioare sau de depășire a limitei inferioare.

CONSULTAȚI ȘI
cbrt(3), cpow(3), sqrt(3)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.