Top
Back: D.2.4.2 katsura
Forward: D.2.4.4 is_homog
FastBack: D. SINGULAR libraries
FastForward: E. Release Notes
Up: D.2.4 poly_lib
Top: Singular 2-0-4 Manual
Contents: Table of Contents
Index: F. Index
About: About This Document

D.2.4.3 freerank

Procedure from library poly.lib (see poly_lib).

Usage:

freerank(M[,any]); M=poly/ideal/vector/module/matrix

Compute:

rank of module presented by M in case it is free.
By definition this is vdim(coker(M)/m*coker(M)) if coker(M) is free, where m = maximal ideal of the variables of the basering and M is considered as matrix.
(the 0-module is free of rank 0)

Return:

rank of coker(M) if coker(M) is free and -1 else;
in case of a second argument return a list:
L[1] = rank of coker(M) or -1
L[2] = minbase(M)

Note:

freerank(syz(M)); computes the rank of M if M is free (and -1 else)

Example:

 
LIB "poly.lib";
ring r;
ideal i=x;
module M=[x,0,1],[-x,0,-1];
freerank(M);          // should be 2, coker(M) is not free
→ 2
freerank(syz (M),"");
→ [1]:
→    1
→ [2]:
→    _[1]=gen(2)+gen(1)
// [1] should be 1, coker(syz(M))=M is free of rank 1
// [2] should be gen(2)+gen(1) (minimal relation of M)
freerank(i);
→ -1
freerank(syz(i));     // should be 1, coker(syz(i))=i is free of rank 1
→ 1

Top Back: D.2.4.2 katsura Forward: D.2.4.4 is_homog FastBack: D. SINGULAR libraries FastForward: E. Release Notes Up: D.2.4 poly_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.