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
frontend - process general expression into a rational expression
Calling Sequence
frontend(p, x, f, arg1,..., argn)
Parameters
p
-
procedure
x
list of arguments to p
f
(optional) list of two sets: first, a set of type names not to be frozen; second, a set of expressions not to be frozen (default is [{`+`,`*`},{}])
argi
(optional) further arguments to p; these arguments are not to be frozen
Description
The purpose of frontend is to extend the domain of computation for many of the functions in Maple.
For example, the procedure used by the Maple normal function is defined to work over the domain of rational functions. Thus, to handle more general expressions such as expressions involving or reasonably, frontend is used to ``temporarily freeze'' all occurrences of such expressions for unique names. This is always valid.
However, it is important to understand that the zero equivalence property of the normal function is only guaranteed if the subexpressions that are frozen are algebraically independent.
Each item in the list x is ``frozen''. The order in which the ``freezing'' occurs is as follows.
The following are not frozen: integers; rationals; floats that are of type numeric; strings; and names that are not of type constant.
If the argument is of type `+`, `*`, or `^` and the exponent is an integer, then freezing is applied recursively.
If the argument has any subexpression in the set of expressions, then freezing is applied recursively.
If the argument is one of the types in the set of type names, freezing is applied recursively.
Otherwise, the expression is substituted for a unique name.
The procedure p is then evaluated with the ``frozen'' argument(s). Any frozen names occurring in the result are substituted back for their original subexpressions.
The frontend function does not work with functions that assign a value to the function argument(s). For example, gcdex works but not if you specify the optional arguments.
Thread Safety
The frontend command is thread-safe as of Maple 15.
For more information on thread safety, see index/threadsafe.
Examples
See Also
freeze
Download Help Document