next up previous contents index Next: Ordering a list of Up: Utilities procedures of ALIAS-Maple Previous: Multiple occurrences of variables:

  • La page de J-P. Merlet
  • J-P. Merlet home page
  • La page Présentation de COPRIN
  • COPRIN home page
  • La page "Présentation" de l'INRIA
  • INRIA home page


    Mathematical functions in an expression

    The procedure Math_Func allows one to obtain a list of mathematical functions (in the Maple sense) and of their power in a given expression. For example

    Math_Func([(sin(x)^2+cos(x)^3)/x+sin(x)^2*cos(x)^3+1/sin(x)^2])
    
    returns in the global variable ALIAS_MATH_FUNC the list
                                    3        2     1
                              [cos(x) , sin(x) , -------]
                                                       2
                                                 sin(x)
    
    If these terms appears more than once in the expression the MakeF procedure (see section 2.1.1) will generate a code where they are evaluated for each occurrence, which is costly. The ALIAS_FSIMPLIFY mechanism described in the MakeF section may be used to evaluate only once these expressions and substitute them by interval when calculating the interval evaluation. The end-user write its own ALIAS_FSIMPLIFY procedure but the result of Math_Func may be used to write such a procedure. A typical ALIAS_FSIMPLIFY using this functionality is as follows:
     
    ALIAS_FSIMPLIFY:=proc(fid,expr)
    local aux,ai:
    if type(expr,string) then
       fprintf(fid,"INTERVAL_VECTOR ALIAS_S(%d);\n",nops(ALIAS_MATH_FUNC)):
       for ai from 1 to nops(ALIAS_MATH_FUNC) do
           aux:=Convert_Frac_Cons(Code(ALIAS_MATH_FUNC[ai],[x,y,z,w])):
           fprintf(fid,"ALIAS_S(%d)=%s;\n",ai,aux):
       od:
    RETURN(0):
    fi:
    aux:=expr:
    for ai from 1 to nops(ALIAS_MATH_FUNC) do
       aux:=subs(ALIAS_MATH_FUNC[ai]=ALIAS_S(ai),aux):
    od:
    RETURN(aux):
    end:
    
    Note the use of the Code procedure to convert the expression into an interval equivalent.


    next up previous contents index Next: Ordering a list of Up: Utilities procedures of ALIAS-Maple Previous: Multiple occurrences of variables:
  • La page de J-P. Merlet
  • J-P. Merlet home page
  • La page Présentation de COPRIN
  • COPRIN home page
  • La page "Présentation" de l'INRIA
  • INRIA home page

    Jean-Pierre Merlet