Introduction to Affine
======================

affine is a package to work with groups of polynomials.

Categories: Polynomials Groebner bases Share packages Package affine

Functions and Variables for Affine
==================================

 -- 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 = 0.

     The return value is a list of equations of the form [X_1 = A_1, ..., X_N = A_N] where 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.

     load("affine") loads this function.

     Categories: Package affine

 -- 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.

     load("affine") loads this function.

     Categories: Package affine

 -- Function: set_up_dot_simplifications
     set_up_dot_simplifications (EQNS, CHECK_THROUGH_DEGREE)
     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.

     load("affine") loads this function.

     Categories: Package affine

 -- Function: declare_weights (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.

     load("affine") loads this function.

     Categories: Package affine

 -- Function: nc_degree (P)
     Returns the degree of a noncommutative polynomial P.  See declare_weights.

     load("affine") loads this function.

     Categories: Package affine

 -- 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.

     load("affine") loads this function.

     Categories: Package affine

 -- 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];

     load("affine") loads this function.

     Categories: Package affine

 -- 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_function. An optional third argument reset, false says don't bother to query about resetting things.

     load("affine") loads this function.

     Categories: Package affine

 -- 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.

     load("affine") loads this function.

     Categories: Package affine

 -- Function: monomial_dimensions (N)
     Compute the Hilbert series through degree N for the current algebra.

     load("affine") loads this function.

     Categories: Package affine

 -- 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.

     load("affine") loads this function.

     Categories: Package affine

 -- Function: list_nc_monomials
     list_nc_monomials ([P_1, ..., P_N])
     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.

     load("affine") loads this function.

     Categories: Package affine

 -- 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.

     Categories: Package affine