Subversion Repositories wimsdev

Rev

Rev 8321 | Rev 12678 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8321 Rev 8560
Line 9... Line 9...
9
slib_require=pari
9
slib_require=pari
10
!exit
10
!exit
11
 
11
 
12
:proc
12
:proc
13
!reset slib_m, slib_n
13
!reset slib_m, slib_n
14
!distribute  item $wims_read_parm into  slib_n, slib_m
14
!distribute item $wims_read_parm into slib_n, slib_m
15
!default slib_m =!randint $[floor(1.5*$slib_n)], $[2*$slib_n]
15
!default slib_m =!randint $[floor(1.5*$slib_n)], $[2*$slib_n]
16
slib_sommet=!values x for x=1 to $slib_n
16
slib_sommet=!values x for x=1 to $slib_n
17
slib_u=!exec pari matrix($slib_n,$slib_n,slib_i,slib_j,if(slib_j ==slib_i,slib_i))
17
slib_u=!exec pari matrix($slib_n,$slib_n,slib_i,slib_j,if(slib_j ==slib_i,slib_i))
18
 
18
 
19
slib_u=!translate internal  ; to $\
19
slib_u=!translate internal ; to $\
20
$  in $slib_u
20
$  in $slib_u
21
slib_S=1
21
slib_S=1
22
slib_euler=$slib_S
22
slib_euler=$slib_S
23
!for slib_k=2 to $slib_m
23
!for slib_k=2 to $slib_m
24
    slib_s=!line $slib_S of $slib_u
24
    slib_s=!line $slib_S of $slib_u
25
        slib_bonsom=!listcomplement $slib_s in $slib_sommet
25
        slib_bonsom=!listcomplement $slib_s in $slib_sommet
26
        !if $slib_bonsom <> $empty
26
        !if $slib_bonsom <> $empty
27
             slib_a = !randitem  $slib_bonsom
27
             slib_a = !randitem $slib_bonsom
28
        !else
28
        !else
29
            !goto end
29
            !goto end
30
        !endif
30
        !endif
31
        slib_u=!translate internal  $\
31
        slib_u=!translate internal  $\
32
$ to ; in $slib_u
32
$ to ; in $slib_u
33
        slib_u=!exec pari {slib_M=Mat([$slib_u]); slib_M[$slib_a,$slib_S]=$slib_S ;  slib_M[$slib_S,$slib_a]=$slib_a;print(slib_M)}
33
        slib_u=!exec pari {slib_M=Mat([$slib_u]); slib_M[$slib_a,$slib_S]=$slib_S ; slib_M[$slib_S,$slib_a]=$slib_a;print(slib_M)}
34
        slib_u=!translate internal  ; to $\
34
        slib_u=!translate internal ; to $\
35
$  in $slib_u
35
$  in $slib_u
36
        slib_euler=$slib_euler, $slib_a
36
        slib_euler=$slib_euler, $slib_a
37
        slib_S=$slib_a
37
        slib_S=$slib_a
38
!next slib_k
38
!next slib_k
39
 
39
 
40
slib_manquant=!listcomplement $slib_euler in $slib_sommet
40
slib_manquant=!listcomplement $slib_euler in $slib_sommet
41
!if $slib_manquant <> $empty
41
!if $slib_manquant <> $empty
42
     !for slib_a in $slib_manquant
42
     !for slib_a in $slib_manquant
43
         slib_u=!translate internal  $\
43
         slib_u=!translate internal $\
44
$ to ; in $slib_u
44
$ to ; in $slib_u
45
        slib_u=!exec pari {slib_M=Mat([$slib_u]); slib_M[$slib_a,$slib_S]=$slib_S ;  slib_M[$slib_S,$slib_a]=$slib_a;print(slib_M)}
45
        slib_u=!exec pari {slib_M=Mat([$slib_u]); slib_M[$slib_a,$slib_S]=$slib_S ; slib_M[$slib_S,$slib_a]=$slib_a;print(slib_M)}
46
        slib_euler=$slib_euler, $slib_a
46
        slib_euler=$slib_euler, $slib_a
47
        slib_S=$slib_a
47
        slib_S=$slib_a
48
    !next slib_a
48
    !next slib_a
49
!endif
49
!endif
50
:end
50
:end
51
 
51
 
52
 
52
 
53
slib_m=!itemcnt $slib_euler
53
slib_m=!itemcnt $slib_euler
54
 
54
 
55
slib_u = !nonempty lines $slib_u
55
slib_u = !nonempty lines $slib_u
56
slib_u=!translate internal  $\
56
slib_u=!translate internal $\
57
$  to ; in $slib_u
57
$  to ; in $slib_u
58
 
58
 
59
 
59
 
60
slib_p = !shuffle $slib_n
60
slib_p = !shuffle $slib_n
61
slib_pp =!item  $slib_p of $slib_sommet
61
slib_pp =!item $slib_p of $slib_sommet
62
slib_euler1=
62
slib_euler1=
63
!for slib_i in $slib_euler
63
!for slib_i in $slib_euler
64
    slib_pos=!positionof item $slib_i in $slib_p
64
    slib_pos=!positionof item $slib_i in $slib_p
65
    slib_euler1=!append item $slib_pos to $slib_euler1
65
    slib_euler1=!append item $slib_pos to $slib_euler1
66
!next slib_i
66
!next slib_i