[ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

# 32. affine

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

## 32.1 Introduction to Affine

`affine` is a package to work with groups of polynomials.

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

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

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.

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

Beispiel:

```(%i1) load(affine)\$

(%i2) grobner_basis ([3*x^2+1, y*x]);
eliminated one
. 0 . 0                                   2
(%o2)/R/                [- y, - 3 x  - 1]
(%i3) polysimp(y^2*x+x^3*9+2);
(%o3)/R/                    - 3 x + 2
```

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.

`load(affine)` loads this function.

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.

Function: nc_degree (p)

Returns the degree of a noncommutative polynomial p. See `declare_weights`.

`load(affine)` loads this function.

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.

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.

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.

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.

Function: monomial_dimensions (n)

Compute the Hilbert series through degree n for the current algebra.

`load(affine)` loads this function.

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.

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.

`load(affine)` loads this function.

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

 [ << ] [ >> ] [Top] [Contents] [Index] [ ? ]

This document was generated by Crategus on Dezember, 12 2012 using texi2html 1.76.