Subversion Repositories wimsdev

Rev

Rev 7692 | Rev 8560 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 reyssat 1
!if $wims_read_parm!=slib_header
2
 !goto proc
3
!endif
4158 bpr 4
 
4351 bpr 5
slib_author=Bernadette, Perrin-Riou
4158 bpr 6
 
3265 bpr 7
slib_example=[0,0,1;0,0,0;1,1,0],2
8
slib_require=pari
20 reyssat 9
!exit
10
 
11
:proc
12
 
13
slib_out=
14
slib_G= !item 1 to -2 of $wims_read_parm
15
slib_G=!declosing $slib_G
16
slib_point= !item -1 of $wims_read_parm
17
slib_G=!translate internal  $\
7692 bpr 18
$   to ; in $slib_G
20 reyssat 19
 
20
slib_n=!exec pari slib_N=Mat([$slib_G]);matsize(slib_N)[1]
21
 
22
slib_dstx=!exec pari {slib_N=Mat([$slib_G]);\
8321 bpr 23
    slib_P=vector($slib_n,slib_i,-1);\
24
    slib_P[$slib_point]=0;\
25
    slib_modif=1;\
26
    while(slib_modif,\
27
          slib_modif=0;\
28
          for(slib_i=1,$slib_n,\
29
            for(slib_j=1,$slib_n,\
30
                  if(slib_N[slib_i,slib_j]*(slib_P[slib_i]+1),\
31
                        if((slib_P[slib_j]+1),\
32
                          if(slib_P[slib_j]>slib_P[slib_i]+1, slib_P[slib_j]=slib_P[slib_i]+1;slib_modif=1),\
33
                          slib_P[slib_j]=slib_P[slib_i]+1; slib_modif=1);\
34
                  );\
35
               );\
36
          );\
37
    );\
20 reyssat 38
print(slib_P)}
39
 
40
slib_cc=!exec pari {slib_P=Vec([$slib_dstx]);\
41
slib_Q=vector($slib_n);\
42
for(slib_i=1,$slib_n,\
43
  if(slib_P[slib_i]+1,slib_Q[slib_i]=1));\
44
print(slib_Q)}
45
 
46
slib_out= !positionof item 1 in $slib_cc
47