[b1ac99] | 1 | LIB "tst.lib"; |
---|
| 2 | tst_init(); |
---|
| 3 | // |
---|
| 4 | // test script for minor command |
---|
| 5 | // |
---|
| 6 | ring r1 = 32003,(x,y,z),(c,dp); |
---|
| 7 | r1; |
---|
[728478] | 8 | |
---|
| 9 | proc pmat (matrix m,list #) |
---|
| 10 | { |
---|
| 11 | if ( size(#) == 0) |
---|
| 12 | { |
---|
| 13 | //------------- main case: input is a matrix, no second argument--------------- |
---|
| 14 | int @elems; |
---|
| 15 | int @mlen; |
---|
| 16 | int @slen; |
---|
| 17 | int @c; |
---|
| 18 | int @r; |
---|
| 19 | //-------------- count maximal size of each column, and sum up ---------------- |
---|
| 20 | |
---|
| 21 | for ( @c=1; @c<=ncols(m); @c=@c+1) |
---|
| 22 | { int @len(@c); |
---|
| 23 | for (@r=1; @r<=nrows(m); @r=@r+1) |
---|
| 24 | { |
---|
| 25 | @elems = @elems + 1; |
---|
| 26 | string @s(@elems) = string(m[@r,@c])+","; |
---|
| 27 | @slen = size(@s(@elems)); |
---|
| 28 | if (@slen > @len(@c)) |
---|
| 29 | { |
---|
| 30 | @len(@c) = @slen; |
---|
| 31 | } |
---|
| 32 | } |
---|
| 33 | @mlen = @mlen + @len(@c); |
---|
| 34 | } |
---|
| 35 | //---------------------- print all - except last - rows ----------------------- |
---|
| 36 | |
---|
| 37 | string @aus; |
---|
| 38 | string @sep = " "; |
---|
| 39 | if (@mlen >= pagewidth) |
---|
| 40 | { |
---|
| 41 | @sep = newline; |
---|
| 42 | } |
---|
| 43 | |
---|
| 44 | for (@r=1; @r<nrows(m); @r=@r+1) |
---|
| 45 | { |
---|
| 46 | @elems = @r; |
---|
| 47 | @aus = ""; |
---|
| 48 | for (@c=1; @c<=ncols(m); @c=@c+1) |
---|
| 49 | { |
---|
| 50 | @aus = @aus + @s(@elems)[1,@len(@c)] + @sep; |
---|
| 51 | @elems = @elems + nrows(m); |
---|
| 52 | } |
---|
| 53 | @aus; |
---|
| 54 | } |
---|
| 55 | //--------------- print last row (no comma after last entry) ------------------ |
---|
| 56 | |
---|
| 57 | @aus = ""; |
---|
| 58 | @elems = nrows(m); |
---|
| 59 | for (@c=1; @c<ncols(m); @c=@c+1) |
---|
| 60 | { |
---|
| 61 | @aus = @aus + @s(@elems)[1,@len(@c)] + @sep; |
---|
| 62 | @elems = @elems + nrows(m); |
---|
| 63 | } |
---|
| 64 | @aus = @aus + string(m[nrows(m),ncols(m)]); |
---|
| 65 | @aus; |
---|
| 66 | return(); |
---|
| 67 | } |
---|
| 68 | //--------- second case: input is a matrix, second argument is given ---------- |
---|
| 69 | |
---|
| 70 | if ( size(#) == 1 ) |
---|
| 71 | { |
---|
| 72 | if ( typeof(#[1]) == "int" ) |
---|
| 73 | { |
---|
| 74 | string @aus; |
---|
| 75 | string @tmp; |
---|
| 76 | int @ll; |
---|
| 77 | int @c; |
---|
| 78 | int @r; |
---|
| 79 | for ( @r=1; @r<=nrows(m); @r=@r+1) |
---|
| 80 | { |
---|
| 81 | @aus = ""; |
---|
| 82 | for (@c=1; @c<=ncols(m); @c=@c+1) |
---|
| 83 | { |
---|
| 84 | @tmp = string(m[@r,@c]); |
---|
| 85 | @aus = @aus + @tmp[1,#[1]] + " "; |
---|
| 86 | } |
---|
| 87 | @aus; |
---|
| 88 | } |
---|
| 89 | } |
---|
| 90 | } |
---|
| 91 | } |
---|
| 92 | |
---|
[b1ac99] | 93 | "-------------------------------"; |
---|
| 94 | matrix m1[3][3]=maxideal(2); |
---|
| 95 | pmat(m1); |
---|
| 96 | minor(m1,3); |
---|
| 97 | "---------------------------------"; |
---|
| 98 | ring r2=0,(x(1..9)),(dp); |
---|
| 99 | matrix m2[3][3]=maxideal(1); |
---|
| 100 | pmat(m2); |
---|
| 101 | minor(m2,2); |
---|
| 102 | "---------------------------------"; |
---|
| 103 | ring r3=0,(x(1..64)),ds; |
---|
| 104 | matrix m3[8][8]= maxideal(1); |
---|
| 105 | pmat(m3); |
---|
| 106 | minor(m3,1); |
---|
| 107 | "----------------------------------"; |
---|
| 108 | matrix m4[8][8]=maxideal(2); |
---|
| 109 | pmat(m4); |
---|
| 110 | minor(m4,1); |
---|
| 111 | "----------------------------------"; |
---|
| 112 | listvar(all); |
---|
| 113 | kill r1,r2,r3; |
---|
[46976a6] | 114 | tst_status(1);$; |
---|