[ < ] [ > ]   [ << ] [ 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: 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.

Función: gensym ()
Función: gensym (x)

gensym() crea y devuelve una nueva símbolo o variable sin valor asignado.

El nombre del nuevo símbolo está formado por la concatenación de un prefijo, cuyo valor por defecto es "g", y de un sufijo, el cual es la representación decimal de un número que coincide, por defecto, con el valor de un contador interno de Lisp.

En caso de suministrar el argumento x, siendo este una cadena, se utilizará como prefijo en lugar de "g", lo cual tendrá efecto sólo para esta llamada a gensym·

En caso de suministrar el argumento x, siendo este un número entero, se utilizará como sufijo en lugar del contador interno de Lisp, lo cual tendrá efecto sólo para esta llamada a gensym·

Si no se suministra el sufijo en forma explícita, y sólo en este caso, el contador interno sufrirá un incremento después de haber sido utilizado.

Ejemplos:

(%i1) gensym();
(%o1)                         g887
(%i2) gensym("new");
(%o2)                        new888
(%i3) gensym(123);
(%o3)                         g123
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.

rem deshace la asignación realizada por put.

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. rem deshace la asignación realizada por put.

rem devuelve done si átomo tenía la propiedad indicador cuando rem fue invocado, devolviendo false si carecía tal propiedad.

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; remove no elimina las propiedades definidas por put.

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.

Antes de utilizar esta función ejecútese load(rncomb).

Función: scalarp (expr)

Devuelve true si expr es 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 enero, 16 2011 using texi2html 1.76.