Компьютерная математика Maple



 

Пакет 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]     Doma1ns[evaldomains]

  Domains[example]    Domains[coding]

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

данных) и Z (для целочисленных данных):

> Q['+'](l/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. Пока же возможности доменов скорее выглядят как очередная экзотика, чем как реальное средство для оптимизации вычислений. Потребуется время, чтобы показать, что это не так.

 

Назад Начало Вперед