Иллюстрированный самоучитель по Maple 6/7

Пакет Domains

Этот небольшой пакет служит для создания доменов – таблиц операций для вычислений. При его загрузке появляется сообщение о переопределениях объектов и список из всего лишь шести функций:

>restart;with(Domains):

Domains version 1.0

Initially defined domains are Z and Q the integers and rationale
 Abbreviations, e.g. DUP for DenseUnivariatePolynomial, also made Warning,
 the protected names Array, Matrix and Vector have been redefined and unprotected
 [Array, Matrix, Matrixlnverse, Vector, init, show]

Пакет допускает применение следующих конструкций:

Domains[domain] Domains[evaldomains]

Domains[example] Domains[coding]

Приведенный ниже пример поясняет создание и использование доменов Q (для рациональных данных) и Z (для целочисленных данных):

> Q['+'](1/2.2/5.3/8);
51/40
> Z[Gcd](660.130);
10

Следующая операция показывает, что домен Z является таблицей:

> type(Z,table);
true

А функция show позволяет вывести полный перечень всех операций, доступных для домена Z:

> show(Z,operations);

Signatures for constructor Z'
note: operations prefixed by – are not available
*: (Integers,Z) › Z
*:(Z,Z*) › Z
+:(Z,Z*) › Z
-: (Z,Z) › Z'
-:Z › Z
0:Z
1:Z

<:(Z,Z) › Boolean
<=: (Z.Z) › Boolean
<>: (Z.Z) › Boolean
=:(Z.Z) › Boolean
>: (Z.Z) › Boolean
>-: (Z.Z) › Boolean

Abs: Z › Z
Characteristic: Integers
Coerce: Integers › Z
Div: (Z.Z) › Union(Z,.FAIL)
EuclideanNorm: Z › Integers
Factor: Z › [Z,.[[Z,Integers]*]]
Gcd: Z* › Z

Gcdex: (Z,Z,Name) › Z
Gcdex: (Z,.Z,Name,Name) › Z

Input: Expression › Union(Z,.FAIL)
Inv: Z › Union(Z,FAIL)
Lcm: Z* › Z

Max: (Z,Z*) › Z
Min: (Z,.Z*) › Z
Modp: (Z,.Z) › Z
Mods: (Z.Z) › Z
ModularHoraomorphlsm: () › (Z › Z.Z)'

Normal: Z › Z
Output: Z › Expression
Powmod: (Z,Integers,Z) › Z
Prime: Z › Boolean

Quo: (Z,.Z,Name) › Z
Quo: (Z,.Z) › Z

Random: О › Z
RelativelyPrime: (Z,.Z) › Boolean'
Rem: (Z,.Z,.Name) › Z
Rera: (Z,Z) › Z
Sign: Z › UNIONU,.-l,0)

SmallerEuclideanNorm: (Z,.Z) › Boolean
Sqrfree: Z › [Z,.[[Z,.Integers]*]]

Type: Expression › 'Boolean'
Unit: Z › Z
UnitNormal: Z › [Z,.Z,.Z]

Zero: Z › Boolean
^: (Z,Integers) › Z.

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

Потребуется время, чтобы показать, что это не так.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.