1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
DOUBLE PRECISION FUNCTION fpser(a,b,x,eps)
C-----------------------------------------------------------------------
C
C EVALUATION OF I (A,B)
C X
C
C FOR B .LT. MIN(EPS,EPS*A) AND X .LE. 0.5.
C
C-----------------------------------------------------------------------
C
C SET FPSER = X**A
C
C .. Scalar Arguments ..
DOUBLE PRECISION a,b,eps,x
C ..
C .. Local Scalars ..
DOUBLE PRECISION an,c,s,t,tol
C ..
C .. External Functions ..
DOUBLE PRECISION exparg
EXTERNAL exparg
C ..
C .. Intrinsic Functions ..
INTRINSIC abs,dlog,exp
C ..
C .. Executable Statements ..
fpser = 1.0D0
IF (a.LE.1.D-3*eps) GO TO 10
fpser = 0.0D0
t = a*dlog(x)
IF (t.LT.exparg(1)) RETURN
fpser = exp(t)
C
C NOTE THAT 1/B(A,B) = B
C
10 fpser = (b/a)*fpser
tol = eps/a
an = a + 1.0D0
t = x
s = t/an
20 an = an + 1.0D0
t = x*t
c = t/an
s = s + c
IF (abs(c).GT.tol) GO TO 20
C
fpser = fpser* (1.0D0+a*s)
RETURN
END
|