| ##### 7.7.1.0. isPureTensor Procedure from library `bimodules.lib` (see bimodules_lib). Usage: isPureTensor(g); g poly Note: This procedure only works if the basering is an enveloping algebra A^{env} of a (non-commutative) ring A. Thus also the polynomial in the argument has to be in A^{env}. Return: Returns 0 if g is not a pure tensor and if g is a pure tensor then isPureTensor() returns a vector v with v = a*gen(1)+b*gen(2) = (a,b)^T with a (X) b = g. Purpose: Checks whether a given polynomial in $\A^{env}$ is a pure tensor. This is also an auxiliary procedure for checking total divisibility. Example:
    LIB "bimodules.lib";
    ring r = 0,(x,s),dp;
    def R = nc_algebra(1,s); setring R; //1st shift algebra
    def Re = envelope(R); setring Re; //basering is now R^{env} = R (X) R^{opp}
    poly p = x*(x*s)*x + s^2*x; p;
    ==> x3s+x2s+xs2+2s2
    // p is of the form q(X)1, a pure tensor indeed:
    isPureTensor(p);
    ==> x3s*gen(1)+x2s*gen(1)+xs2*gen(1)+2s2*gen(1)+gen(2)
    // v = transpose( x3s+x2s+xs2+2s2  1 ) i.e. p = x3s+x2s+xs2+2s2 (X) 1
    poly g = S*X+ x*s*X+ S^2*x;
    g;
    ==> xsX+xS2+SX
    isPureTensor(g); // indeed g is not a pure tensor
    ==> 0
    poly d = x*X+s*X+x*S*X+s*S*X;d;
    ==> xSX+xX+sSX+sX
    isPureTensor(d); // d is a pure tensor indeed
    ==> x*gen(1)+s*gen(1)+SX*gen(2)+X*gen(2)
    // v = transpose( x+s  S*X+X ) i.e. d = x+s (X) s*x+x
    // remember that * denotes to the opposite mulitiplication s*x = xs in R.

User manual for Singular version 4-0-2, 2015, generated by texi2html.