Polysimp(f)==> 0 if and only if f is in the ideal generated by the EQNS ie. if and only if f is a polynomial combination of the elements of EQNS.
If you have checked overlapping simplifications in DOT_SIMPLIFICATIONS above the degree of f, then the following is true: DOTSIMP(f)==> 0 if and only if f is in the ideal generated by the EQNS ie. if and only if f is a polynomial combination of the elements of EQNS.
The degree is that returned by NC_DEGREE. This in turn is influenced by the weights of individual variables.
set_up_dot_simplifications([y.x+x.y],3); fast_central_elements([x,y],2); [y.y,x.x];
Compute the hilbert series through degreen n for the current algebra.
Makes a list of the coefficients of the polynomials in list_nc_polys of the monoms. MONOMS is a list of noncommutative monomials. The coefficients should be scalars. Use LIST_NC_MONOMIALS to build the list of monoms.
returns a list of the non commutative monomials occurring in a polynomial or a collection of polynomials.
This function is called from lisp level, and uses internal poly format.
CL-MAXIMA>>(setq me (st-rat #$x^2*u+y+1$)) (#:Y 1 1 0 (#:X 2 (#:U 1 1) 0 1)) CL-MAXIMA>>(pcoeff me (st-rat #$x^2$)) (#:U 1 1)
Rule: if a variable appears in monom it must be to the exact power, and if it is in variables to exclude it may not appear unless it was in monom to the exact power. (pcoeff pol 1 ..) will exclude variables like substituting them to be zero.
From lisp this returns the general maxima format for an arg which is in st-rat form:
(displa(new-disrep (setq me (st-rat #$x^2*u+y+1$)))) 2 Y + U X + 1
Create a list by evaluating FORM with VAR1 bound to each element of LIST1, and for each such binding bind VAR2 to each element of LIST2,... The number of elements in the result will be length(list1)*length(list2)*... Each VARn must actually be a symbol--it will not be evaluated. The LISTn args will be evaluated once at the beginning of the iteration.
(C82) create_list1(x^i,i,[1,3,7]); (D82) [X,X^3,X^7]
With a double iteration:
(C79) create_list([i,j],i,[a,b],j,[e,f,h]); (D79) [[A,E],[A,F],[A,H],[B,E],[B,F],[B,H]]
Instead of LISTn two args maybe supplied each of which should evaluate to a number. These will be the inclusive lower and upper bounds for the iteration.
(C81) create_list([i,j],i,[1,2,3],j,1,i); (D81) [[1,1],[2,1],[2,2],[3,1],[3,2],[3,3]]
Note that the limits or list for the j variable can depend on the current value of i.
if its value is FALSE the denominators encountered in getting dotsimps will not be collected. To collect the denoms
and they will be nconc'd onto the end of the list.