C/erf

< C
(Przekierowano z C/lgamma)

Deklaracja

edytuj
#include <math.h>

double      erf (double      x);
float       erff(float       x);
long double erfl(long double x);

double      erfc (double      x);
float       erfcf(float       x);
long double erfcl(long double x);

double      lgamma (double      x);
float       lgammaf(float       x);
long double lgammal(long double x);

double      tgamma (double      x);
float       tgammaf(float       x);
long double tgammal(long double x);

Argumenty

edytuj
x
argumenty funkcji

Funkcje z przyrostkami "f" i "l" to inne wersje odpowiedniej funkcji bez przyrostka operujące na innych typach danych. Z tego powodu w poniższym opisie odwołanie do konkretnej funkcji będzie oznaczać odwołanie się do wszystkich 3 wersji.

Funkcje obliczają następujące wartości:

 ,
  • erfc - wartość komplemetnarnej funkcji błędu w punkcie x, tj.  , czyli
 ,
  • lgamma - wartość logarytmu naturalnego z wartości bezwzględnej wartości funkcji gamma, tj.  ,
  • tgamma - wartość funkcji gamma w punkcie x, tj.
 .

Wartość zwracana

edytuj

Wartości odpowiednich funkcji zgodnie z opisem powyżej.

Ponadto, jeżeli wystąpi nadmair funkcja zwraca w wyniku HUGE_VAL z odpowiednim znakiem i ustawia wartość zmeinnej errno na ERANGE. Jeśli wystąpi niedomiar funkcja w wyniku zwraca zero, a to czy do zmiennej errno zostanie zapisana wartość ERANGE zależy od implementacji.

Przykład użycia

edytuj

Dystrybuanta rozkładu normalnego o wartości oczekiwanej równej zero i wariancji równej jeden 0.5*(1+erf(x/sqrt(2)))

Wszystkie opisane tutaj funkcje zostały wprowadzone dopiero w standardzie C99.

W przypadku użycia funkcji matematycznych może zaistnieć konieczność podania odpowiedneigo argumentu linkerowi, aby ten połączył program z biblioteką matematyczną. Np. na systemach GNU/Linux jest to -lm.