Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
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