specialfunctions_gamma

伽马特殊函数

gamma - 计算伽马函数

状态

实验性

描述

伽马函数定义为在整个复平面上(除了零和负整数)收敛的反常积分函数的解析延拓。

Fortran 2018 标准实现了单精度和双精度实型参数的内在伽马函数。此处,伽马函数扩展到整数和复数参数。具有整数参数的伽马函数的值是精确的。具有复数参数的伽马函数的值通过使用兰乔斯逼近在单精度和双精度中进行近似。

语法

result = gamma (x)

类别

元素函数

参数

x:应为正整数或复数类型。

返回值

该函数返回与输入参数类型和种类相同的返回值。

示例

program example_gamma
  use stdlib_kinds, only: dp, int64
  use stdlib_specialfunctions_gamma, only: gamma
  implicit none

  integer :: i
  integer(int64) :: n
  real :: x
  real(dp) :: y
  complex :: z
  complex(dp) :: z1

  i = 10
  n = 15_int64
  x = 2.5
  y = 4.3_dp
  z = (2.3, 0.6)
  z1 = (-4.2_dp, 3.1_dp)

  print *, gamma(i)              !integer gives exact result
! 362880

  print *, gamma(n)
! 87178291200

  print *, gamma(x)              ! intrinsic function call
! 1.32934034

  print *, gamma(y)              ! intrinsic function call
! 8.8553433604540341

  print *, gamma(z)
! (0.988054395, 0.383354813)

  print *, gamma(z1)
! (-2.78916032990983999E-005, 9.83164600163221218E-006)
end program example_gamma

log_gamma - 计算伽马函数的自然对数

状态

实验性

描述

在数学上,伽马函数的对数本身就是一个具有复数参数的特殊函数。由于不同的分支切割结构和不同的主分支,具有复数参数的伽马函数 log_gamma(z) 与 ln(Gamma(z)) 不同。两者具有相同的实部,但虚部不同。

Fortran 2018 标准实现了单精度和双精度实型参数绝对值的内在 log_gamma 函数。此处,log_gamma 函数扩展到整数和复数参数。具有复数参数的 log_gamma 函数的值通过使用斯特灵公式在单精度和双精度中进行近似。

语法

result = log_gamma (x)

类别

元素函数

参数

x:应为正整数或复数类型。

返回值

对于整数输入参数,该函数返回实数单精度值,而对于复数输入参数,则返回与之相同种类的复数值。

示例

program example_log_gamma
  use stdlib_kinds, only: dp
  use stdlib_specialfunctions_gamma, only: log_gamma
  implicit none

  integer :: i
  real :: x
  real(dp) :: y
  complex :: z
  complex(dp) :: z1

  i = 10
  x = 8.76
  y = x
  z = (5.345, -3.467)
  z1 = z
  print *, log_gamma(i)     !default single precision output
!12.8018274

  print *, log_gamma(x)     !intrinsic function call

!10.0942659

  print *, log_gamma(y)     !intrinsic function call

!10.094265528673880

  print *, log_gamma(z)     !same kind as input

!(2.56165648, -5.73382425)

  print *, log_gamma(z1)

!(2.5616575105114614, -5.7338247782852498)
end program example_log_gamma

log_factorial - 计算阶乘的对数

状态

实验性

描述

计算阶乘的自然对数,log(n!)

语法

result = log_factorial (x)

类别

元素函数

参数

x:应为正整数类型。

返回值

该函数返回单精度实数值。

示例

program example_log_factorial
  use stdlib_kinds, only: int64
  use stdlib_specialfunctions_gamma, only: lf => log_factorial
  implicit none
  integer :: n

  n = 10
  print *, lf(n)

! 15.1044130

  print *, lf(35_int64)

! 92.1361771
end program example_log_factorial

lower_incomplete_gamma - 计算下不完全伽马积分

状态

实验性

描述

下不完全伽马函数定义为

当 x < 0 时,p 必须为正整数。

语法

result = lower_incomplete_gamma (p, x)

类别

元素函数

参数

p:为正整数或实型参数。

x:为实型参数。

返回值

该函数返回与参数 x 种类相同的实数值。

示例

program example_ligamma
  use stdlib_specialfunctions_gamma, only: lig => lower_incomplete_gamma
  implicit none
  integer :: p
  real :: p1

  p = 3
  p1 = 2.3
  print *, lig(p, -5.0)

! -2521.02417

  print *, lig(p1, 5.0)

! 1.09715652
end program example_ligamma

upper_incomplete_gamma - 计算上不完全伽马积分

状态

实验性

描述

上不完全伽马函数定义为

当 x < 0 时,p 必须为正整数。

语法

result = upper_incomplete_gamma (p, x)

类别

元素函数

参数

p:为正整数或实型参数。

x:为实型参数。

返回值

该函数返回与参数 x 种类相同的实数值。

示例

program example_uigamma
  use stdlib_specialfunctions_gamma, only: uig => upper_incomplete_gamma
  implicit none

  print *, uig(3, -5.0)

!2523.02295

  print *, uig(2.3, 5.0)

!6.95552528E-02
end program example_uigamma

log_lower_incomplete_gamma - 计算下不完全伽马积分的自然对数

状态

实验性

描述

计算下不完全伽马函数绝对值的自然对数。

语法

result = log_lower_incomplete_gamma (p, x)

类别

元素函数

参数

p:为正整数或实型参数。

x:为实型参数。

返回值

该函数返回与参数 x 种类相同的实数值。

log_upper_incomplete_gamma - 计算上不完全伽马积分的对数

状态

实验性

描述

计算上不完全伽马函数绝对值的自然对数。

语法

result = log_upper_incomplete_gamma (p, x)

类别

元素函数

参数

p:为正整数或实型参数。

x:为实型参数。

返回值

该函数返回与参数 x 种类相同的实数值。

regularized_gamma_p - 计算伽马商P

状态

实验性

描述

正则化伽马商 P,也称为归一化不完全伽马函数,定义为

正则化伽马 P 的值在 [0, 1] 范围内。

语法

result = regularized_gamma_p (p, x)

类别

元素函数

参数

p:为正整数或实型参数。

x:为实型参数。

返回值

该函数返回与参数 x 种类相同的实数值。

示例

program example_gamma_p
  use stdlib_specialfunctions_gamma, only: rgp => regularized_gamma_p
  implicit none

  print *, rgp(3.0, 5.0)

! 0.875347972
end program example_gamma_p

regularized_gamma_q - 计算伽马商Q

状态

实验性

描述

正则化伽马商 Q 定义为

正则化伽马 Q 的值在 [0, 1] 范围内。

语法

result = regularized_gamma_q (p, x)

类别

元素函数

参数

p:为正整数或实型参数。

x:为实型参数。

返回值

该函数返回与参数 x 种类相同的实数值。

示例

program example_gamma_q
  use stdlib_specialfunctions_gamma, only: rgq => regularized_gamma_q
  implicit none

  print *, rgq(3.0, 5.0)

! 0.124652028
end program example_gamma_q