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 threadsafe as of Maple 15.



Examples


>


 (1) 
>


 (2) 
>


 (3) 
>


 (4) 
>


 (5) 
>


 (6) 
>


 (7) 
>


 (8) 
>


 (9) 
>


 (10) 
>


 (11) 


Download Help Document
Was this information helpful?