Rev 4351 | Rev 12676 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4351 | Rev 11865 | ||
---|---|---|---|
Line 4... | Line 4... | ||
4 | 4 | ||
5 | slib_author=Bernadette, Perrin-Riou |
5 | slib_author=Bernadette, Perrin-Riou; Dominique, Bernardi |
6 | - | ||
- | 6 | slib_example=[0,0,1,1,1,1,0,0;0,0,1,1,1,1,1,0;0,0,0,0,0,0,0,1;0,0,0,0,0,0,1,0;0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0],3,8\ |
|
- | 7 | [0,0,1,1,0,1;0,0,1,1,0,0;0,0,0,0,1,0;0,0,0,0,1,1;0,0,0,0,0,0;0,0,0,0,0,0],1,5 |
|
7 | !exit |
8 | !exit |
8 | 9 | ||
9 | :proc |
10 | :proc |
- | 11 | !reset slib_out |
|
10 | 12 | ||
11 | !distribute item $wims_read_parm into slib_A,slib_s,slib_t |
13 | !distribute item $wims_read_parm into slib_A,slib_s,slib_t |
- | 14 | slib_A=!declosing $slib_A |
|
- | 15 | slib_A=!lines2rows $slib_A |
|
- | 16 | ||
- | 17 | Directed Acyclic Graph |
|
- | 18 | ||
- | 19 | slib_res=!exec pari (allpaths(M,a,b)={my(n=#M,res=[],res1);if(a==b,res=[[a]],for(i=1,n,if(M[a,i],res1=allpaths(M,i,b);for(j=1,#res1,res=concat(res,[concat(a,res1[j])]))))); res});A=[$slib_A]; allpaths(A,$slib_s,$slib_t) |
|
- | 20 | ||
- | 21 | slib_rescnt=!itemcnt $slib_res |
|
- | 22 | !for slib_ch=1 to $slib_rescnt |
|
- | 23 | slib_chh=!declosing $(slib_res[$slib_ch]) |
|
- | 24 | slib_out=!append line $slib_chh to $slib_out |
|
- | 25 | !next |
|
- | 26 | ||
- | 27 | !exit |
|
- | 28 | ||
- | 29 | slib_A=!replace internal ; by $\ |
|
- | 30 | $ in $slib_A |
|
- | 31 | ||
12 | slib_A= !declosing $slib_A |
32 | slib_A= !declosing $slib_A |
13 | slib_A=!replace internal ; by $\ |
33 | slib_A=!replace internal ; by $\ |
14 | $ in $slib_A |
34 | $ in $slib_A |
15 | slib_n = !linecnt $slib_A |
35 | slib_n = !linecnt $slib_A |
16 | - | ||
17 | slib_chemin=$slib_t |
36 | slib_chemin=$slib_t |
- | 37 | ||
18 | !for slib_i=1 to $slib_n |
38 | !for slib_i=1 to $slib_n |
19 | !for slib_k=1 to $slib_n |
39 | !for slib_k=1 to $slib_n |
20 | !for slib_j=1 to $slib_n |
40 | !for slib_j=1 to $slib_n |
21 | slib_r=!line $slib_k of $slib_A |
41 | slib_r=!line $slib_k of $slib_A |
22 | slib_r=!item $slib_j of $slib_r |
42 | slib_r=!item $slib_j of $slib_r |
23 | !if $slib_r != 0 |
43 | !if $slib_r != 0 |
24 | slib_cnt=!linecnt $slib_chemin |
44 | slib_cnt=!linecnt $slib_chemin |
25 | !for slib_u = 1 to $slib_cnt |
45 | !for slib_u = 1 to $slib_cnt |
26 | slib_che=!line $slib_u of $slib_chemin |
46 | slib_che=!line $slib_u of $slib_chemin |
27 | slib_che1=!item 1 of $slib_che |
47 | slib_che1=!item 1 of $slib_che |
28 | !if $slib_che1 = $slib_j |
48 | !if $slib_che1 = $slib_j and $slib_k,$slib_che notlineof $slib_chemin |
29 | slib_chemin=$slib_chemin\ |
49 | slib_chemin=$slib_chemin\ |
30 | $slib_k,$slib_che |
50 | $slib_k,$slib_che |
31 | !endif |
51 | !endif |
32 | !next slib_u |
52 | !next slib_u |
33 | !endif |
53 | !endif |
34 | !next slib_j |
54 | !next slib_j |
35 | !next slib_k |
55 | !next slib_k |
36 | !next slib_i |
56 | !next slib_i |
- | 57 | ||
- | 58 | slib_chemin=!select $slib_chemin where column 1=$slib_s |
|
37 | 59 | ||
38 | slib_out=$slib_chemin |
60 | slib_out=$slib_chemin |