s14ae returns the value of the kth derivative of the psi function ψx for real x and k=0,1,,6.

Syntax

C#
public static double s14ae(
	double x,
	int k,
	out int ifail
)
Visual Basic
Public Shared Function s14ae ( _
	x As Double, _
	k As Integer, _
	<OutAttribute> ByRef ifail As Integer _
) As Double
Visual C++
public:
static double s14ae(
	double x, 
	int k, 
	[OutAttribute] int% ifail
)
F#
static member s14ae : 
        x : float * 
        k : int * 
        ifail : int byref -> float 

Parameters

x
Type: System..::..Double
On entry: the argument x of the function.
Constraint: x must not be ‘too close’ (see [Error Indicators and Warnings]) to a non-positive integer.
k
Type: System..::..Int32
On entry: the function ψkx to be evaluated.
Constraint: 0k6.
ifail
Type: System..::..Int32%
On exit: ifail=0 unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).

Return Value

s14ae returns the value of the kth derivative of the psi function ψx for real x and k=0,1,,6.

Description

s14ae evaluates an approximation to the kth derivative of the psi function ψx given by
ψkx=dkdxkψx=dkdxkddxlogeΓx,
where x is real with x0,-1,-2, and k=0,1,,6. For negative noninteger values of x, the recurrence relationship
ψkx+1=ψkx+dkdxk1x
is used. The value of -1k+1ψkxk! is obtained by a call to s14ad, which is based on the method PSIFN in Amos (1983).
Note that ψkx is also known as the polygamma function. Specifically, ψ0x is often referred to as the digamma function and ψ1x as the trigamma function in the literature. Further details can be found in Abramowitz and Stegun (1972).

References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications
Amos D E (1983) Algorithm 610: A portable FORTRAN subroutine for derivatives of the psi function ACM Trans. Math. Software 9 494–502

Error Indicators and Warnings

Errors or warnings detected by the method:
ifail=1
On entry,k<0,
ork>6,
orx is ‘too close’ to a non-positive integer. That is, absx-nintx<machine precision×nintabsx.
ifail=2
The evaluation has been abandoned due to the likelihood of underflow. The result is returned as zero.
ifail=3
The evaluation has been abandoned due to the likelihood of overflow. The result is returned as zero.
ifail=-9000
An error occured, see message report.

Accuracy

All constants in s14ad are given to approximately 18 digits of precision. If t denotes the number of digits of precision in the floating-point arithmetic being used, then clearly the maximum number in the results obtained is limited by p=mint,18. Empirical tests by Amos (1983) have shown that the maximum relative error is a loss of approximately two decimal places of precision. Further tests with the function -ψ0x have shown somewhat improved accuracy, except at points near the positive zero of ψ0x at x=1.46, where only absolute accuracy can be obtained.

Parallelism and Performance

None.

Further Comments

None.

Example

This example evaluates ψ2x at x=2.5, and prints the results.

Example program (C#): s14aee.cs

Example program data: s14aee.d

Example program results: s14aee.r

See Also