@c Language: Brazilian Portuguese, Encoding: iso-8859-1
@c /Runtime.texi/1.21/Sat Jun  9 01:31:20 2007/-ko/
@menu
* Introdu@value{cedilha}@~{a}o a Ambiente em Tempo de Execu@value{cedilha}@~{a}o::  
* Interrup@value{cedilha}@~{o}es::                  
* Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para Ambiente em Tempo de Execu@value{cedilha}@~{a}o::  
@end menu


@node Introdu@value{cedilha}@~{a}o a Ambiente em Tempo de Execu@value{cedilha}@~{a}o, Interrup@value{cedilha}@~{o}es, Ambiente em Tempo de Execu@value{cedilha}@~{a}o, Ambiente em Tempo de Execu@value{cedilha}@~{a}o
@section Introdu@value{cedilha}@~{a}o a Ambiente em Tempo de Execu@value{cedilha}@~{a}o
@c THIS DISCUSSION OF maxima-init.mac REPLACES AN EARLIER WRITE-UP. !!!
@c HOWEVER IT SEEMS THAT THIS TEXT REALLY WANTS TO BE UNDER A DIFFERENT HEADING. !!!
@code{maxima-init.mac} @'{e} um arquivo que @'{e} chamado automaticamente quando o Maxima inicia.
Voc@^{e} pode usar @code{maxima-init.mac} para personalizar seu ambiente Maxima.
@code{maxima-init.mac}, se existir, @'{e} tipicamente colocado no
diret@'{o}rio chamado por @code{maxima_userdir},
embora possa estar em qualquer outro diret@'{o}rio procurado pela fun@value{cedilha}@~{a}o @code{file_search}.

Aqui est@'{a} um exemplo do arquivo @code{maxima-init.mac}:

@example
setup_autoload ("specfun.mac", ultraspherical, assoc_legendre_p);
showtime:all;
@end example

Nesse Exemplo, @code{setup_autoload} diz ao Maxima para chamar o
arquivo especificado
(@code{specfun.mac}) se qualquer das fun@value{cedilha}@~{o}es (@code{ultraspherical},
@code{assoc_legendre_p}) forem chamadas sem estarem definidas.
Dessa forma voc@^{e} n@~{a}o precisa lembrar de chamar o arquivo antes das fun@value{cedilha}@~{o}es.

A declara@value{cedilha}@~{a}o @code{showtime: all} diz ao Maxima escolher a vari@'{a}vel @code{showtime}.
O arquivo @code{maxima-init.mac} pode conter qualquer outras atribui@value{cedilha}@~{o}es ou
outras declara@value{cedilha}@~{o}es do Maxima.

@node Interrup@value{cedilha}@~{o}es, Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para Ambiente em Tempo de Execu@value{cedilha}@~{a}o, Introdu@value{cedilha}@~{a}o a Ambiente em Tempo de Execu@value{cedilha}@~{a}o, Ambiente em Tempo de Execu@value{cedilha}@~{a}o
@section Interrup@value{cedilha}@~{o}es

O usu@'{a}rio pode parar uma computa@value{cedilha}@~{a}o que consome muito tempo com o
caractere ^C (control-C).
A a@value{cedilha}@~{a}o padr@~{a}o @'{e} parar a computa@value{cedilha}@~{a}o
e mostrar outra linha de comando do usu@'{a}rio.
Nesse caso, n@~{a}o @'{e} poss@'{i}vel continuar a computa@value{cedilha}@~{a}o interrompida.

Se a vari@'{a}vel Lisp @code{*debugger-hook*} @'{e} escolhida para @code{nil}, atrav@'{e}s do comando

@example
:lisp (setq *debugger-hook* nil)
@end example

@noindent
ent@~{a}o na ocasi@~{a}o do recebimento do ^C, Maxima iniciar@'{a} o depurador Lisp,
e o usu@'{a}rio pode usar o depurador para inspecionar o ambiente Lisp.
A computa@value{cedilha}@~{a}o interrompida pode ser retomada atrav@'{e}s do comando
@code{continue} no depurador Lisp.
O m@'{e}todo de retorno para ao Maxima partindo do depurador Lisp
(outro como executando a computa@value{cedilha}@~{a}o para complementa@value{cedilha}@~{a}o)
@'{e} diferente para cada vers@~{a}o do Lisp.

Em sistemas Unix, o caratere ^Z (control-Z) faz com que Maxima
pare tudo e aguarde em segundo plano, e o controle @'{e} retornado para a linha de comando do shell.
O comando @code{fg} faz com que o Maxima
retorne ao primeiro plano e continue a partir do ponto no qual foi interrompido.

@c end concepts Ambiente em Tempo de Execu@value{cedilha}@~{a}o
@node Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para Ambiente em Tempo de Execu@value{cedilha}@~{a}o,  , Interrup@value{cedilha}@~{o}es, Ambiente em Tempo de Execu@value{cedilha}@~{a}o
@section Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para Ambiente em Tempo de Execu@value{cedilha}@~{a}o

@c NEEDS EXPANSION AND CLARIFICATION
@defvr {Declara@value{cedilha}@~{a}o} feature
Maxima compreende dois tipos distintos de recurso,
recursos do sistema e recursos aplicados a express@~{o}es matem@'{a}ticas.
Veja Tamb@'{e}m @code{status} para informa@value{cedilha}@~{o}es sobre recursos do sistema.
Veja Tamb@'{e}m @code{features} e @code{featurep} para informa@value{cedilha}@~{o}es sobre recursos matem@'{a}ticos.
@c PROPERTIES, DECLARATIONS FALL UNDER THIS HEADING AS WELL
@c OTHER STUFF ??

@code{feature} por si mesmo n@~{a}o @'{e} o nome de uma fun@value{cedilha}@~{a}o ou vari@'{a}vel.

@end defvr

@c NEEDS CLARIFICATION, ESPECIALLY WRT THE EXTENT OF THE FEATURE SYSTEM
@c (I.E. WHAT KINDS OF THINGS ARE FEATURES ACCORDING TO featurep)
@deffn {Fun@value{cedilha}@~{a}o} featurep (@var{a}, @var{f})
Tenta determinar se o objeto @var{a} tem o
recurso @var{f} na base dos fatos dentro base de dados corrente.  Se possue,
@'{e} retornado @code{true}, de outra forma @'{e} retornado @code{false}.

Note que @code{featurep} retorna @code{false} quando nem @var{f}
nem a nega@value{cedilha}@~{a}o de @var{f} puderem ser estabelecidas.

@code{featurep} avalia seus argumentos.

Veja tamb@'{e}m @code{declare} e @code{features}.
       
@example
(%i1) declare (j, even)$
(%i2) featurep (j, integer);
(%o2)                           true
@end example

@end deffn

@defvr {Vari@'{a}vel de sistema} maxima_tempdir

@code{maxima_tempdir} nomeia o diret@'{o}rio no qual Maxima cria alguns arquivos tempor@'{a}rios.
Em particular, arquivos tempor@'{a}rios para impress@~{a}o s@~{a}o criados no @code{maxima_tempdir}.

O valor inicial de @code{maxima_tempdir} @'{e} o diret@'{o}rio do usu@'{a}rio,
se o maxima puder localiz@'{a}-lo; de outra forma Maxima sup@~{o}e um diret@'{o}rio adequado.

A @code{maxima_tempdir} pode ser atribu@'{i}do uma seq@"{u}@^{e}ncia de caracteres que corresponde a um diret@'{o}rio.

@end defvr

@defvr {Vari@'{a}vel de sistema} maxima_userdir

@code{maxima_userdir} nomeia um diret@'{o}rio no qual Maxima espera encontrar seus pr@'{o}prios arquivos e os do arquivos do Lisp.
(Maxima procura em alguns outros diret@'{o}rios tamb@'{e}m;
@code{file_search_maxima} e @code{file_search_lisp} possuem a lista completa.)

O valor inicial de @code{maxima_userdir} @'{e} um subdiret@'{o}rio do diret@'{o}rio do usu@'{a}rio,
se Maxima puder localiz@'{a}-lo; de outra forma Maxima sup@~{o}e um diret@'{o}rio adequado.

A @code{maxima_userdir} pode ser atribu@'{i}do uma seq@"{u}@^{e}ncia de caracteres que corresponde a um diret@'{o}rio.
Todavia, fazendo uma atribui@value{cedilha}@~{a}o a @code{maxima_userdir} n@~{a}o muda automaticamente o valor de
@code{file_search_maxima} e de @code{file_search_lisp};
Essas vari@'{a}veis devem ser modificadas separadamente.

@end defvr

@deffn {Fun@value{cedilha}@~{a}o} room ()
@deffnx {Fun@value{cedilha}@~{a}o} room (true)
@deffnx {Fun@value{cedilha}@~{a}o} room (false)
Mostra uma descri@value{cedilha}@~{a}o do estado de armazenamento e
gerenciamento de pilha no Maxima. @code{room} chama a fun@value{cedilha}@~{a}o Lisp de
mesmo nome.

@itemize @bullet
@item
@code{room ()} mostra uma descri@value{cedilha}@~{a}o moderada.
@item
@code{room (true)} mostra uma descri@value{cedilha}@~{a}o detalhada.
@item
@code{room (false)} mostra uma descri@value{cedilha}@~{a}o resumida.
@end itemize

@end deffn

@deffn {Fun@value{cedilha}@~{a}o} status (feature)
@deffnx {Fun@value{cedilha}@~{a}o} status (feature, @var{recurso_ativo})
@deffnx {Fun@value{cedilha}@~{a}o} status (status)
Retorna informa@value{cedilha}@~{o}es sobre a presen@value{cedilha}a ou aus@^{e}ncia de certos
recursos dependentes do sistema operacional.

@itemize @bullet
@item
@code{status (feature)} retorna uma lista dos recursos do sistema.
Inclui a vers@~{a}o do Lisp, tipo de sistema operacional, etc.
A lista pode variar de um tipo de Lisp para outro.
@item @code{status (feature, @var{recurso_ativo})} retorna @code{true} se @var{recurso_ativo}
est@'{a} na lista de @'{i}tens retornada atrav@'{e}s de @code{status (feature)} e @code{false} de outra forma.
@code{status} n@~{a}o avalia o argumento @var{recurso_ativo}.
O operador ap@'{o}strofo-ap@'{o}strofo, @code{'@w{}'}, evita a avalia@value{cedilha}@~{a}o.
Um recurso cujo nome cont@'{e}m um caractere especial, tal como um h@'{i}fem,
deve ser fornecido como um argumento em forma de seq@"{u}@^{e}ncia de caracteres. Por Exemplo,
@code{status (feature, "ansi-cl")}.
@item
@code{status (status)} retorna uma lista de dois elementos @code{[feature, status]}.
@code{feature} e @code{status} s@~{a}o dois argumentos aceitos pela fun@value{cedilha}@~{a}o @code{status};
N@~{a}o est@'{a} claro se essa lista tem signific@^{a}ncia adicional.
@end itemize

A vari@'{a}vel @code{features} cont@'{e}m uma lista de recursos que se aplicam a
express@~{o}es matem@'{a}ticas. Veja @code{features} e @code{featurep} para maiores informa@value{cedilha}@~{o}es.

@end deffn

@deffn {Fun@value{cedilha}@~{a}o} time (%o1, %o2, %o3, ...)
Retorna uma lista de tempos, em segundos, usados para calcular as linhas
de sa@'{i}da @code{%o1}, @code{%o2}, @code{%o3}, .... O tempo retornado @'{e} uma estimativa do Maxima do
tempo interno de computa@value{cedilha}@~{a}o, n@~{a}o do tempo decorrido. @code{time} pode somente
ser aplicado a vari@'{a}veis(r@'{o}tulos) de sa@'{i}da de linha; para quaisquer outras vari@'{a}veis, @code{time}
retorna @code{unknown} (tempo desconhecido).

Escolha @code{showtime: true} para fazer com que Maxima moste o tempo de computa@value{cedilha}@~{a}o
e o tempo decorrido a cada linha de sa@'{i}da.

@end deffn

@deffn {Fun@value{cedilha}@~{a}o} timedate ()
Retorna uma seq@"{u}@^{e}ncia de caracteres representando a data e hora atuais.
A seq@"{u}@^{e}ncia de caracteres tem o formato @code{HH:MM:SS Dia, mm/dd/aaaa (GMT-n)},
Onde os campos s@~{a}o
horas, minutos, segundos, dia da semana, m@^{e}s, dia do m@^{e}s, ano, e horas que diferem da hora GMT.

O valor de retorno @'{e} uma seq@"{u}@^{e}ncia de caracteres Lisp.

Exemplo:

@c ===beg===
@c d: timedate ();
@c print ("timedate mostra o tempo atual", d)$
@c ===end===
@example
(%i1) d: timedate ();
(%o1) 08:05:09 Wed, 11/02/2005 (GMT-7)
(%i2) print ("timedate mostra o tempo atual", d)$
timedate reports current time 08:05:09 Wed, 11/02/2005 (GMT-7)
@end example

@end deffn

@deffn {Fun@value{cedilha}@~{a}o} absolute_real_time ()

Retorna o n@'{u}mero de segundos desde a meia noite do dia primeiro de janeiro de 1900 (UTC).
O valor de retorno @'{e} um inteiro.

Veja tamb@'{e}m @code{elapsed_real_time} e @code{elapsed_run_time}.

Exemplo:

@c ===beg===
@c absolute_real_time ();
@c 1900 + absolute_real_time () / (365.25 * 24 * 3600);
@c ===end===
@example
(%i1) absolute_real_time ();
(%o1)                      3385045277
(%i2) 1900 + absolute_real_time () / (365.25 * 24 * 3600);
(%o2)                   2007.265612087104
@end example

@end deffn

@deffn {Fun@value{cedilha}@~{a}o} elapsed_real_time ()

Retorna o n;umero de segundos (incluindo fra@value{cedilha}@~{o}es de segundo)
desde que Maxima tenha sido recentemente iniciado ou reiniciado.
O valor de retorno @'{e} um n@'{u}mero em ponto flutuante.

Veja tamb@'{e}m @code{absolute_real_time} e @code{elapsed_run_time}.

Exemplo:

@c ===beg===
@c elapsed_real_time ();
@c expand ((a + b)^500)$
@c elapsed_real_time ();
@c ===end===
@example
(%i1) elapsed_real_time ();
(%o1)                       2.559324
(%i2) expand ((a + b)^500)$
(%i3) elapsed_real_time ();
(%o3)                       7.552087
@end example

@end deffn

@deffn {Fun@value{cedilha}@~{a}o} elapsed_run_time ()

Retorna uma estimativa do n@'{u}mero de segundos (incluindo fra@value{cedilha}@~{o}es de segundo)
que o Maxima gastou em computa@value{cedilha}@~{o}es desde que Maxima tenha sido recentemente iniciado ou reiniciado.
O valor de retorno @'{e} um n@'{u}mero em ponto flutuante.

Veja tamb@'{e}m @code{absolute_real_time} e @code{elapsed_real_time}.

Exemplo:

@c ===beg===
@c elapsed_run_time ();
@c expand ((a + b)^500)$
@c elapsed_run_time ();
@c ===end===
@example
(%i1) elapsed_run_time ();
(%o1)                         0.04
(%i2) expand ((a + b)^500)$
(%i3) elapsed_run_time ();
(%o3)                         1.26
@end example

@end deffn
