Initial commit
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
FUNCTION betacf(a,b,x)
|
||||
INTEGER MAXIT
|
||||
REAL betacf,a,b,x,EPS,FPMIN
|
||||
PARAMETER (MAXIT=100,EPS=3.e-7,FPMIN=1.e-30)
|
||||
INTEGER m,m2
|
||||
REAL aa,c,d,del,h,qab,qam,qap
|
||||
qab=a+b
|
||||
qap=a+1.
|
||||
qam=a-1.
|
||||
c=1.
|
||||
d=1.-qab*x/qap
|
||||
if(abs(d).lt.FPMIN)d=FPMIN
|
||||
d=1./d
|
||||
h=d
|
||||
do 11 m=1,MAXIT
|
||||
m2=2*m
|
||||
aa=m*(b-m)*x/((qam+m2)*(a+m2))
|
||||
d=1.+aa*d
|
||||
if(abs(d).lt.FPMIN)d=FPMIN
|
||||
c=1.+aa/c
|
||||
if(abs(c).lt.FPMIN)c=FPMIN
|
||||
d=1./d
|
||||
h=h*d*c
|
||||
aa=-(a+m)*(qab+m)*x/((a+m2)*(qap+m2))
|
||||
d=1.+aa*d
|
||||
if(abs(d).lt.FPMIN)d=FPMIN
|
||||
c=1.+aa/c
|
||||
if(abs(c).lt.FPMIN)c=FPMIN
|
||||
d=1./d
|
||||
del=d*c
|
||||
h=h*del
|
||||
if(abs(del-1.).lt.EPS)goto 1
|
||||
11 continue
|
||||
pause 'a or b too big, or MAXIT too small in betacf'
|
||||
1 betacf=h
|
||||
return
|
||||
END
|
||||
Reference in New Issue
Block a user