File: path

package info (click to toggle)
wims 2%3A4.29a%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 185,704 kB
  • sloc: xml: 366,687; javascript: 120,570; ansic: 62,341; java: 62,170; sh: 7,744; perl: 3,937; yacc: 3,217; cpp: 1,915; lex: 1,805; makefile: 1,084; lisp: 914; pascal: 601; python: 520; php: 318; asm: 7
file content (60 lines) | stat: -rw-r--r-- 1,717 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
!if $wims_read_parm!=slib_header
  !goto proc
!endif

slib_author=Bernadette, Perrin-Riou; Dominique, Bernardi
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\
[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
!exit

:proc
!reset slib_out

!distribute item $wims_read_parm into slib_A,slib_s,slib_t
slib_A=!declosing $slib_A
slib_A=!lines2rows $slib_A

Directed Acyclic Graph

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)

slib_rescnt=!itemcnt $slib_res
!for slib_ch=1 to $slib_rescnt
  slib_chh=!declosing $(slib_res[$slib_ch])
  slib_out=!append line $slib_chh to $slib_out
!next

!exit

slib_A=!replace internal ; by $\
$ in $slib_A

slib_A= !declosing $slib_A
slib_A=!replace internal ; by $\
$ in $slib_A
slib_n = !linecnt $slib_A
slib_chemin=$slib_t

!for slib_i=1 to $slib_n
  !for slib_k=1 to $slib_n
    !for slib_j=1 to $slib_n
      slib_r=!line $slib_k of $slib_A
      slib_r=!item $slib_j of $slib_r
      !if $slib_r != 0
        slib_cnt=!linecnt $slib_chemin
        !for slib_u = 1 to $slib_cnt
          slib_che=!line $slib_u of $slib_chemin
          slib_che1=!item 1 of $slib_che
          !if $slib_che1 = $slib_j and $slib_k,$slib_che notlineof $slib_chemin
            slib_chemin=$slib_chemin\
$slib_k,$slib_che
          !endif
        !next slib_u
      !endif
    !next slib_j
  !next slib_k
!next slib_i

slib_chemin=!select $slib_chemin where column 1=$slib_s

slib_out=$slib_chemin