1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /Miscellaneous.texi/1.23/Fri Jun 8 01:15:42 2007/-ko/
4 * Introdução a Opções Diversas::
6 * Funções e Variáveis Definidas para Opções Diversas::
9 @node Introdução a Opções Diversas, Compartilhado, Opções Diversas, Opções Diversas
10 @section Introdução a Opções Diversas
12 Nessa seção várias opções são tratadas pelo fato de possuirem um efeito global
13 sobre a operação do Maxima. Também várias listas tais como a lista de todas as
14 funções definidas pelo usuário, são discutidas.
16 @node Compartilhado, Funções e Variáveis Definidas para Opções Diversas, Introdução a Opções Diversas, Opções Diversas
17 @section Compartilhado
18 O diretório "share" do Maxima contém programas e outros arquivos
19 de interesse para os usuários do Maxima, mas que não são parte da implementação do núcleo do Maxima.
20 Esses programas são tipicamente chamados via @code{load} ou @code{setup_autoload}.
22 @code{:lisp *maxima-sharedir*} mostra a localização do diretório compartilhado
23 dentro do sistema de arquivos do usuário.
25 @c FIXME FIXME FIXME -- WE REALLY NEED AN UP-TO-DATE LIST OF SHARE PACKAGES !!
26 @code{printfile ("share.usg")} imprime uma lista de pacotes desatualizados dos pacotes compartilhados.
27 Usuários podem encontrar isso de forma mais detalhada navegando no diretório compartilhado usando um navegador de sistema de arquivo.
30 @node Funções e Variáveis Definidas para Opções Diversas, , Compartilhado, Opções Diversas
31 @section Funções e Variáveis Definidas para Opções Diversas
33 @defvr {Variável de sistema} aliases
34 Valor padrão: @code{[]}
36 @code{aliases} é a lista de átomos que possuem um alias definido pelo usuário (escolhido através
37 das funções @code{alias}, @code{ordergreat}, @code{orderless} ou através da declaração do átomo como sendo um
38 @code{noun} (substantivo) com @code{declare}).
42 @defvr {Declaração} alphabetic
43 @code{alphabetic} é uma declaração reconhecida por @code{declare}.
44 A expressão @code{declare(@var{s}, alphabetic)} diz ao Maxima para reconhecer
45 como alfabético todos os caracteres em @var{s}, que deve ser uma seq@"{u}ência de caracteres.
47 Veja também @ref{Identificadores}.
53 @c declare ("~`@", alphabetic);
54 @c xx~yy`@ + @yy`xx + `xx@@yy~;
58 (%i1) xx\~yy\`\@@ : 1729;
60 (%i2) declare ("~`@@", alphabetic);
62 (%i3) xx~yy`@@ + @@yy`xx + `xx@@@@yy~;
63 (%o3) `xx@@@@yy~ + @@yy`xx + 1729
65 (%o4) [@@yy`xx, `xx@@@@yy~]
72 @c DOES apropos RETURN THE SAME THING AS THE LIST SHOWN BY describe ??
73 @deffn {Função} apropos (@var{string})
74 Procura por nomes Maxima que possuem @var{string} aparecendo em qualquer lugar dentro
75 de seu nome. Dessa forma, @code{apropos (exp)} retorna uma lista de todos os sinalizadores
76 e funções que possuem @code{exp} como parte de seus nomes, tais como @code{expand},
77 @code{exp}, e @code{exponentialize}. Dessa forma você pode somente lembra parte do nome
78 de alguma coisa você pode usar esse comando para achar o restante do nome.
79 Similarmente, você pode dizer @code{apropos (tr_)} para achar uma lista de muitos dos
80 comutadores relatando para o tradutor, muitos dos quais começam com @code{tr_}.
84 @deffn {Função} args (@var{expr})
85 Retorna a lista de argumentos de @code{expr},
86 que pode ser de qualquer tipo de expressão outra como um átomo.
87 Somente os argumentos do operador de nível mais alto são extraídos;
88 subexpressões de @code{expr} aparecem como elementos ou subexpressões de elementos
89 da lista de argumentos.
91 A ordem dos ítens na lista pode depender do sinalizador global @code{inflag}.
93 @code{args (@var{expr})} é equivalente a @code{substpart ("[", @var{expr}, 0)}.
94 Veja também @code{substpart} e @code{op}.
99 @defvr {Variável de opção} genindex
100 Valor padrão: @code{i}
102 @code{genindex} é o prefixo usado para gerar a
103 próxima variável do somatório quando necessário.
107 @defvr {Variável de opção} gensumnum
110 @code{gensumnum} é o sufixo numérico usado para gerar variável seguinte
111 do somatório. Se isso for escolhido para @code{false} então o índice consistirá somente
112 de @code{genindex} com um sufixo numérico.
116 @c NEEDS EXPANSION AND EXAMPLES
117 @defvr {Constante} inf
118 Infinito positivo real.
122 @c NEEDS EXPANSION AND EXAMPLES
123 @defvr {Constante} infinity
124 Infinito complexo, uma magnitude infinita de ângulo de fase
125 arbitrária. Veja também @code{inf} e @code{minf}.
129 @defvr {Variável de sistema} infolists
130 Valor padrão: @code{[]}
132 @code{infolists} é uma lista dos nomes de todas as listas de
133 informação no Maxima. São elas:
137 Todos associam @code{%i}, @code{%o}, e rótulos @code{%t}.
139 Todos associam átomos que são variáveis de usuário, não opções do
140 Maxima ou comutadores, criados através de @code{:} ou @code{::} ou associando funcionalmente.
141 @c WHAT IS INTENDED BY "FUNCTIONAL BINDING" HERE ??
144 Todas as funções definidas pelo usuário, criadas através de @code{:=} ou @code{define}.
147 Todos os arrays declarados e não declarados, criados através de @code{:}, @code{::}, ou @code{:=}.
148 @c AREN'T THERE OTHER MEANS OF CREATING ARRAYS ??
150 Todas as macros definidas pelo usuário.
153 Todas as opções alguma vez alteradas pelo usuário (mesmo que tenham ou não elas
154 tenham mais tarde retornadas para seus valores padrão).
157 Todos os modelos definidos pelo usuário que coincidirem e regras de simplificação, criadas
158 através de @code{tellsimp}, @code{tellsimpafter}, @code{defmatch}, ou @code{defrule}.
161 Todos os átomos que possuem um alias definido pelo usuário, criado através das funções
162 @code{alias}, @code{ordergreat}, @code{orderless} ou declarando os átomos como um @code{noun}
166 Todos os átomos que possuem dependências funcionais, criadas através das
167 funções @code{depends} ou @code{gradef}.
170 Todas as funções que possuem derivadas definidas pelo usuário, cridas através da
171 função @code{gradef}.
173 @c UMM, WE REALLY NEED TO BE SPECIFIC -- WHAT DOES "ETC" CONTAIN HERE ??
175 Todos os átomos que possuem quaisquer propriedades outras que não essas mencionadas
176 acima, tais como propriedades estabelecidas por @code{atvalue} , @code{matchdeclare}, etc., também propriedades
177 estabelecidas na função @code{declare}.
179 @item let_rule_packages
180 Todos os pacote de régras em uso definidos pelo usuário
181 mais o pacote especial @code{default_let_rule_package}.
182 (@code{default_let_rule_package} é o nome do pacote de régras usado quando
183 um não está explicitamente escolhido pelo usuário.)
189 @deffn {Função} integerp (@var{expr})
190 Retorna @code{true} se @var{expr} é um inteiro numérico literal, de outra forma retorna @code{false}.
192 @code{integerp} retorna @code{false} se seu argumento for um símbolo,
193 mesmo se o argumento for declarado inteiro.
202 (%i3) integerp (-17);
204 (%i4) integerp (0.0);
206 (%i5) integerp (1.0);
208 (%i6) integerp (%pi);
212 (%i8) declare (n, integer);
220 @defvr {Variável de opção} m1pbranch
221 Valor padrão: @code{false}
223 @code{m1pbranch} é principal descendente de @code{-1} a um expoente.
224 Quantidades tais como @code{(-1)^(1/3)} (isto é, um expoente racional "ímpar") e
225 @code{(-1)^(1/4)} (isto é, um expoente racional "par") são manuseados como segue:
227 @c REDRAW THIS AS A TABLE
232 (-1)^(1/4): (-1)^(1/4)
235 m1pbranch:false m1pbranch:true
236 (-1)^(1/3) 1/2+%i*sqrt(3)/2
237 (-1)^(1/4) sqrt(2)/2+%i*sqrt(2)/2
242 @deffn {Função} numberp (@var{expr})
243 Retorna @code{true} se @var{expr} for um inteiro literal, número racional,
244 número em ponto flutuante, ou um grande número em ponto flutuante, de outra forma retorna @code{false}.
246 @code{numberp} retorna @code{false} se seu argumento for um símbolo,
247 mesmo se o argumento for um número simbólico tal como @code{%pi} ou @code{%i},
249 @code{even}, @code{odd}, @code{integer}, @code{rational}, @code{irrational},
250 @code{real}, @code{imaginary}, or @code{complex}. Nota de Tradução: par, ímpar, inteiro, racional, irracional, real, imaginário, ou complexo.
257 (%i2) numberp (-13/19);
259 (%i3) numberp (3.14159);
261 (%i4) numberp (-1729b-4);
263 (%i5) map (numberp, [%e, %pi, %i, %phi, inf, minf]);
264 (%o5) [false, false, false, false, false, false]
265 (%i6) declare (a, even, b, odd, c, integer, d, rational,
266 e, irrational, f, real, g, imaginary, h, complex);
268 (%i7) map (numberp, [a, b, c, d, e, f, g, h]);
269 (%o7) [false, false, false, false, false, false, false, false]
274 @c CROSS REF TO WHICH FUNCTION OR FUNCTIONS ESTABLISH PROPERTIES !! (VERY IMPORTANT)
275 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
276 @deffn {Função} properties (@var{a})
277 Retorna uma lista de nomes de todas as
278 propriedades associadas com o átomo @var{a}.
282 @c CROSS REF TO WHICH FUNCTION OR FUNCTIONS ESTABLISH PROPERTIES !! (VERY IMPORTANT)
283 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
284 @c WHAT IS HIDDEN IN THE "etc" HERE ??
285 @defvr {Símbolo especial} props
286 @code{props} são átomos que possuem qualquer propriedade outra como essas explicitamente
287 mencionadas em @code{infolists}, tais como especificado através de @code{atvalue}, @code{matchdeclare}, etc.,
288 e também propriedades especificadas na função @code{declare}.
292 @c CROSS REF TO WHICH FUNCTION OR FUNCTIONS ESTABLISH PROPERTIES !! (VERY IMPORTANT)
293 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
294 @deffn {Função} propvars (@var{prop})
295 Retorna uma lista desses átomos sobre a lista @code{props} que
296 possui a propriedade indicada através de @var{prop}. Dessa forma @code{propvars (atvalue)}
297 retorna uma lista de átomos que possuem atvalues.
301 @c CROSS REF TO OTHER FUNCTIONS WHICH PUT/GET PROPERTIES !! (VERY IMPORTANT)
302 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
303 @c ARE PROPERTIES ESTABLISHED BY put THE SAME AS PROPERTIES ESTABLISHED BY declare OR OTHER FUNCTIONS ??
304 @c IS put (foo, true, integer) EQUIVALENT TO declare (foo, integer) FOR EXAMPLE ??
305 @deffn {Função} put (@var{átomo}, @var{valor}, @var{indicador})
306 Atribui @var{valor} para a propriedade (especificada através de @var{indicador}) do @var{átomo}.
307 @var{indicador} pode ser o nome de qualquer propriedade, não apenas uma propriedade definida pelo sistema.
309 @code{put} avalia seus argumentos.
310 @code{put} retorna @var{valor}.
315 (%i1) put (foo, (a+b)^5, expr);
318 (%i2) put (foo, "Hello", str);
320 (%i3) properties (foo);
321 (%o3) [[user properties, str, expr]]
322 (%i4) get (foo, expr);
325 (%i5) get (foo, str);
331 @deffn {Função} qput (@var{átomo}, @var{valor}, @var{indicador})
332 Atribui @var{valor} para a propriedade (especificada através de @var{indicador}) do @var{átomo}.
333 Isso é o mesmo que @code{put},
334 exceto que os argumentos nã são avaliados.
342 (%i4) put (foo, bar, baz);
344 (%i5) properties (aa);
345 (%o5) [[user properties, cc]]
348 (%i7) qput (foo, bar, baz);
350 (%i8) properties (foo);
351 (%o8) [value, [user properties, baz]]
352 (%i9) get ('foo, 'baz);
358 @c CROSS REF TO OTHER FUNCTIONS WHICH PUT/GET PROPERTIES !! (VERY IMPORTANT)
359 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
360 @c HOW DOES THIS INTERACT WITH declare OR OTHER PROPERTY-ESTABLISHING FUNCTIONS ??
361 @c HOW IS THIS DIFFERENT FROM remove ??
362 @deffn {Função} rem (@var{átomo}, @var{indicador})
363 Remove a propriedade indicada através de @var{indicador} do @var{átomo}.
367 @c CROSS REF TO OTHER FUNCTIONS WHICH PUT/GET PROPERTIES !! (VERY IMPORTANT)
368 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
369 @c HOW DOES THIS INTERACT WITH declare OR OTHER PROPERTY-ESTABLISHING FUNCTIONS ??
370 @c HOW IS THIS DIFFERENT FROM rem ??
371 @deffn {Função} remove (@var{a_1}, @var{p_1}, ..., @var{a_n}, @var{p_n})
372 @deffnx {Função} remove ([@var{a_1}, ..., @var{a_m}], [@var{p_1}, ..., @var{p_n}], ...)
373 @deffnx {Função} remove ("@var{a}", operator)
374 @deffnx {Função} remove (@var{a}, transfun)
375 @deffnx {Função} remove (all, @var{p})
376 Remove propriedades associadas a átomos.
378 @code{remove (@var{a_1}, @var{p_1}, ..., @var{a_n}, @var{p_n})}
379 remove a propriedade @code{p_k} do átomo @code{a_k}.
381 @code{remove ([@var{a_1}, ..., @var{a_m}], [@var{p_1}, ..., @var{p_n}], ...)}
382 remove as propriedades @code{@var{p_1}, ..., @var{p_n}}
383 dos átomos @var{a_1}, ..., @var{a_m}.
384 Pode existir mais que um par de listas.
386 @c VERIFY THAT THIS WORKS AS ADVERTISED
387 @code{remove (all, @var{p})} remove a propriedade @var{p} de todos os átomos que a possuem.
389 @c SHOULD REFER TO A LIST OF ALL SYSTEM-DEFINED PROPERTIES HERE.
390 A propriedade removida pode ser definida pelo sistema tal como
391 @code{function}, @code{macro} ou @code{mode_declare}, ou propriedades definidas pelo usuário.
393 @c VERIFY THAT THIS WORKS AS ADVERTISED
394 @c IS transfun PECULIAR TO remove ?? IF SO, SHOW SPECIAL CASE AS @defunx
395 uma propriedade pode ser @code{transfun} para remover
396 a versão traduzida Lisp de uma função.
397 Após executar isso, a versão Maxima da função é executada
398 em lugar da versão traduzida.
400 @code{remove ("@var{a}", operator)} ou, equivalentemente, @code{remove ("@var{a}", op)}
401 remove de @var{a} as propriedades @code{operator} declaradas através de
402 @code{prefix}, @code{infix}, @code{nary}, @code{postfix}, @code{matchfix}, ou @code{nofix}.
403 Note que o nome do operador deve ser escrito como uma seq@"{u}ência de caracteres com apóstofo.
405 @code{remove} sempre retorna @code{done} se um átomo possui ou não uma propriedade especificada.
406 Esse comportamento é diferente das funções remove mais específicas
407 @code{remvalue}, @code{remarray}, @code{remfunction}, e @code{remrule}.
409 @c IN SERIOUS NEED OF EXAMPLES HERE
413 @deffn {Função} remvalue (@var{nome_1}, ..., @var{nome_n})
414 @deffnx {Função} remvalue (all)
415 Remove os valores de Variáveis de usuário @var{nome_1}, ..., @var{nome_n}
416 (que podem ser subscritas) do sistema.
418 @code{remvalue (all)} remove os valores de todas as variáveis em @code{values},
419 a lista de todas as variáveis nomeadas através do usuário
420 (em oposição a essas que são automaticamente atribuídas através do Maxima).
422 Veja também @code{values}.
427 @deffn {Função} rncombine (@var{expr})
428 Transforma @var{expr} combinando todos os termos de @var{expr} que possuem
429 denominadores idênticos ou denominadores que diferem de cada um dos outros apenas por
430 fatores numéricos somente. Isso é ligeiramente diferente do comportamento de
431 de @code{combine}, que coleta termos que possuem denominadores idênticos.
433 Escolhendo @code{pfeformat: true} e usando @code{combine} retorna resultados similares
434 a esses que podem ser obtidos com @code{rncombine}, mas @code{rncombine} pega o
435 passo adicional de multiplicar cruzado fatores numérios do denominador.
436 Esses resultados em forma ideal, e a possibilidade de reconhecer alguns
439 Para usar essa função escreva primeiramente @code{load("rncomb")}.
442 @c NEEDS CLARIFICATION AND EXAMPLES
443 @deffn {Função} scalarp (@var{expr})
444 Retorna @code{true} se @var{expr} for um número, constante, ou variável
445 declarada @code{scalar} com @code{declare}, ou composta inteiramente de números, constantes, e tais
446 Variáveis, bmas não contendo matrizes ou listas.
450 @deffn {Função} setup_autoload (@var{nomearquivo}, @var{função_1}, ..., @var{função_n})
452 se qualquer entre @var{função_1}, ..., @var{função_n} for referenciado e não ainda definido,
453 @var{nomedeqrquivo} é chamado via @code{load}.
454 @var{nomearquivo} usualmente contém definições para as funções especificadas,
455 embora isso não seja obrigatório.
457 @code{setup_autoload} não trabalha para funções array.
459 @code{setup_autoload} não avalia seus argumentos.
463 @c EXAMPLE GENERATED FROM FOLLOWING INPUT
464 @c legendre_p (1, %pi);
465 @c setup_autoload ("specfun.mac", legendre_p, ultraspherical);
466 @c ultraspherical (2, 1/2, %pi);
467 @c legendre_p (1, %pi);
468 @c legendre_q (1, %pi);
470 (%i1) legendre_p (1, %pi);
471 (%o1) legendre_p(1, %pi)
472 (%i2) setup_autoload ("specfun.mac", legendre_p, ultraspherical);
474 (%i3) ultraspherical (2, 1/2, %pi);
475 Warning - you are redefining the Macsyma função ultraspherical
476 Warning - you are redefining the Macsyma função legendre_p
479 (%o3) ------------ + 3 (%pi - 1) + 1
481 (%i4) legendre_p (1, %pi);
483 (%i5) legendre_q (1, %pi);
487 (%o5) ---------------- - 1