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 |