Go to the first, previous, next, last section, table of contents.

__Function:__**fast_linsolve***([*`expr_1`, ...,`expr_m`], [`x_1`, ...,`x_n`])-
Solves the simultaneous linear equations
`expr_1`, ...,`expr_m`for the variables`x_1`, ...,`x_n`. Each`expr_i`may be an equation or a general expression; if given as a general expression, it is treated as an equation of the form

.`expr_i`= 0The return value is a list of equations of the form

`[`

where`x_1`=`a_1`, ...,`x_n`=`a_n`]`a_1`, ...,`a_n`are all free of`x_1`, ...,`x_n`.`fast_linsolve`

is faster than`linsolve`

for system of equations which are sparse.

__Function:__**grobner_basis***([*`expr_1`, ...,`expr_m`])-
Returns a Groebner basis for the equations
`expr_1`, ...,`expr_m`. The function`polysimp`

can then be used to simplify other functions relative to the equations.grobner_basis ([3*x^2+1, y*x])$ polysimp (y^2*x + x^3*9 + 2) ==> -3*x + 2

`polysimp(f)`

yields 0 if and only if`f`is in the ideal generated by`expr_1`, ...,`expr_m`, that is, if and only if`f`is a polynomial combination of the elements of`expr_1`, ...,`expr_m`.

__Function:__**set_up_dot_simplifications***(*`eqns`,`check_through_degree`)__Function:__**set_up_dot_simplifications***(*`eqns`)-
The eqns are
polynomial equations in non commutative variables.
The value of
`current_variables`

is the list of variables used for computing degrees. The equations must be homogeneous, in order for the procedure to terminate.If you have checked overlapping simplifications in

`dot_simplifications`

above the degree of f, then the following is true:`dotsimp (f)`

yields 0 if and only if`f`is in the ideal generated by the equations, i.e., if and only if`f`is a polynomial combination of the elements of the equations.The degree is that returned by

`nc_degree`

. This in turn is influenced by the weights of individual variables.

__Function:__**declare_weight***(*`x_1`,`w_1`, ...,`x_n`,`w_n`)-
Assigns weights
`w_1`, ...,`w_n`to`x_1`, ...,`x_n`, respectively. These are the weights used in computing`nc_degree`

.

__Function:__**nc_degree***(*`p`)-
Returns the degree of a noncommutative polynomial
`p`. See`declare_weights`

.

__Function:__**dotsimp***(*`f`)-
Returns 0 if and only if
`f`is in the ideal generated by the equations, i.e., if and only if`f`is a polynomial combination of the elements of the equations.

__Function:__**fast_central_elements***([*`x_1`, ...,`x_n`],`n`)-
If
`set_up_dot_simplifications`

has been previously done, finds the central polynomials in the variables`x_1`, ...,`x_n`in the given degree,`n`.For example:

set_up_dot_simplifications ([y.x + x.y], 3); fast_central_elements ([x, y], 2); [y.y, x.x];

__Function:__**check_overlaps***(*`n`,`add_to_simps`)-
Checks the overlaps thru degree
`n`, making sure that you have sufficient simplification rules in each degree, for`dotsimp`

to work correctly. This process can be speeded up if you know before hand what the dimension of the space of monomials is. If it is of finite global dimension, then`hilbert`

should be used. If you don't know the monomial dimensions, do not specify a`rank_functiion`

. An optional third argument`reset`

,`false`

says don't bother to query about resetting things.

__Function:__**mono***([*`x_1`, ...,`x_n`],`n`)-
Returns the list of independent
monomials relative to the current dot simplifications of degree
`n`in the variables`x_1`, ...,`x_n`.

__Function:__**monomial_dimensions***(*`n`)-
Compute the Hilbert series through degree
`n`for the current algebra.

__Function:__**extract_linear_equations***([*`p_1`, ...,`p_n`], [`m_1`, ...,`m_n`])-
Makes a list of the coefficients of the noncommutative polynomials

`p_1`, ...,`p_n`of the noncommutative monomials`m_1`, ...,`m_n`. The coefficients should be scalars. Use`list_nc_monomials`

to build the list of monomials.

__Function:__**list_nc_monomials***([*`p_1`, ...,`p_n`])__Function:__**list_nc_monomials***(*`p`)-
Returns a list of the non commutative monomials occurring in a polynomial

`p`or a list of polynomials`p_1`, ...,`p_n`.

__Function:__**create_list***(*`form`,`x_1`,`list_1`, ...,`x_n`,`list_n`)-
Create a list by evaluating

`form`with`x_1`bound to each element of`list_1`, and for each such binding bind`x_2`to each element of`list_2`, .... The number of elements in the result will be the product of the number of elements in each list. Each variable`x_i`must actually be a symbol--it will not be evaluated. The list arguments will be evaluated once at the beginning of the iteration.(%i82) create_list1(x^i,i,[1,3,7]); (%o82) [x,x^3,x^7]

With a double iteration:

(%i79) create_list([i,j],i,[a,b],j,[e,f,h]); (%o79) [[a,e],[a,f],[a,h],[b,e],[b,f],[b,h]]

Instead of

`list_i`two args may be supplied each of which should evaluate to a number. These will be the inclusive lower and upper bounds for the iteration.(%i81) create_list([i,j],i,[1,2,3],j,1,i); (%o81) [[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`.

__Option variable:__**all_dotsimp_denoms**-
Default value:
`false`

When

`all_dotsimp_denoms`

is a list, the denominators encountered by`dotsimp`

are appended to the list.`all_dotsimp_denoms`

may be initialized to an empty list`[]`

before calling`dotsimp`

.By default, denominators are not collected by

`dotsimp`

.

Go to the first, previous, next, last section, table of contents.