#### D.3.1.15 gauss_col

Procedure from library `matrix.lib` (see matrix_lib).

Usage:
  gauss_col(A[,e]); A a matrix, e any type

Return:
  - a matrix B, if called with one argument; B is the complete column- reduced upper-triangular normal form of A if A is constant, (resp. as far as this is possible if A is a polynomial matrix; no division by polynomials).
  - a list L of two matrices, if called with two arguments; L satisfies L[1] = A * L[2] with L[1] the column-reduced form of A and L[2] the transformation matrix.

Note:
  * The procedure just applies interred to A with ordering (C,dp). The transformation matrix is obtained by applying 'lift'. This should be faster than the procedure colred.
  * It should only be used with exact coefficient field (there is no pivoting and rounding error treatment).
  * Parameters are allowed. Hence, if the entries of A are parameters, B is the column-reduced form of A over the rational function field.

Example:

    LIB "matrix.lib";
    ring r=(0,a,b),(A,B,C),dp;
    matrix m[8][6]=
    0,    2*C, 0,    0,  0,   0,
    0,    -4*C,a*A,  0,  0,   0,
    b*B,  -A,  0,    0,  0,   0,
    -A,   B,   0,    0,  0,   0,
    -4*C, 0,   B,    2,  0,   0,
    2*A,  B,   0,    0,  0,   0,
    0,    3*B, 0,    0,  2b,  0,
    0,    AB,  0,    2*A,A,   2a;"";
    ==>
    list L=gauss_col(m,1);
    print(L[1]);
    ==> 0,0,2*C, 0,      0,0,
    ==> A,0,-4*C,0,      0,0,
    ==> 0,0,-A,  (b)/2*B,0,0,
    ==> 0,0,B,   -1/2*A, 0,0,
    ==> 0,1,0,   0,      0,0,
    ==> 0,0,B,   A,      0,0,
    ==> 0,0,0,   0,      1,0,
    ==> 0,0,0,   0,      0,1
    print(L[2]);
    ==> 0,         0,        0,               1/2,      0,         0,
    ==> 0,         0,        1,               0,        0,         0,
    ==> 1/(a),     0,        0,               0,        0,         0,
    ==> -1/(2a)*B, 1/2,      0,               C,        0,         0,
    ==> 0,         0,        -3/(2b)*B,       0,        1/(2b),    0,
    ==> 1/(2a2)*AB,-1/(2a)*A,(-2b+3)/(4ab)*AB,-1/(a)*AC,-1/(4ab)*A,1/(2a)
    ring S=0,x,(c,dp);
    matrix A[5][4] =
    3, 1, 1, 1,
    13, 8, 6,-7,
    14,10, 6,-7,
    7, 4, 3,-3,
    2, 1, 0, 3;
    print(gauss_col(A));
    ==> 8/9,-5/9,-1/3,7/9,
    ==> 1,  0,   0,   0,
    ==> 0,  1,   0,   0,
    ==> 0,  0,   1,   0,
    ==> 0,  0,   0,   1

See also: colred.

User manual for Singular version 4-0-3, 2016, generated by texi2html.