LIB "tst.lib"; tst_init(); // // test script for minor command // ring r1 = 32003,(x,y,z),(c,dp); r1; proc pmat (matrix m,list #) { if ( size(#) == 0) { //------------- main case: input is a matrix, no second argument--------------- int @elems; int @mlen; int @slen; int @c; int @r; //-------------- count maximal size of each column, and sum up ---------------- for ( @c=1; @c<=ncols(m); @c=@c+1) { int @len(@c); for (@r=1; @r<=nrows(m); @r=@r+1) { @elems = @elems + 1; string @s(@elems) = string(m[@r,@c])+","; @slen = size(@s(@elems)); if (@slen > @len(@c)) { @len(@c) = @slen; } } @mlen = @mlen + @len(@c); } //---------------------- print all - except last - rows ----------------------- string @aus; string @sep = " "; if (@mlen >= pagewidth) { @sep = newline; } for (@r=1; @r