Introducedilhaão a Ambiente em Tempo de Execucedilhaão
======================================================

maxima-init.mac é um arquivo que é chamado automaticamente quando o Maxima inicia. Você pode usar maxima-init.mac para personalizar seu ambiente Maxima. maxima-init.mac, se existir, é tipicamente colocado no diretório chamado por maxima_userdir, embora possa estar em qualquer outro diretório procurado pela funcedilhaão file_search.

Aqui está um exemplo do arquivo maxima-init.mac:

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

Nesse Exemplo, setup_autoload diz ao Maxima para chamar o arquivo especificado (specfun.mac) se qualquer das funcedilhaões (ultraspherical, assoc_legendre_p) forem chamadas sem estarem definidas. Dessa forma você não precisa lembrar de chamar o arquivo antes das funcedilhaões.

A declaracedilhaão showtime: all diz ao Maxima escolher a variável showtime. O arquivo maxima-init.mac pode conter qualquer outras atribuicedilhaões ou outras declaracedilhaões do Maxima.

Interrupcedilhaões
==================

O usuário pode parar uma computacedilhaão que consome muito tempo com o caractere ^C (control-C). A acedilhaão padrão é parar a computacedilhaão e mostrar outra linha de comando do usuário. Nesse caso, não é possível continuar a computacedilhaão interrompida.

Se a variável Lisp *debugger-hook* é escolhida para nil, através do comando

     :lisp (setq *debugger-hook* nil)

então na ocasião do recebimento do ^C, Maxima iniciará o depurador Lisp, e o usuário pode usar o depurador para inspecionar o ambiente Lisp. A computacedilhaão interrompida pode ser retomada através do comando continue no depurador Lisp. O método de retorno para ao Maxima partindo do depurador Lisp (outro como executando a computacedilhaão para complementacedilhaão) é diferente para cada versã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 é retornado para a linha de comando do shell. O comando fg faz com que o Maxima retorne ao primeiro plano e continue a partir do ponto no qual foi interrompido.

Funcedilhaões e Variáveis Definidas para Ambiente em Tempo de Execucedilhaão
============================================================================

 -- Declaracedilhaão: feature
     Maxima compreende dois tipos distintos de recurso, recursos do sistema e recursos aplicados a expressões matemáticas. Veja Também status para informacedilhaões sobre recursos do sistema. Veja Também features e featurep para informacedilhaões sobre recursos matemáticos.

     feature por si mesmo não é o nome de uma funcedilhaão ou variável.

 -- Funcedilhaão: featurep (A, F)
     Tenta determinar se o objeto A tem o recurso F na base dos fatos dentro base de dados corrente.  Se possue, é retornado true, de outra forma é retornado false.

     Note que featurep retorna false quando nem F nem a negacedilhaão de F puderem ser estabelecidas.

     featurep avalia seus argumentos.

     Veja também declare e features.

          (%i1) declare (j, even)$
          (%i2) featurep (j, integer);
          (%o2)                           true

 -- Variável de sistema: maxima_tempdir

     maxima_tempdir nomeia o diretório no qual Maxima cria alguns arquivos temporários. Em particular, arquivos temporários para impressão são criados no maxima_tempdir.

     O valor inicial de maxima_tempdir é o diretório do usuário, se o maxima puder localizá-lo; de outra forma Maxima supõe um diretório adequado.

     A maxima_tempdir pode ser atribuído uma seqüência de caracteres que corresponde a um diretório.

 -- Variável de sistema: maxima_userdir

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

     O valor inicial de maxima_userdir é um subdiretório do diretório do usuário, se Maxima puder localizá-lo; de outra forma Maxima supõe um diretório adequado.

     A maxima_userdir pode ser atribuído uma seqüência de caracteres que corresponde a um diretório. Todavia, fazendo uma atribuicedilhaão a maxima_userdir não muda automaticamente o valor de file_search_maxima e de file_search_lisp; Essas variáveis devem ser modificadas separadamente.

 -- Funcedilhaão: room ()
 -- Funcedilhaão: room (true)
 -- Funcedilhaão: room (false)
     Mostra uma descricedilhaão do estado de armazenamento e gerenciamento de pilha no Maxima. room chama a funcedilhaão Lisp de mesmo nome.

       * room () mostra uma descricedilhaão moderada.

       * room (true) mostra uma descricedilhaão detalhada.

       * room (false) mostra uma descricedilhaão resumida.

 -- Funcedilhaão: status (feature)
 -- Funcedilhaão: status (feature, RECURSO_ATIVO)
 -- Funcedilhaão: status (status)
     Retorna informacedilhaões sobre a presencedilhaa ou ausência de certos recursos dependentes do sistema operacional.

       * status (feature) retorna uma lista dos recursos do sistema. Inclui a versão do Lisp, tipo de sistema operacional, etc. A lista pode variar de um tipo de Lisp para outro.

       * status (feature, RECURSO_ATIVO) retorna true se RECURSO_ATIVO está na lista de ítens retornada através de status (feature) e false de outra forma. status não avalia o argumento RECURSO_ATIVO. O operador apóstrofo-apóstrofo, '', evita a avaliacedilhaão. Um recurso cujo nome contém um caractere especial, tal como um hífem, deve ser fornecido como um argumento em forma de seqüência de caracteres. Por Exemplo, status (feature, "ansi-cl").

       * status (status) retorna uma lista de dois elementos [feature, status]. feature e status são dois argumentos aceitos pela funcedilhaão status; Não está claro se essa lista tem significância adicional.

     A variável features contém uma lista de recursos que se aplicam a expressões matemáticas. Veja features e featurep para maiores informacedilhaões.

 -- Funcedilhaão: time (%o1, %o2, %o3, ...)
     Retorna uma lista de tempos, em segundos, usados para calcular as linhas de saída %o1, %o2, %o3, .... O tempo retornado é uma estimativa do Maxima do tempo interno de computacedilhaão, não do tempo decorrido. time pode somente ser aplicado a variáveis(rótulos) de saída de linha; para quaisquer outras variáveis, time retorna unknown (tempo desconhecido).

     Escolha showtime: true para fazer com que Maxima moste o tempo de computacedilhaão e o tempo decorrido a cada linha de saída.

 -- Funcedilhaão: timedate ()
     Retorna uma seqüência de caracteres representando a data e hora atuais. A seqüência de caracteres tem o formato HH:MM:SS Dia, mm/dd/aaaa (GMT-n), Onde os campos são horas, minutos, segundos, dia da semana, mês, dia do mês, ano, e horas que diferem da hora GMT.

     O valor de retorno é uma seqüência de caracteres Lisp.

     Exemplo:

          (%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)

 -- Funcedilhaão: absolute_real_time ()

     Retorna o número de segundos desde a meia noite do dia primeiro de janeiro de 1900 (UTC). O valor de retorno é um inteiro.

     Veja também elapsed_real_time e elapsed_run_time.

     Exemplo:

          (%i1) absolute_real_time ();
          (%o1)                      3385045277
          (%i2) 1900 + absolute_real_time () / (365.25 * 24 * 3600);
          (%o2)                   2007.265612087104

 -- Funcedilhaão: elapsed_real_time ()

     Retorna o n;umero de segundos (incluindo fracedilhaões de segundo) desde que Maxima tenha sido recentemente iniciado ou reiniciado. O valor de retorno é um número em ponto flutuante.

     Veja também absolute_real_time e elapsed_run_time.

     Exemplo:

          (%i1) elapsed_real_time ();
          (%o1)                       2.559324
          (%i2) expand ((a + b)^500)$
          (%i3) elapsed_real_time ();
          (%o3)                       7.552087

 -- Funcedilhaão: elapsed_run_time ()

     Retorna uma estimativa do número de segundos (incluindo fracedilhaões de segundo) que o Maxima gastou em computacedilhaões desde que Maxima tenha sido recentemente iniciado ou reiniciado. O valor de retorno é um número em ponto flutuante.

     Veja também absolute_real_time e elapsed_real_time.

     Exemplo:

          (%i1) elapsed_run_time ();
          (%o1)                         0.04
          (%i2) expand ((a + b)^500)$
          (%i3) elapsed_run_time ();
          (%o3)                         1.26