Subversion Repositories wimsdev

Rev

Rev 13587 | 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
 
17963 bpr 7
slib_example=[1,0,1;0,0,1;1,1,0],1\
8
[1,0,1;0,0,1;1,1,0],2\
9
[0,0,1;0,0,0;1,1,0],2
3265 bpr 10
slib_require=pari
20 reyssat 11
!exit
12
 
13
:proc
14
 
15
slib_out=
16
slib_G= !item 1 to -2 of $wims_read_parm
17
slib_G=!declosing $slib_G
18
slib_point= !item -1 of $wims_read_parm
8560 bpr 19
slib_G=!translate internal $\
20
$ to ; in $slib_G
20 reyssat 21
 
22
slib_n=!exec pari slib_N=Mat([$slib_G]);matsize(slib_N)[1]
23
 
24
slib_dstx=!exec pari {slib_N=Mat([$slib_G]);\
12676 bpr 25
  slib_P=vector($slib_n,slib_i,-1);\
26
  slib_P[$slib_point]=0;\
27
  slib_modif=1;\
28
  while(slib_modif,\
29
    slib_modif=0;\
30
    for(slib_i=1,$slib_n,\
31
      for(slib_j=1,$slib_n,\
32
            if(slib_N[slib_i,slib_j]*(slib_P[slib_i]+1),\
33
              if((slib_P[slib_j]+1),\
34
                if(slib_P[slib_j]>slib_P[slib_i]+1, slib_P[slib_j]=slib_P[slib_i]+1;slib_modif=1),\
35
                slib_P[slib_j]=slib_P[slib_i]+1; slib_modif=1);\
36
              );\
8321 bpr 37
          );\
12676 bpr 38
      );\
39
   );\
20 reyssat 40
print(slib_P)}
41
 
42
slib_cc=!exec pari {slib_P=Vec([$slib_dstx]);\
43
slib_Q=vector($slib_n);\
12676 bpr 44
  for(slib_i=1,$slib_n,\
45
    if(slib_P[slib_i]+1,slib_Q[slib_i]=1));\
46
    print(slib_Q)}
20 reyssat 47
 
48
slib_out= !positionof item 1 in $slib_cc