WSJT-X/lib/ftrsd/ftrsd_paper/prob.f90

42 lines
863 B
Fortran

program prob
implicit real*8 (a-h,o-z)
integer*8 binomial
integer x,s,XX,NN
real*8 hypergeo
character arg*8
nargs=iargc()
if(nargs.ne.4) then
print*,'Usage: prob x N X s'
print*,'Example: prob 35 63 40 40'
go to 999
endif
call getarg(1,arg)
read(arg,*) x
call getarg(2,arg)
read(arg,*) NN
call getarg(3,arg)
read(arg,*) XX
call getarg(4,arg)
read(arg,*) s
! print*,binomial(5, 3) ! 10
! print*,binomial(40, 19) ! 131282408400
write(*,1010) x,NN,XX,s
1010 format(//' x=',i2,' N=',i2,' X=',i2,' s=',i2)
write(*,1012)
1012 format(/' x P(x|N,X,s) P(>=x|N,X,s) '/ &
'-------------------------------')
hsum=0.d0
do ix=x,XX
h=hypergeo(ix,NN,XX,s)
hsum=hsum + h
write(*,1020) ix,h,hsum
1020 format(i3,2d13.4)
enddo
999 end program prob