@c Language: Brazilian Portuguese, Encoding: iso-8859-1
@c /Affine.texi/1.13/Sat Jun  2 00:12:30 2007/-ko/
@c end concepts Affine
@menu
* Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para Fun@value{cedilha}@~{o}es Afins::      
@end menu

@node Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para Fun@value{cedilha}@~{o}es Afins,  , Fun@value{cedilha}@~{o}es Afins, Fun@value{cedilha}@~{o}es Afins
@section Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para Fun@value{cedilha}@~{o}es Afins

@deffn {Fun@value{cedilha}@~{a}o} fast_linsolve ([@var{expr_1}, ..., @var{expr_m}], [@var{x_1}, ..., @var{x_n}])
Resolve equa@value{cedilha}@~{o}es lineares simult@^{a}neas @var{expr_1}, ..., @var{expr_m}
para as vari@'{a}veis @var{x_1}, ..., @var{x_n}.
Cada @var{expr_i} pode ser uma equa@value{cedilha}@~{a}o ou uma express@~{a}o geral;
se dada como uma express@~{a}o geral, ela  tratada como uma equa@value{cedilha}@~{a}o na forma @code{@var{expr_i} = 0}.

O valor de retorno @'{e} uma lista de equa@value{cedilha}@~{o}es da forma
@code{[@var{x_1} = @var{a_1}, ..., @var{x_n} = @var{a_n}]}
onde @var{a_1}, ..., @var{a_n} s@~{a}o todas livres de @var{x_1}, ..., @var{x_n}.

@code{fast_linsolve} @'{e} mais r@'{a}pido que @code{linsolve} para sistemas de equa@value{cedilha}@~{o}es que
s@~{a}o esparsas.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@deffn {Fun@value{cedilha}@~{a}o} grobner_basis ([@var{expr_1}, ..., @var{expr_m}])
Retorna uma base de Groebner para as equa@value{cedilha}@~{o}es @var{expr_1}, ..., @var{expr_m}.
A fun@value{cedilha}@~{a} @code{polysimp} pode ent@~{a}o
ser usada para simplificar outras fun@value{cedilha}@~{o}es relativas @`as equa@value{cedilha}@~{o}es.

@example
grobner_basis ([3*x^2+1, y*x])$

polysimp (y^2*x + x^3*9 + 2) ==> -3*x + 2
@end example

@code{polysimp(f)} produz 0 se e somente se @var{f} est@'{a} no ideal gerado por
@var{expr_1}, ..., @var{expr_m}, isto @'{e},
se e somente se @var{f} for uma combina@value{cedilha}@~{a}o polinomial dos elementos de
@var{expr_1}, ..., @var{expr_m}.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@c NEEDS CLARIFICATION IN A SERIOUS WAY
@deffn {Fun@value{cedilha}@~{a}o} set_up_dot_simplifications (@var{eqns}, @var{check_through_degree})
@deffnx {Fun@value{cedilha}@~{a}o} set_up_dot_simplifications (@var{eqns})
As @var{eqns} s@~{a}o
equa@value{cedilha}@~{o}es polinomiais em vari@'{a}veis n@~{a}o comutativas.
O valor de @code{current_variables}  @'{e} uma 
lista de vari@'{a}veis usadas para calcular graus.  As equa@value{cedilha}@~{o}es devem ser
homog@^{e}neas, com o objetivo de que o procedimento termine.  

Se voc@^{e} checou simplifica@value{cedilha}@~{o}es de envolt@'{o}rio em @code{dot_simplifications}
acima do grau de @var{f}, ent@~{a}o o seguinte @'{e} verdadeiro:
@code{dotsimp (@var{f})} retorna 0 se e somente se @var{f} est@'{a} no
ideal gerado pelas equa@value{cedilha}@~{o}es, i.e.,
se e somente se @var{f} for uma combina@value{cedilha}@~{a}o polinomial
dos elementos das equa@value{cedilha}@~{o}es.

O grau @'{e} aquele retornado por @code{nc_degree}.   Isso por sua vez @'{e} nfluenciado pelos
pesos das vari@'{a}veis individuais.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@deffn {Fun@value{cedilha}@~{a}o} declare_weights (@var{x_1}, @var{w_1}, ..., @var{x_n}, @var{w_n})
Atribui pesos @var{w_1}, ..., @var{w_n} to @var{x_1}, ..., @var{x_n}, respectivamente.
Esses s@~{a}o pesos usados em c@'{a}lculos @code{nc_degree}.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@deffn {Fun@value{cedilha}@~{a}o} nc_degree (@var{p})
Retorna o grau de um polin@^{o}mio n@~{a}o comutativo @var{p}.  Veja @code{declare_weights}.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@c NEEDS CLARIFICATION -- TO WHICH EQUATIONS DOES THIS DESCRIPTION REFER ??
@deffn {Fun@value{cedilha}@~{a}o} dotsimp (@var{f})
Retorna 0 se e somente se @var{f} for um ideal gerado pelas equa@value{cedilha}@~{o}es, i.e.,
se e somente se @var{f} for uma combina@value{cedilha}@~{a}o polinomial dos elementos das equa@value{cedilha}@~{o}es.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@deffn {Fun@value{cedilha}@~{a}o} fast_central_elements ([@var{x_1}, ..., @var{x_n}], @var{n})
Se @code{set_up_dot_simplifications} tiver sido feito previamente, ache o polin@^{o}mio central
nas vari@'{a}veis @var{x_1}, ..., @var{x_n} no grau dado, @var{n}.

Por exemplo:
@example
set_up_dot_simplifications ([y.x + x.y], 3);
fast_central_elements ([x, y], 2);
[y.y, x.x];
@end example

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@c THIS IS NOT AT ALL CLEAR
@deffn {Fun@value{cedilha}@~{a}o} check_overlaps (@var{n}, @var{add_to_simps})
Verifica as sobreposies atrav@'{e}s do grau @var{n},
tendo certeza que voc@^{e} tem regras de simplifica@value{cedilha}@~{o} suficiente em cada
grau, para @code{dotsimp} trabalhar corretamente.  Esse processo pode ter sua velocidade aumentada
se voc@^{e} souber antes de come@value{cedilha}ar souber de qual dimens@~{a}o do espa@value{cedilha}o de mon@^{o}mios @'{e}.
Se ele for de dimens@~{a}o global finita, ent@~{a}o @code{hilbert} pode ser usada.  Se voc@^{e}
n@~{a}o conhece as dimens@~{o}es monomiais, n@~{a}o especifique um @code{rank_function}.
Um opcional terceiro argumento @code{reset}, @code{false} diz para n@~{a}o se incomodar em perguntar
sobre resetar coisas.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@deffn {Fun@value{cedilha}@~{a}o} mono ([@var{x_1}, ..., @var{x_n}], @var{n})
Retorna a lista de mon@^{o}mios independentes
relativamente @`a simplifica@value{cedilha}@~{a}o atual do grau @var{n}
nas vari@'{a}veis @var{x_1}, ..., @var{x_n}.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@deffn {Fun@value{cedilha}@~{a}o} monomial_dimensions (@var{n})
Calcula a s@'{e}rie de Hilbert atrav@'{e}s do grau @var{n} para a algebra corrente.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@deffn {Fun@value{cedilha}@~{a}o} extract_linear_equations ([@var{p_1}, ..., @var{p_n}], [@var{m_1}, ..., @var{m_n}])

Faz uma lista dos coeficientes dos polin@^{o}mios n@~{a}o comutativos @var{p_1}, ..., @var{p_n}
dos monomios n@~{a}o comutatvos @var{m_1}, ..., @var{m_n}.
Os coeficientes podem ser escalares.   Use @code{list_nc_monomials} para construir a lista dos
mon@^{o}mios.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@deffn {Fun@value{cedilha}@~{a}o} list_nc_monomials ([@var{p_1}, ..., @var{p_n}])
@deffnx {Fun@value{cedilha}@~{a}o} list_nc_monomials (@var{p})

Retorna uma lista de mon@^{o}mios n@~{a}o comutativos que ocorrem em um polin@^{o}mio @var{p}
ou em uma lista de polin@^{o}mios @var{p_1}, ..., @var{p_n}.

Para usar essa fun@value{cedilha}@~ao escreva primeiramente @code{load(affine)}.
@end deffn

@c THIS FUNCTION DOESN'T SEEM TO BE APPROPRIATE IN USER-LEVEL DOCUMENTATION
@c PRESERVE THIS DESCRIPTION PENDING FURTHER DECISION
@c @defun pcoeff (poly monom [variables-to-exclude-from-cof (list-variables monom)])
@c 
@c This function is called from Lisp level, and uses internal poly format.
@c @example
@c 
@c CL-MAXIMA>>(setq me (st-rat #$x^2*u+y+1$))
@c (#:Y 1 1 0 (#:X 2 (#:U 1 1) 0 1))
@c 
@c CL-MAXIMA>>(pcoeff me (st-rat #$x^2$))
@c (#:U 1 1)
@c @end example
@c @noindent
@c 
@c Rule: if a variable appears in monom it must be to the exact power,
@c and if it is in variables to exclude it may not appear unless it was
@c in monom to the exact power.  (pcoeff pol 1 ..) will exclude variables
@c like substituting them to be zero.
@c 
@c @end defun

@c THIS FUNCTION DOESN'T SEEM TO BE APPROPRIATE IN USER-LEVEL DOCUMENTATION
@c PRESERVE THIS DESCRIPTION PENDING FURTHER DECISION
@c @defun new-disrep (poly)
@c 
@c From Lisp this returns the general Maxima format for an arg which is
@c in st-rat form:
@c 
@c @example
@c (displa(new-disrep (setq me (st-rat #$x^2*u+y+1$))))
@c 
@c        2
@c y + u x  + 1
@c @end example
@c 
@c @end defun

@defvr {Vari@'{a}vel de op@value{cedilha}@~{a}o} all_dotsimp_denoms
Valor padr@~{a}o: @code{false}

Quando @code{all_dotsimp_denoms} @'{e} uma lista,
os denominadores encontrados por @code{dotsimp} s@~{a}o adicionados ao final da lista.
@code{all_dotsimp_denoms} pode ser iniciado como uma lista vazia @code{[]}
antes chamando @code{dotsimp}.

Por padr@~{a}o, denominadores n@~{a}o s@~{a}o coletados por @code{dotsimp}.

@end defvr
