##### 7.5.19.0. elimWeight

Procedure from library `ncpreim.lib` (see ncpreim_lib).

Usage:
  elimWeight(v); v an intvec

Assume:
  The basering is a G-algebra.
  The entries of v are in the range 1..nvars(basering) and the corresponding variables generate an admissible subalgebra.

Return:
  intvec, say w, such that the ordering (a(w),<), where < is any admissible global ordering, is an elimination ordering for the subalgebra generated by the variables indexed by the entries of the given intvec.

Note:
  If no such ordering exists, the zero intvec is returned.

Remark:
  Reference: (BGL), (GML)

Example:

    LIB "ncpreim.lib";
    // (Lev): Example 2
    ring r = 0,(a,b,x,d),Dp;
    matrix D[4][4];
    D[1,2] = 3*a;  D[1,4] = 3*x^2;  D[2,3] = -x;
    D[2,4] = d;    D[3,4] = 1;
    def A = nc_algebra(1,D);
    setring A; A;
    ==> // coefficients: QQ considered as a field
    ==> // number of vars : 4
    ==> //        block   1 : ordering Dp
    ==> //                  : names    a b x d
    ==> //        block   2 : ordering C
    ==> // noncommutative relations:
    ==> //    ba=ab+3a
    ==> //    da=ad+3x2
    ==> //    xb=bx-x
    ==> //    db=bd+d
    ==> //    dx=xd+1
    // Since d*a-a*d = 3*x^2, any admissible ordering has to satisfy
    // x^2 < a*d, while any elimination ordering for {x,d} additionally
    // has to fulfil a << x and a << d.
    // Hence neither a block ordering with weights
    // (1,1,1,1) nor a weighted ordering with weight (0,0,1,1) will do.
    intvec v = 3,4;
    elimWeight(v);
    ==> 0,0,1,2

User manual for Singular version 4.4.1, 2025, generated by texi2html.