Scroll to navigation

pow(3) Library Functions Manual 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:

errno este configurată la EDOM. Se generează o excepție de virgulă mobilă nevalidă (FE_INVALID).
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).
errno este configurată la ERANGE. Se generează o excepție de depășire în virgulă mobilă (FE_OVERFLOW).
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 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.

2 mai 2024 Pagini de manual de Linux 6.9.1