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 |
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 |
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 |
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 ; |
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 |
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 ; |
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 |
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 |