Maple Professionel
Maple Académique
Maple Edition Étudiant
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professionel
MapleSim Académique
Maple T.A. - Suite d'examens de classement
Maple T.A. MAA Placement Test Suite
Möbius - Didacticiels de mathématiques en ligne
Machine Design / Industrial Automation
Aéronautique
Ingénierie des véhicules
Robotics
Energie
System Simulation and Analysis
Model development for HIL
Modélisation du procédé pour la conception de systèmes de contrôle
Robotics/Motion Control/Mechatronics
Other Application Areas
Enseignement des mathématiques
Enseignement de l’ingénierie
Enseignement secondaire et supérieur (CPGE, BTS)
Tests et évaluations
Etudiants
Modélisation financière
Recherche opérationnelle
Calcul haute performance
Physique
Webinaires en direct
Webinaires enregistrés
Agenda des évènements
Forum MaplePrimes
Blog Maplesoft
Membres Maplesoft
Maple Ambassador Program
MapleCloud
Livres blancs techniques
Bulletin électronique
Livres Maple
Math Matters
Portail des applications
Galerie de modèles MapleSim
Cas d'Etudes Utilisateur
Exploring Engineering Fundamentals
Concepts d’enseignement avec Maple
Centre d’accueil utilisateur Maplesoft
Centre de ressources pour enseignants
Centre d’assistance aux étudiants
evaldomains - evaluation of Maple-expressions in a Domains domain
Calling Sequence
evaldomains[D](expr)
Parameters
expr
-
Maple-expression
D
Domains domain
Description
evaldomains[D](expr) evaluates the Maple-expression expr in the Domains domain D and returns a Maple-expression. evaldomains provides a Maple-like user-interface, data-encapsulation and type-checking for the arguments of Domains-functions. It is intended to simplify interactive use of Domains and is not intended to be used as a coding tool for writing Domains programs.
domain-Input/Output functions are implicitly applied during evaluation of the expression, hiding the data-representation of domain-elements. The type of arguments passed to domain-operations is checked against the signatures of the operations. The signatures of the domain operations are accessible through the command show(D, operations).
All the operations within expr are assumed to be operations in the specified Domains-domain D.
The following example shows the difference at the user-interface level:
domain := DenseUnivariatePolynomial (Zmod(7), x):
Using Domains syntax:
domain[Output](domain[`*`](domain[Input](x^2-3*x+1),domain[Input](2*x^3-4)));
Using the more familiar Maple syntax:
evaldomains[domain]((x^2-3*x+1)*(2*x^3-4));
If evaluations of several expressions in one domain are to be performed, it is often preferable to create a domain-evaluator with the use of aliases:
alias (dup = evaldomains[domain]):
Since the expression passed to evaldomains is first processed by the Maple parser, the user has to be aware of the built-in simplifications, reordering of operands and evaluation of top-level functions. Hence, the following is always simplified to 0.
evaldomains[domain] (Random() - Random());
An example for evaluation of top-level functions within the call of evaldomains can be obtained by the following
galoisfield := GaloisField (13, 2):
evaldomains[galoisfield](order(Random()));
Error, invalid input: order expects its 1st argument, expr, to be of type series, but received Random()
which results in an error, since order is a builtin top-level function which will be evaluated before the expression is passed to evaldomains. In order to prevent such behavior, the user is advised to use forward quotes where necessary.
evaldomains[galoisfield]('order'(Random())); ...
Furthermore, if the domain has non-commutative multiplication or addition, the &-version of the operator has to be used in order to prevent reordering of the operands, e.g.
Sm := SquareMatrix (2, Z): alias (sm = evaldomains[Sm]):
A := sm (Random());
sm (A &* (A + 1));
evaldomains is only available after performing the command with(Domains).
Examples
---------------------- Domains version 1.0 --------------------- Initially defined domains are Z and Q the integers and rationals Abbreviations, e.g. DUP for DenseUnivariatePolynomial, also made
Create a Dup-evaluator using the alias statement
evaldomains outputs even compound data-structures and ...
call-by-name parameters nicely (ie. not in their internal representation)
Re and Im are also top-level Maple functions which must be quoted in order to prevent evaluation by the Maple parser
See Also
Domains
Download Help Document