Home Online Manual
Top
Back: colrank
Forward: canonize
FastBack:
FastForward:
Up: control_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.11.2.10 genericity

Procedure from library control.lib (see control_lib).

Usage:
genericity(M); M is a matrix/module

Return:
list (of strings)

Purpose:
determine parametric expressions which have been assumed to be non-zero in the process of computing the Groebner basis

Note:
the output list consists of strings. The first string contains the variables only, whereas each further string contains a single polynomial in parameters.
We strongly recommend to switch on the redSB and redTail options.
The procedure is effective with the lift procedure for modules with parameters

Example:
 
LIB "control.lib";
// TwoPendula
ring r=(0,m1,m2,M,g,L1,L2),Dt,dp;
module RR =
[m1*L1*Dt^2, m2*L2*Dt^2, -1, (M+m1+m2)*Dt^2],
[m1*L1^2*Dt^2-m1*L1*g, 0, 0, m1*L1*Dt^2],
[0, m2*L2^2*Dt^2-m2*L2*g, 0, m2*L2*Dt^2];
module R = transpose(RR);
module SR = std(R);
matrix T = lift(R,SR);
genericity(T);
==> [1]:
==>    m1,g,L1,L2
==> [2]:
==>    L1-L2
//-- The result might be different when computing reduced bases:
matrix T2;
option(redSB);
option(redTail);
module SR2 = std(R);
T2 =  lift(R,SR2);
genericity(T2);
==> [1]:
==>    m1,g,L1,m2,L2
==> [2]:
==>    L1-L2