Previous: Библиотека Share, Up: Вспомогательные опции   [Contents][Index]

33.3 Вспомогательные функции и переменные

Системная переменная: aliases

Значение по умолчанию: []

aliases – список всех атомов, котрые имеют определенные пользователем алиасы (определяются функциями alias, ordergreat, orderless или при декларации атома noun при помощи declare).

Декларация: alphabetic

alphabetic является декларацией типа, распознаваемой функцией declare. Декларация declare(s, alphabetic) говорит Maxima рассматривать все символы, входящие в s (должен быть строкой), как буквенные.

См. также Идентификаторы.

Пример:

(%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~]
Функция: apropos (string)

Ищет имена объектов Maxima, содержащие string в качестве подстроки. Например, вызов apropos (exp) возвращает список всех переменных и функций, имеющих exp в качестве части своего имени, такие как expand, exp и exponentialize. Таким образом, если вы помните только часть имени какого-либо объекта, то можете использовать эту команду для поиска полного наименования. Аналогично, можно использовать apropos (tr_), для того, чтобы вывести список переключателей, влияющих на работу транслятора, т.к. имена большинства из них начинаются с tr_.

Функция: args (expr)

Возвращает список аргументов параметра expr, который может быть любым отличным от атома выражением. Возвращаются только аргументы оператора самого верхнего уровня. Подвыражения expr появляются, как элементы подвыражений элементов списка аргументов.

Порядок выражений в возвращаемом списке может зависеть от глобального флага inflag.

Вызов args (expr) эквивалентен substpart ("[", expr, 0). См. также substpart и op.

Управляющая переменная: genindex

Значение по умолчанию: i

genindex – буквенный префикс, используемый для создания новой переменной суммирования.

Управляющая переменная: gensumnum

Значение по умолчанию: 0

gensumnum – числовой суффикс, используемый для создания новой переменной суммирования. Если равна false, то индекс будет состоять только из genindex без числового суффикса.

Системная переменная: infolists

Значение по умолчанию: []

infolists – есть список имен всех информационных списков Maxima. А именно:

labels

Все имеющие значение %i, %o и %t метки.

values

Все имеющие значение атомы, определенные пользователем (не встроенные в Maxima управляющие переменные и переключатели), созданные при помощи операторов :, :: или функциональным присваиванием.

functions

Все определенные пользователем функции, созданные при помощи := или define.

arrays

Все объявленные и необъявленные массивы, созданные при помощи :, :: или :=.

macros

Все определенные пользователем макро-функции.

myoptions

Все управляющие переменные, значение которых было изменено пользователем, независимо от того, имеют ли они в данный момент значения по умолчанию или нет.

rules

Все определенные пользователем правила подстановок и правила упрощения, созданные при помощи tellsimp, tellsimpafter, defmatch или defrule.

aliases

Все атомы, имеющие определенные пользователем алиасы, созданные при помощи функций alias, ordergreat, orderless или при декларации атома noun с помощью declare.

dependencies

Все атомы, имеющие функциональные зависимости, созданные с помощью функций depends или gradef.

gradefs

Все функции, имеющие определенные пользователем производные, определенные при помощи функции gradef.

props

Все атомы, имеющие свойства, отличные от упомянутых выше, такие как свойства задаваемые atvalue, matchdeclare и т.п., а также, свойства, установленные функцией declare.

let_rule_packages

Все определенные пользователем пакеты правил let плюс специальный пакет default_let_rule_package. (default_let_rule_package – имя пакета правил, который используется по умолчанию, если иной не объявлен пользователем явно.)

Функция: integerp (expr)

Возвращает true, если expr является буквальным целым числом, и false в противном случае.

Функция integerp возвращает false, если аргумент является символом, даже если этот символ объявлен целочисленным.

Примеры:

(%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
Управляющая переменная: m1pbranch

Значение по умолчанию: false

m1pbranch определяет главную ветвь для отрицательной степени -1. Величины, подобные (-1)^(1/3) (т.е. "нечетные" рациональные степени) и (-1)^(1/4) (т.е. "четные" рациональные степени) определяются следующим образом:

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

             domain:complex              
m1pbranch:false          m1pbranch:true
(-1)^(1/3)               1/2+%i*sqrt(3)/2
(-1)^(1/4)              sqrt(2)/2+%i*sqrt(2)/2
Функция: numberp (expr)

Возвращает true, если expr есть буквальное целое число, рациональное число, число с плавающей точкой или число с плавающей точкой высокой точности, иначе возвращается false.

Функция numberp возвращает false, если параметр является символом, даже если он является символическим числом, таким как %pi или %i, или объявлен even, odd, integer, rational, irrational, real, imaginary или complex.

Примеры:

(%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]
Функция: properties (a)

Возвращает список имен всех свойств, ассоциированных с атомом a.

Специальный символ: props

props – список атомов, имеющих свойства отличные от тех, что явно перечислены в infolists, такие как, свойства, задаваемые atvalue, matchdeclare и т.п., а также свойства, задаваемые функцией declare.

Функция: propvars (prop)

Возвращает список атомов из списка props, которые имеют свойство, обозначаемое prop. Т.е. propvars (atvalue) возвращает список атомов, имеющих свойство atvalue.

Функция: put (atom, value, indicator)

Присваивает атому atom значение свойства indicator, равное value. indicator может быть не только системным свойством, но любым другим именем свойства.

Функция put вычисляет свои аргументы. put возвращает value.

Примеры:

(%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
Функция: qput (atom, value, indicator)

Присваивает атому atom значение свойства indicator, равное value. Аналогично put, но не вычисляет свои аргументы.

Примеры:

(%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
Функция: rem (atom, indicator)

Удаляет свойство indicator у атома atom.

Функция: remove (a_1, p_1, ..., a_n, p_n)
Функция: remove ([a_1, ..., a_m], [p_1, ..., p_n], ...)
Функция: remove ("a", operator)
Функция: remove (a, transfun)
Функция: remove (all, p)

Удаляет свойства, ассоциированные с атомами.

Вызов remove (a_1, p_1, ..., a_n, p_n) удаляет свойство p_k у атома a_k.

Вызов remove ([a_1, ..., a_m], [p_1, ..., p_n], ...) удаляет свойства p_1, ..., p_n у атомов a_1, ..., a_m. Может быть более чем одна пара списков.

Вызов remove (all, p) удаляет все свойства p у всех имеющих его атомов.

Удаляемые свойства могут быть как системными, такими как function, macro или mode_declare, так и пользовательскими.

Удаление свойства transfun удаляет транслированный Lisp вариант функции. После удаления этого свойства, вместо транслированной Lisp версии функции будет выполняться Maxima версия.

Вызов remove ("a", operator) или, эквивалентно, remove ("a", op), удаляет у a операторные свойства, декларированные функциями prefix, infix, nary, postfix, matchfix или nofix. Отметим, что имя оператора должно быть записано в виде строки с двойными кавычками.

remove всегда возвращает done, независимо от того, имел ли атом требуемое свойство или нет. Такое поведение отличается от более специфичных функций, удаляющих свойства, таких как remvalue, remarray, remfunction и remrule.

Функция: remvalue (name_1, ..., name_n)
Функция: remvalue (all)

Удаляет из системы значения пользовательских переменных name_1, ..., name_n (могут быть переменными с индексом).

Вызов remvalue (all) удаляет все значения всех переменных из списка определенных пользователем переменных values (в отличии от переменных, автоматически определенных Maxima).

См. также values.

Функция: rncombine (expr)

Преобразует выражение expr, комбинируя слагаемые expr, имеющие одинаковые знаменатели или знаменатели отличающиеся только на числовой множитель. Это поведение несколько отличается от поведения функции combine, которая собирает члены с идентичными знаменателями.

Устанавливая pfeformat: true и используя combine, можно получить результат более компактный, чем дает rncombine, но rncombine выполняет дополнительный шаг, перемножая численные множители знаменателей. Это приводит к более ясной форме и возможности распознать сокращения.

Команда load("rncomb") загружает эту функцию.

Функция: scalarp (expr)

Возвращает true если expr является числом, константой или переменной, объявленной scalar при помощи declare, или выражением, полностью состоящим из чисел, констант и скалярных переменных, но не содержащим матрицы или списки.

Функция: setup_autoload (filename, function_1, ..., function_n)

Определяет то, что если любая из функций function_1, ..., function_n вызывается, но еще не определена в момент вызова, то файл filename загружается при помощи load. Файл filename обычно содержит определения указанных функций, хотя это и не обязательно.

setup_autoload не работает для функций-массивов.

setup_autoload не вычисляет свои аргументы.

Примеры:

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

Previous: Библиотека Share, Up: Вспомогательные опции   [Contents][Index]