Subversion Repositories wimsdev

Rev

Rev 8560 | 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
 
20 reyssat 7
slib_example=0,1,1;1,0,1;1,1,0\
8
[0,0,1;0,0,1;1,1,0]
3265 bpr 9
slib_require=pari
20 reyssat 10
!exit
11
 
12
:proc
13
slib_G= !declosing $wims_read_parm
8560 bpr 14
slib_G=!translate internal $\
20 reyssat 15
$  to ; in $slib_G
16
slib_n=!exec pari slib_N=Mat([$slib_G]);matsize(slib_N)[1]
17
 
18
 
19
slib_P=!exec pari {slib_N=Mat([$slib_G]);slib_n=matsize(slib_N)[1];\
20
slib_P=matrix(slib_n,slib_n,slib_i,slib_j,-1);\
21
slib_mod=0;\
22
for(slib_k=1,slib_n,slib_P[slib_k,slib_k]=0;\
23
  slib_mod=1;\
24
  while(slib_mod, slib_mod=0;\
25
    for(slib_i=1,slib_n,\
26
      for(slib_j=1,slib_n,\
27
        if(slib_N[slib_i,slib_j]*(slib_P[slib_k,slib_i]+1),\
28
          if((slib_P[slib_k,slib_j]+1),\
29
            if(slib_P[slib_k,slib_j]>slib_P[slib_k,slib_i]+1, slib_P[slib_k,slib_j]=slib_P[slib_k,slib_i]+1;\
30
            slib_mod=1),\
31
            slib_P[slib_k,slib_j]=slib_P[slib_k,slib_i]+1; slib_mod=1)\
32
        );\
33
      );\
34
    );\
35
  );\
36
);\
37
print(slib_P);\
38
}
39
 
40
slib_out=!trim $slib_P
41