[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

35. Miscelánea de opciones


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

35.1 Introducción a la miscelánea de opciones

En esta sección se comentan varias opciones que tienen un efecto global sobre le comportamiento de Maxima. También se comentan varias listas, como la de las funciones definidas por el usuario.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

35.2 Share

El directorio "share" de Maxima contiene programas y ficheros de interés para los usuarios de Maxima, pero no forman parte del núcleo de Maxima. Estos programas se cargan en memoria con llamadas a las funciones load o setup_autoload.

La llamada :lisp *maxima-sharedir* muestra la localización del directorio "share" dentro del sistema de ficheros del usuario.

La llamada printfile ("share.usg") muestra una lista actualizada de paquetes en "share". Los usuarios pueden encontrar más información accediendo directamente a los contenidos del directorio "share".


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

35.3 Funciones y variables para la miscelánea de opciones

Variable del sistema: aliases

Valor por defecto: []

La variable aliases es la lista de átomos que tienen un "alias" definido por el usuario (establecido mediante las funciones alias, ordergreat o orderless o declarando el átomo como un noun (nombre) con declare.

Declaración: alphabetic

alphabetic es una declaración de tipo reconocida por declare. La expresión declare(s, alphabetic) indica a Maxima que reconozca como alfabéticos todos los caracteres de s, que debe ser una cadena alfanumérica.

Ejemplo:

(%i1) xx\~yy\`\@ : 1729;
(%o1)                         1729
(%i2) declare ("~`@", alphabetic);
(%o2)                         done
(%i3) xx~yy`@ + @yy`xx + `xx@@yy~;
(%o3)               `xx@@yy~ + @yy`xx + 1729
(%i4) listofvars (%);
(%o4)                  [@yy`xx, `xx@@yy~]
Función: apropos (cadena)

Busca nombres en Maxima en los cuales aparezca cadena en cualquier lugar dentro de ellos. Así, apropos (exp) devuelve una lista con todas las variables y funciones que tengan exp formando parte de sus nombres, como expand, exp y exponentialize. De esta forma, si el usuario tan solo recuerda parte del nombre de algo, puede utilizar este comando para encontrar el resto del nombre. De manera semejante, también se puede hacer apropos (tr_) para encontrar una lista de muchas de las variables relacionadas con el traductor, buena parte de las cuales comienzan con tr_.

Función: args (expr)

Devuelve la lista de argumentos de expr, que puede ser cualquier tipo de expresión a excepción de un átomo. Tan solo se muestran los argumentos del operador principal; subexpresiones de expr aparecen como elementos o subexpresiones de elementos de la lista de argumentos.

El orden de los miembros de la lista puede depender de la variable global inflag.

La llamada args (expr) es equivalente a substpart ("[", expr, 0).

Véanse también substpart y op.

Variable optativa: genindex

Valor por defecto: i

La variable genindex es el prefijo alfabético utilizado para generar la siguiente variable de sumación en caso de necesidad.

Variable optativa: gensumnum

Valor por defecto: 0

La variable gensumnum es el sufijo numérico utilizado para generar la siguiente variable de sumación. Si vale false entonces el índice consistirá solamente de genindex, sin sufijo numérico.

Constante: inf

Símbolo que identifica al infinito positivo dentro de un contexto de números reales.

Constante: infinity

Símbolo que identifica al infinito complejo, una magnitud infinita con ángulo de fase arbitrario. Véanse también inf y minf.

Variable del sistema: infolists

Valor por defecto: []

La variable infolists es una lista con los nombres de todas las listas que guardan información sobre Maxima. Estas son:

labels

Todas las etiquetas %i, %o y %t con valores asignados.

values

Todos los átomos que son variables de usuario, no opciones de Maxima creadas con : o ::.

functions

Todas las funciones de usuario creadas con := o define.

arrays

Arreglos declarados y no declarados, creados por :, :: o :=.

macros

Cualquier macro definida por el usuario.

myoptions

Todas las opciones inicializadas por el usuario, independientemente de que posteriormente hayan sido devueltas a sus valores por defecto.

rules

Reglas de patrones y simplificación definidas por el usuario, creadas con tellsimp, tellsimpafter, defmatch o defrule.

aliases

Átomos que tienen un "alias" definido por el usuario, creado por las funciones alias, ordergreat o orderless o por haber declarado el átomo como noun (nombre) con declare.

dependencies

Átomos que tienen dependencias funcionales, creados por las funciones depends o gradef.

gradefs

Funciones que tienen derivadas definidas por el usuario, creadas por la función gradef.

props

Todos los átomos que tengan cualquier propiedad que no sea de las mencionadas hasta ahora, como las establecidas por atvalue, matchdeclare, etc., así como propiedadas especificadas en la función declare.

let_rule_packages

Todos los paquetes de reglas let definidos por el usuario, junto con el paquete especial default_let_rule_package; default_let_rule_package es el nombre del paquete de reglas utilizado cuando no se use ningún otro especificado por el usuario.

Función: integerp (expr)

Devuelve true si expr es un número entero y false en cualquier otro caso.

La función integerp devuelve false si su argumento es un símbolo, incluso cuando éste ha sido declarado como entero.

Ejemplos:

(%i1) integerp (0);
(%o1)                         true
(%i2) integerp (1);
(%o2)                         true
(%i3) integerp (-17);
(%o3)                         true
(%i4) integerp (0.0);
(%o4)                         false
(%i5) integerp (1.0);
(%o5)                         false
(%i6) integerp (%pi);
(%o6)                         false
(%i7) integerp (n);
(%o7)                         false
(%i8) declare (n, integer);
(%o8)                         done
(%i9) integerp (n);
(%o9)                         false
Variable optativa: m1pbranch

Valor por defecto: false

La variable m1pbranch es la rama principal de -1 elevado a una potencia. Cantidades como (-1)^(1/3) (esto es, un exponente racional impar) y (-1)^(1/4) (esto es, un exponente racional par) son tratados como sigue:

              dominio real
                            
(-1)^(1/3):      -1         
(-1)^(1/4):   (-1)^(1/4)   

             dominio complejo              
m1pbranch:false          m1pbranch:true
(-1)^(1/3)               1/2+%i*sqrt(3)/2
(-1)^(1/4)              sqrt(2)/2+%i*sqrt(2)/2
Función: numberp (expr)

Devuelve true si expr es un enúmero entero, racional, de coma flotante o "bigfloat", en caso contrario devuelve false.

La función numberp devuelve false si su argumento es un símbolo, incluso cuando el argumento es un número simbólico como %pi o %i, o aunque haya sido declarado como even (par), odd (impar), integer (entero), rational (racional), irrational (irracional), real (real), imaginary (imaginario) o complex (complejo).

Ejemplos:

(%i1) numberp (42);
(%o1)                         true
(%i2) numberp (-13/19);
(%o2)                         true
(%i3) numberp (3.14159);
(%o3)                         true
(%i4) numberp (-1729b-4);
(%o4)                         true
(%i5) map (numberp, [%e, %pi, %i, %phi, inf, minf]);
(%o5)      [false, false, false, false, false, false]
(%i6) declare (a, even, b, odd, c, integer, d, rational,
     e, irrational, f, real, g, imaginary, h, complex);
(%o6)                         done
(%i7) map (numberp, [a, b, c, d, e, f, g, h]);
(%o7) [false, false, false, false, false, false, false, false]
Función: properties (a)

Devuelve una lista con los nombres de propiedades asociadas con el átomo a.

Símbolo especial: props

props son átomos que tienen cualquier propiedad diferente de las mencionadas explícitamente en infolists, tales como las especificadas por atvalues, matchdeclares, etc., así como las propiedades especificadas mediante la función declare.

Función: propvars (prop)

Devuelve una lista con aquellos átomos de la lista props que tienen la propiedad indicada por prop.

Función: put (átomo, valor, indicador)

Asigna el valor a la propiedad (especificada por indicador) de átomo; indicador puede ser el nombre de cualquier propiedad y no solamente de aquellas definidas por el sistema.

La función put evalúa sus argumentos y devuelve valor.

Ejemplos:

(%i1) put (foo, (a+b)^5, expr);
                                   5
(%o1)                       (b + a)
(%i2) put (foo, "Hello", str);
(%o2)                         Hello
(%i3) properties (foo);
(%o3)            [[user properties, str, expr]]
(%i4) get (foo, expr);
                                   5
(%o4)                       (b + a)
(%i5) get (foo, str);
(%o5)                         Hello
Función: qput (átomo, valor, indicador)

Asigna valor a la propiedad de átomo que especifique indicador. Actúa del mismo modeo que put, excepto que sus argumentos no son evaluados.

Ejemplo:

(%i1) foo: aa$ 
(%i2) bar: bb$
(%i3) baz: cc$
(%i4) put (foo, bar, baz);
(%o4)                          bb
(%i5) properties (aa);
(%o5)                [[user properties, cc]]
(%i6) get (aa, cc);
(%o6)                          bb
(%i7) qput (foo, bar, baz);
(%o7)                          bar
(%i8) properties (foo);
(%o8)            [value, [user properties, baz]]
(%i9) get ('foo, 'baz);
(%o9)                          bar
Función: rem (átomo, indicador)

Elimina del átomo la propiedad indicada por indicador.

Función: remove (a_1, p_1, ..., a_n, p_n)
Función: remove ([a_1, ..., a_m], [p_1, ..., p_n], ...)
Función: remove ("a", operator)
Función: remove (a, transfun)
Función: remove (all, p)

Elimina propiedades asociadas con átomos.

La llamada remove (a_1, p_1, ..., a_n, p_n) elimina la propiedad p_k del átomo a_k.

La llamada remove ([a_1, ..., a_m], [p_1, ..., p_n], ...) elimina las propiedades p_1, ..., p_n de los átomos a_1, ..., a_m. Puede tener más de un par de listas.

La llamada remove (all, p) elimina la propiedad p de todos los átomos que la tengan.

Las propiedades eliminadas pueden ser de las que define el sistema, como function, macro o mode_declare, o de las que define el usuario.

La llamada remove ("a", operator) o su equivalente remove ("a", op) elimina de a las propiedades de operador declaradas por prefix, infix, nary, postfix, matchfix o nofix. Nótese que el nombre del operador debe escribirse como cadena precedida de apóstrofo.

La llamada remove devuelve siempre done independientemente que haya algún átomo con la propiedad especificada.

Función: remvalue (nombre_1, ..., nombre_n)
Función: remvalue (all)

Elimina del sistema los valores de las variable de usuario nombre_1, ..., nombre_n (incluso las que tienen subíndices).

La llamada remvalue (all) elimina los valores de todas las variables en values, la lista de todas las variables a las que el usuario a dado algún nombre, pero no de aquéllas a las que Maxima asigna automáticamente un valor.

Véase también values.

Función: rncombine (expr)

Transforma expr combinando todos los términos de expr que tengan denominadores idénticos o que difieran unos de otros por factores numéricos. Su comportamiento es diferente al de la función combine, que combina términos con iguales denominadores.

Haciendo pfeformat: true y utilizando combine se consiguen resultados similares a aquéllos que se pueden obtener con rncombine, pero rncombine realiza el paso adicional de multiplicar denominadores numéricos. Esto da como resultado expresiones en las que se pueden reconocer algunas cancelaciones.

Función: scalarp (expr)

Devuelve true si expr is un número, constante o variable declarada como scalar con declare, o compuesta completamente de tales números, constantes o variables, pero que no contengan matrices ni listas.

Función: setup_autoload (nombre_fichero, función_1, ..., función_n)

Especifica que si alguna de las funciones function_1, ..., function_n es referenciada pero todavía no ha sido definida, se cargará nombre_fichero mediante una llamada a load. El nombre_fichero normalmente contendrá las definiciones de las funciones especificadas, aunque esto no es imperativo.

La función setup_autoload no opera con arreglos de funciones.

La función setup_autoload no evalúa sus argumentos.

Ejemplo:

(%i1) legendre_p (1, %pi);
(%o1)                  legendre_p(1, %pi)
(%i2) setup_autoload ("specfun.mac", legendre_p, ultraspherical);
(%o2)                         done
(%i3) ultraspherical (2, 1/2, %pi);
Warning - you are redefining the Macsyma function ultraspherical
Warning - you are redefining the Macsyma function legendre_p
                            2
                 3 (%pi - 1)
(%o3)            ------------ + 3 (%pi - 1) + 1
                      2
(%i4) legendre_p (1, %pi);
(%o4)                          %pi
(%i5) legendre_q (1, %pi);
                              %pi + 1
                      %pi log(-------)
                              1 - %pi
(%o5)                 ---------------- - 1
                             2

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

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