Top
Back: D.3.1.22 permrow
Forward: D.3.1.24 colred
FastBack: D. SINGULAR libraries
FastForward: E. Release Notes
Up: D.3.1 matrix_lib
Top: Singular 2-0-4 Manual
Contents: Table of Contents
Index: F. Index
About: About This Document

D.3.1.23 rowred

Procedure from library matrix.lib (see matrix_lib).

Usage:

rowred(A[,e]); A matrix, e any type

Return:

- a matrix B, being the row reduced form of A, if rowred is called with one argument.
(as far as this is possible over the polynomial ring; no division by polynomials)
- a list L of two matrices, such that L[1] = L[2] * A with L[1] the row-reduced form of A and L[2] the transformation matrix (if rowred is called with two arguments).

Note:

* This procedure is designed for teaching purposes mainly.
* The straight forward Gaussian algorithm is implemented in the library (no standard basis computation).
The transformation matrix is obtained by concatenating a unit matrix to A. proc gauss_row should be faster.
* It should only be used with exact coefficient field (there is no pivoting) over the polynomial ring (ordering lp or dp).
* Parameters are allowed. Hence, if the entries of A are parameters the computation takes place over the field of rational functions.

Example:

 
LIB "matrix.lib";
ring r=(0,a,b),(A,B,C),dp;
matrix m[6][8]=
0, 0,  b*B, -A,-4C,2A,0, 0,
2C,-4C,-A,B, 0,  B, 3B,AB,
0,a*A,  0, 0, B,  0, 0, 0,
0, 0,  0, 0, 2,  0, 0, 2A,
0, 0,  0, 0, 0,  0, 2b, A,
0, 0,  0, 0, 0,  0, 0, 2a;"";
→ 
print(rowred(m));"";
→ 0,  0,    0,    0, 1,0,  0,0,
→ 0,  0,    0,    0, 0,0,  1,0,
→ 0,  0,    0,    0, 0,0,  0,1,
→ 0,  0,    (b)*B,-A,0,2*A,0,0,
→ 2*C,-4*C, -A,   B, 0,B,  0,0,
→ 0,  (a)*A,0,    0, 0,0,  0,0 
→ 
list L=rowred(m,1);
print(L[1]);
→ 0,  0,    0,    0, 1,0,  0,0,
→ 0,  0,    0,    0, 0,0,  1,0,
→ 0,  0,    0,    0, 0,0,  0,1,
→ 0,  0,    (b)*B,-A,0,2*A,0,0,
→ 2*C,-4*C, -A,   B, 0,B,  0,0,
→ 0,  (a)*A,0,    0, 0,0,  0,0 
print(L[2]);
→ 0,0,0,1/2,   0,        -1/(2a)*A,       
→ 0,0,0,0,     1/(2b),   -1/(4ab)*A,      
→ 0,0,0,0,     0,        1/(2a),          
→ 1,0,0,2*C,   0,        -2/(a)*AC,       
→ 0,1,0,0,     -3/(2b)*B,(-2b+3)/(4ab)*AB,
→ 0,0,1,-1/2*B,0,        1/(2a)*AB        

See also: gauss_row.


Top Back: D.3.1.22 permrow Forward: D.3.1.24 colred FastBack: D. SINGULAR libraries FastForward: E. Release Notes Up: D.3.1 matrix_lib Top: Singular 2-0-4 Manual Contents: Table of Contents Index: F. Index About: About This Document
            User manual for Singular version 2-0-4, October 2002, generated by texi2html.