[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Índice] [ ? ]

34. Ambiente em Tempo de Execução


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Índice] [ ? ]

34.1 Introdução a Ambiente em Tempo de Execuçã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 funçã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 funções (ultraspherical, assoc_legendre_p) forem chamadas sem estarem definidas. Dessa forma você não precisa lembrar de chamar o arquivo antes das funções.

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


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Índice] [ ? ]

34.2 Interrupções

O usuário pode parar uma computação que consome muito tempo com o caractere ^C (control-C). A ação padrão é parar a computação e mostrar outra linha de comando do usuário. Nesse caso, não é possível continuar a computaçã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 computaçã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 computação para complementaçã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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Índice] [ ? ]

34.3 Funções e Variáveis Definidas para Ambiente em Tempo de Execução

Declaraçã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 informações sobre recursos do sistema. Veja Também features e featurep para informações sobre recursos matemáticos.

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

Funçã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 negaçã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 atribuiçã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.

Função: room ()
Função: room (true)
Função: room (false)

Mostra uma descrição do estado de armazenamento e gerenciamento de pilha no Maxima. room chama a função Lisp de mesmo nome.

Função: status (feature)
Função: status (feature, recurso_ativo)
Função: status (status)

Retorna informações sobre a presença ou ausência de certos recursos dependentes do sistema operacional.

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

Funçã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 computaçã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 computação e o tempo decorrido a cada linha de saída.

Funçã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)
Funçã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
Função: elapsed_real_time ()

Retorna o n;umero de segundos (incluindo fraçõ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
Função: elapsed_run_time ()

Retorna uma estimativa do número de segundos (incluindo frações de segundo) que o Maxima gastou em computaçõ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

[ << ] [ >> ]           [Top] [Contents] [Índice] [ ? ]

This document was generated by Robert Dodier on Dezembro, 22 2007 using texi2html 1.76.