File: connexcomponent

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 (48 lines) | stat: -rw-r--r-- 1,181 bytes parent folder | download | duplicates (2)
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
!if $wims_read_parm!=slib_header
  !goto proc
!endif

slib_author=Bernadette, Perrin-Riou

slib_example=[1,0,1;0,0,1;1,1,0],1\
[1,0,1;0,0,1;1,1,0],2\
[0,0,1;0,0,0;1,1,0],2
slib_require=pari
!exit

:proc

slib_out=
slib_G= !item 1 to -2 of $wims_read_parm
slib_G=!declosing $slib_G
slib_point= !item -1 of $wims_read_parm
slib_G=!translate internal $\
$ to ; in $slib_G

slib_n=!exec pari slib_N=Mat([$slib_G]);matsize(slib_N)[1]

slib_dstx=!exec pari {slib_N=Mat([$slib_G]);\
  slib_P=vector($slib_n,slib_i,-1);\
  slib_P[$slib_point]=0;\
  slib_modif=1;\
  while(slib_modif,\
    slib_modif=0;\
    for(slib_i=1,$slib_n,\
      for(slib_j=1,$slib_n,\
            if(slib_N[slib_i,slib_j]*(slib_P[slib_i]+1),\
              if((slib_P[slib_j]+1),\
                if(slib_P[slib_j]>slib_P[slib_i]+1, slib_P[slib_j]=slib_P[slib_i]+1;slib_modif=1),\
                slib_P[slib_j]=slib_P[slib_i]+1; slib_modif=1);\
              );\
          );\
      );\
   );\
print(slib_P)}

slib_cc=!exec pari {slib_P=Vec([$slib_dstx]);\
slib_Q=vector($slib_n);\
  for(slib_i=1,$slib_n,\
    if(slib_P[slib_i]+1,slib_Q[slib_i]=1));\
    print(slib_Q)}

slib_out= !positionof item 1 in $slib_cc