Subversion Repositories wimsdev

Rev

Rev 12676 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 reyssat 1
!if $wims_read_parm!=slib_header
13587 bpr 2
  !goto proc
20 reyssat 3
!endif
4158 bpr 4
 
4351 bpr 5
slib_author=Bernadette, Perrin-Riou
4158 bpr 6
 
20 reyssat 7
slib_example=6,3\
8
6,8\
9
6
3265 bpr 10
slib_require=pari
20 reyssat 11
!exit
12
 
13
:proc
14
!reset slib_m
15
!distribute item $wims_read_parm into slib_n, slib_m
16
 
17
!default slib_m =!randint $slib_n, $[min(floor(5*$slib_n/2), $slib_n*($slib_n-1)/2)]
18
 
19
slib_liste = !values 1 for x=1 to $slib_m
20
slib_liste0=!values 0 for x=1 to $slib_n*($slib_n-1)/2 -$slib_m
21
slib_liste =!shuffle $slib_liste,$slib_liste0
22
slib_G= !exec pari slib_n =$slib_n;slib_ liste =[$slib_liste];\
23
slib_M=matrix(slib_n,slib_n,slib_i,slib_j, if(slib_i < slib_j, slib_liste[slib_n*(slib_n-1)/2-(slib_n-slib_i+1)*(slib_n-slib_i)/2 +slib_j-slib_i]));\
8560 bpr 24
matrix(slib_n,slib_n,slib_i,slib_j, if(slib_i<slib_j,slib_M[slib_i,slib_j],slib_M[slib_j,slib_i]))
20 reyssat 25
 
26
!!On rend le graphe connexe
27
slib_debut=1
28
 
29
:debut
30
 
31
!read slib/graph/distance [$slib_G]
32
slib_D=$slib_out
33
 
34
!if -1 notin $slib_D
12676 bpr 35
  !goto end
20 reyssat 36
!endif
8560 bpr 37
slib_D=!translate internal ; to $\
20 reyssat 38
$  in $slib_D
39
!for slib_c=$slib_debut to $slib_n
12676 bpr 40
  slib_ligne=!line $slib_c of $slib_D
41
  !if -1 isin $slib_ligne
42
    slib_J=!positionof item -1 in $slib_ligne
43
    !for slib_JJ in $slib_J
44
      slib_G=!exec pari slib_N=Mat([$slib_G]);slib_N[$slib_c,$slib_JJ]=1;slib_N[$slib_JJ,$slib_c]=1;slib_N
45
    !next slib_JJ
46
    slib_debut=$[$slib_c+1]
47
    !goto debut
48
  !endif
20 reyssat 49
!next slib_c
8321 bpr 50
 
20 reyssat 51
:end
52
 
53
slib_out=$slib_G