Subversion Repositories wimsdev

Rev

Rev 20 | Rev 3307 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

!if $wims_read_parm!=slib_header
 !goto proc
!endif
slib_title=Generation of a discrete law with nonnegative coefficients
slib_parms=2\
  2,m\
  2*m,N\
  R, K
 
slib_author=S. Lemaire and Bernadette Perrin-Riou
slib_out=random  data of m>=2 nonnegative real numbers  p_1,p_2,..p_m of\
sum 1 such that p_i*N are integers, (N>m). Outputs\
are real (K=R) or rational (K=Q)
slib_example= 5,10\
7,10,Q
slib_require=pari
:proc
!distribute item $wims_read_parm into slib_mm,slib_NN,slib_K

!default slib_mm=2
!default slib_NN=$[2*$slib_mm]
!default slib_K= R

!if $slib_mm = 1
 slib_out = 1
!else
 slib_cc = !values 1/$slib_mm for x = 1 to $[$slib_mm-1]

 !readproc slib/stat/multinomial 1, $[$slib_NN], $slib_cc
 slib_vv= $slib_out

 !if $slib_K issametext Q
  slib_out=!exec pari slib_a=Vec([$slib_vv]);vector($slib_mm, x,slib_a[x]/$slib_NN) 
 !else
  slib_out=!values x/$slib_NN for x in $slib_vv
 !endif 
!endif


slib_out =!trim $slib_out

Generated by GNU Enscript 1.6.5.90.