\begin{page}{UXANNA}{AXIOM/NAG Expert System}
\centerline{\tt{\inputbitmap{\htbmdir{}/anna_logo.xbm}}\rm}
\newline
\centerline{This expert system chooses, and uses, NAG numerical routines.}
\begin{scroll}
\blankline
\indent{2}
\beginmenu
\menumemolink{Integration}{UXANNAInt}
\blankline
\menumemolink{Ordinary Differential Equations}{UXANNAOde}
\blankline
\menumemolink{Partial Differential Equations}{UXANNAPde}
\blankline
\menumemolink{Optimization}{UXANNAOpt}
\vspace{10}
\menumemolink{About the AXIOM/NAG Expert System}{UXANNATxt}
%\unixcommand{(Postscript)}{ghostview \ \htbmdir{}/anna.ps}
%\blankline
%\menumemolink{How to use the NAGLINK}{nagLinkIntroPage}
%\blankline
%\menumemolink{Tutorial}{tutorialIntroPage}
%\blankline
%\item \menulispdownlink{Interpolation}{(|interp1|}
\endmenu
\indent{0}
\end{scroll}
%\unixcommand{Netscape}{netscape \ http:\/\/www.bath.ac.uk\/\~masbjd\/anna.html}
\autobutt{HelpContents}
\end{page}

\begin{page}{UXANNAInt}{Integration}
Welcome to the Integration section of {\tt
\inputbitmap{\htbmdir{}/anna.xbm.tiny}}, the {\em AXIOM/NAG Expert
System}.  This system chooses, and uses, NAG numerical routines.
\begin{scroll}
\blankline
\indent{2}
\beginmenu
\item \menulispdownlink{Integration}{(|annaInt|)}\space{}\newline
\indent{5} Integrating a function over a finite or infinite range.
\blankline
\item \menulispdownlink{Multiple Integration}{(|annaMInt|)}\space{}\newline
\indent{5} Integrating a multivariate function over a finite space.  
The dimensions of the space need to be 2 <= n <= 15.
\blankline
\menudownlink{Examples}{UXANNAIntEx}\space{}\newline
\indent{5} Examples of integration.  These examples cover all of the major 
methods.  Parameters can be changed to investigate the effect 
on the choice of method.
\endmenu
\indent{0}
\end{scroll}
\autobutt{MainHelp}
\end{page}

\begin{page}{UXANNAOde}{Ordinary Differential Equations}
Welcome to the Ordinary Differential Equations section of {\tt
\inputbitmap{\htbmdir{}/anna.xbm.tiny}}, the 
{\em AXIOM/NAG Expert System}.  
This system chooses, and uses, NAG numerical routines.
\begin{scroll}
\blankline
\blankline
\indent{2}
\beginmenu
\item \menulispdownlink{Ordinary Differential Equations}{(|annaOde|)}\space{}\newline
\indent{5} Finding a solution to an Initial Value Problem of a set of Ordinary Differential Equations.
\blankline
\menudownlink{Examples}{UXANNAOdeEx}\newline
\indent{5} Examples of ODE problems with various features using both stiff
and non-stiff methods.  Parameters can be changed to investigate the effect 
on the choice of method.
\autobutt{MainHelp}
\endmenu
\indent{0}
\end{scroll}
\end{page}

\begin{page}{UXANNAOpt}{Optimization}
Welcome to the Optimization section of {\tt
\inputbitmap{\htbmdir{}/anna.xbm.tiny}}, the {\em AXIOM/NAG Expert System}.  
This system chooses, and uses, NAG numerical routines.
\begin{scroll}
\blankline
\indent{2}
\beginmenu
\item \menulispdownlink{Optimization of a Single Multivariate Function}
{(|annaOpt|)}\space{}\newline
\indent{6} Finding the minimum of a function in n variables. 
\newline
\indent{6} Linear Programming and Quadratic Programming problems.
\blankline
\indent{4} 
\beginmenu
\menudownlink{Examples}{UXANNAOptEx}\newline
\indent{8} Examples of optimization problems with various constraint features.
\endmenu
\blankline
\item \menulispdownlink{Optimization of a set of observations of a data set}
{(|annaOpt2|)}\space{}\newline
\indent{6} Least-squares problems.
\newline
\indent{6} Checking the goodness of fit of a least-squares model.
\blankline
\indent{4} 
\beginmenu
\menudownlink{Examples}{UXANNAOpt2Ex}\newline
\indent{8} Examples of least squares problems.
\endmenu
\endmenu
\indent{0}
\end{scroll}
\autobutt{MainHelp}
\end{page}

\begin{page}{UXANNAPde}{Partial Differential Equations}
Welcome to the Partial Differential Equations section of {\tt
\inputbitmap{\htbmdir{}/anna.xbm.tiny}}, the
{\em AXIOM/NAG Expert System}.  
\begin{scroll}
\indent{2}
\beginmenu
\menulispdownlink{Second Order Elliptic Partial Differential Equation}{(|annaPDESolve|)}
\newline
\indent{4} Discretizing the PDE:
\newline
\centerline{\inputbitmap{\htbmdir{}/d03eef.xbm}}
defined on a rectangular region with boundary conditions of the form 
\centerline{\inputbitmap{\htbmdir{}/d03eef1.bitmap}} 
and solving the resulting
seven-diagonal finite difference equations using a multigrid technique.
\blankline
%\menulispdownlink{Helmholtz Equation in 3-D, Cartesian Coordinates}{(|d03fafVars|)}
%\newline
%\indent{4} Descretizing the PDE:
%\newline
%\centerline{\inputbitmap{\htbmdir{}/d03faf.xbm}}
%and solving the resulting
%seven-diagonal finite difference equations using a method based on the Fast
%Fourier Transform.
\endmenu
\end{scroll}
\autobutt{MainHelp}
\end{page}

\begin{page}{UXANNAOptEx}{Examples Using the AXIOM/NAG Expert System}
\begin{scroll}
Select any of these examples and you will be presented with a page which
contains active areas for the function and its parameters.
\blankline
These parameters can be altered by selecting the area and replacing the
default parameters by the new values. 
\blankline
\beginmenu
\item \menulispdownlink{Example 1: \newline 
\indent{2} Minimize the function: 
\centerline{\inputbitmap{\htbmdir{}/opt1.xbm}}}{(|annaOptDefaultSolve1|)}\space{}
\blankline
\item \menulispdownlink{Example 2: \newline 
\indent{2} Minimize the function: 
\centerline{\inputbitmap{\htbmdir{}/opt2.xbm}}}{(|annaOptDefaultSolve2|)}\space{}
\newline \indent{3} With conditions: 
\centerline{\inputbitmap{\htbmdir{}/opt2c.xbm}}
\blankline
\item \menulispdownlink{Example 3: \newline 
\indent{2} Minimize the function: 
\centerline{\inputbitmap{\htbmdir{}/opt3.xbm}}}{(|annaOptDefaultSolve3|)}\space{}
\newline \indent{3} With conditions: 
\centerline{\inputbitmap{\htbmdir{}/opt3c1.xbm}}
\centerline{\inputbitmap{\htbmdir{}/opt3c2.xbm}}
\blankline
\item \menulispdownlink{Example 4: \newline 
\indent{2} Minimize the function: 
\centerline{\inputbitmap{\htbmdir{}/opt4.xbm}}
}{(|annaOptDefaultSolve4|)}\space{}
\newline \indent{3} With conditions: 
\centerline{\inputbitmap{\htbmdir{}/opt4c1.xbm}}
\centerline{\inputbitmap{\htbmdir{}/opt4c2.xbm}}
\centerline{\inputbitmap{\htbmdir{}/opt4c3.xbm}}
\blankline
\item \menulispdownlink{Example 5: \newline 
\indent{2} Minimize the function: 
\centerline{\inputbitmap{\htbmdir{}/opt5.xbm}}
}{(|annaOptDefaultSolve5|)}\space{}
\newline \indent{3} With conditions: 
\centerline{\inputbitmap{\htbmdir{}/opt4c1.xbm}}
\centerline{\inputbitmap{\htbmdir{}/opt4c2.xbm}}
\centerline{\inputbitmap{\htbmdir{}/opt4c3.xbm}}
\blankline
\endmenu
\end{scroll}
\autobutt{Mainhelp}
\end{page}

\begin{page}{UXANNAOpt2Ex}{Examples Using the AXIOM/NAG Expert System}
\begin{scroll}
Select this example and you will be presented with a page which
contains active areas for the function and its parameters.
\blankline
These parameters can be altered by selecting the area and replacing the
default parameters by the new values. 
\blankline
\beginmenu
\blankline
\item \menulispdownlink{Example 1: \newline 
\indent{2} Calculate a least-squares minimization of the following functions: 
\centerline{\inputbitmap{\htbmdir{}/opt61.xbm}}
\centerline{\inputbitmap{\htbmdir{}/opt62.xbm}}
\centerline{\inputbitmap{\htbmdir{}/opt63.xbm}}}
{(|annaOpt2DefaultSolve|)}\space{}
\endmenu
\end{scroll}
\autobutt{MainHelp}
\end{page}


\begin{page}{UXANNAIntEx}{Examples Using the AXIOM/NAG Expert System}
\begin{scroll}
Select any of these examples and you will be presented with a page which
contains active areas for the function and its parameters.
\blankline
These parameters can be altered by selecting the area and replacing the
default parameters by the new values.  In this way you can investigate the
effect of the new parameters on the choice of method.
\blankline
\beginmenu
\item \menulispdownlink{Example 1: \newline 
\centerline{\inputbitmap{\htbmdir{}/int1.xbm}}}{(|annaFoo|)}\space{}
\blankline
\item \menulispdownlink{Example 2: \newline 
\centerline{\inputbitmap{\htbmdir{}/int2.xbm}}}{(|annaBar|)}\space{}
\blankline
\item \menulispdownlink{Example 3: \newline 
\centerline{\inputbitmap{\htbmdir{}/int3.xbm}}}{(|annaJoe|)}\space{}
\blankline
\item \menulispdownlink{Example 4: \newline 
\centerline{\inputbitmap{\htbmdir{}/int4.xbm}}}{(|annaSue|)}\space{}
\blankline
\item \menulispdownlink{Example 5: \newline 
\centerline{\inputbitmap{\htbmdir{}/int5.xbm}}}{(|annaAnn|)}\space{}
\blankline
\item \menulispdownlink{Example 6: \newline 
\centerline{\inputbitmap{\htbmdir{}/int6.xbm}}}{(|annaBab|)}\space{}
\blankline
\item \menulispdownlink{Example 7: \newline 
\centerline{\inputbitmap{\htbmdir{}/int7.xbm}}}{(|annaFnar|)}\space{}
\blankline
\item \menulispdownlink{Example 8: \newline 
\centerline{\inputbitmap{\htbmdir{}/int8.xbm}}}{(|annaDan|)}\space{}
\blankline
\item \menulispdownlink{Example 9: \newline 
\centerline{\inputbitmap{\htbmdir{}/int9.xbm}}}{(|annaBlah|)}\space{}
\blankline
\item \menulispdownlink{Example 10: \newline 
\centerline{\inputbitmap{\htbmdir{}/int10.xbm}}}{(|annaTub|)}\space{}
\blankline
\item \menulispdownlink{Example 11: \newline 
\centerline{\inputbitmap{\htbmdir{}/int13.xbm}}}{(|annaRats|)}\space{}
\blankline
\item \menulispdownlink{Example 12: \newline 
\centerline{\inputbitmap{\htbmdir{}/int11.xbm}}}{(|annaMInt|)}\space{}
\endmenu
\end{scroll}
\autobutt{MainHelp}
\end{page}

\begin{page}{UXANNAOdeEx}{Examples Using the AXIOM/NAG Expert System}
\begin{scroll}
Analyses the function for various attributes, chooses and 
then uses a suitable ODE solver to provide a 
solution to the system of n ODEs \center{\htbitmap{d02gaf},}
for i = 1,2,...,n.
\blankline
Select either of these examples and you will be presented with a page which
contains active areas for the function and its parameters.
\blankline
These parameters can be altered by selecting the area and replacing the
default parameters by the new values.  In this way you can investigate the
effect of the new parameters on the choice of method.
\blankline
\beginmenu
\item \menulispdownlink{Example 1: \tab{12}
\inputbitmap{\htbmdir{}/ode1.xbm}}{(|annaOdeDefaultSolve1|)}
\blankline with initial conditions: \newline
\tab{12}\inputbitmap{\htbmdir{}/y1.xbm} \space{1} and \space{1}
\inputbitmap{\htbmdir{}/x1.xbm}
\blankline
\blankline
\blankline
\item \menulispdownlink{Example 2: \tab{12}
\inputbitmap{\htbmdir{}/ode2.xbm}}{(|annaOdeDefaultSolve2|)}
\blankline with initial conditions: \newline
\tab{12}\inputbitmap{\htbmdir{}/y2.xbm} \space{1} and \space{1}
\inputbitmap{\htbmdir{}/x1.xbm}
\blankline
\blankline
\blankline
\endmenu
\end{scroll}
\autobutt{MainHelp}
\end{page}

\begin{page}{UXANNATxt}{About the AXIOM/NAG Expert System}
\begin{scroll}
\centerline{\tt\inputbitmap{\htbmdir{}/anna_logo.xbm}\rm} 
\vspace{-30}\horizontalline
In applied mathematics, electronic and chemical engineering, the modelling
process can produce a number of mathematical problems which require numerical
solutions for which symbolic methods are either not possible or not obvious. 
With the plethora of numerical library routines for the solution of these
problems often the numerical analyst has to answer the question {\em Which
routine to choose?} 
\blankline
Some analysis needs to be carried out before the
appropriate routine can be identified i.e. {\em How stiff is this ODE?} and
{\em Is this function continuous?}  It may well be the case that more than
one routine is applicable to the problem.  So the question may become {\em
Which is likely to be the best?}  Such a choice may be critical for both
accuracy and efficiency.
\blankline
An expert system is thus required to make this choice based on the result of
its own analysis of the problem, call the routine and act on the outcome. 
This may be to put the answer in a relevant form or react to an apparent
failure of the chosen routine and thus choose and call an alternative.  
It should also have sufficient explanation mechanisms to inform on the choice
of routine and the reasons for that choice.
\blankline
\end{scroll}
\downlink{ Examples }{UXANNAEx}
\downlink{ Introduction }{UXANNAIntro}
\downlink{ Decision Agents }{UXANNADec}
\downlink{ Inference Mechanisms }{UXANNAInfer}
\downlink{ Measure Functions }{UXANNAMeas}
\end{page}

\begin{page}{UXANNAIntro}{Introduction to the AXIOM/NAG Expert System}
\begin{scroll}
\centerline{\tt\inputbitmap{\htbmdir{}/anna_logo.xbm}\rm}
\vspace{-30}\horizontalline
Deciding amongst, and then implementing, several possible approaches to
solving a numerical problem can be daunting for a novice user, or tedious for
an expert.  Different attributes of the problem need to be
identified and their possible interactions weighed up before a final decision
about which method to use can be made. 
\blankline
The implementation is then largely an
automatic, if laborious, process of writing, compiling and linking usually
Fortran code.  The aim is to build an expert system which will use computer
algebra to analyse such features of a problem, inference mechanisms and a
knowledge base to choose a numerical method appropriate to the solution of a
given problem.  
\blankline
Any interactive system is constrained by the need to provide a reasonable
response time for the user.  Given the complexity of some of the analysis our
system will need to do, it is clear that we should only aim to select a good
method, rather than try to identify the best one available.  The overall goal
is to provide a ``black-box'' interface to numerical software which allows
non-experts access to its full potential.  It will also provide explanation
mechanisms commensurate with its role as a teaching aid.
\blankline
Given, say, an integration to perform (which may or may not be able to be
handled symbolically), the system should choose and apply an appropriate
method, thus mirroring as closely as possible the way that an experienced
numerical analyst would think so, for example, given an integration to
perform:\newline
{\it \centerline{\inputbitmap{\htbmdir{}/int1.xbm}}}
\newline
the experienced analyst would see that the integral is semi-infinite and
transform it by splitting the range and transforming the integral over {\it
[1,\inputbitmap{\htbmdir{}/infty.xbm}]} into an integral over 
{\it [0,1] } using the transformation {\it x -> 1/t}.  
A different numerical routine might be used over each
sub-region and the results added to give the final answer. 
\blankline
It then requires
the translation of the problem into Fortran code which may be extensive.
Even with this simple example, the process is quite involved.
\blankline
\end{scroll}
\autobuttons
\downlink{ Decision Agents }{UXANNADec}
\downlink{ Inference Mechanisms }{UXANNAInfer}
\downlink{ Method Domains }{UXANNAMeth}
\downlink{ Measure Functions }{UXANNAMeas}
\end{page}

\begin{page}{UXANNAEx}{Example using the AXIOM/NAG Expert System}
\begin{scroll}
\xtc{
{\bf Example 1}: The integral
{\centerline{\inputbitmap{\htbmdir{}/int1.xbm}}}
\newline
is performed as follows:
\blankline
}{}
\xtc{
}{
\spadpaste{ans := integrate((exp(-X^3)+exp(-3*X^2))/sqrt(X),0.0..\%plusInfinity)\bound{ans} }
}
\blankline
\xtc{
It creates a composite structure for which the field containing the result can be 
expanded as required.\blankline
}{
\spadpaste{ans . 'result\free{ans}}
}
\blankline
\xtc{
}{
\spadpaste{ans . 'abserr\free{ans}}
}
\blankline
This system has performed the analysis described above, done the necessary
problem transformation, written any necessary Fortran, called two different
numerical routines, and amalgamated their
results.  This whole process was transparent to the user.
\end{scroll}
\autobuttons
\downlink{Example 2}{UXANNAEx2}
%\downlink{Decision Agents}{UXANNADec}
\end{page}

\begin{page}{UXANNAEx2}{Example using the AXIOM/NAG Expert System}
\begin{scroll}
\xtc{
{\bf Example 2}: The ODE
{\centerline{\inputbitmap{\htbmdir{}/ode3.xbm}\space{1}with
\space{1}
{\inputbitmap{\htbmdir{}/y3.xbm}}}}
\newline
could be solved as follows:
\blankline
}{}
\xtc{
}{
\spadpaste{ans2 := solve([Y[2],-1001*Y[2]-1000*Y[1]], 0.0, 10.0,
[1.0,-1.0], [2,4,6,8], 1.0e-4)\bound{ans2} }
}
\blankline
\xtc{
It creates a composite structure for which the field containing the result can be 
expanded as required.\blankline
}{
\spadpaste{ans2 . 'result\free{ans2}}
}
\blankline
\xtc{
}{
\spadpaste{ans2 . 'y\free{ans2}}
}
\blankline
\end{scroll}
\autobuttons
\downlink{Example 3}{UXANNAEx3}
%\downlink{Decision Agents}{UXANNADec}
\end{page}

\begin{page}{UXANNAEx3}{Example using the AXIOM/NAG Expert System}
\begin{scroll}
\xtc{
{\bf Example 3}: The function
{\centerline{\inputbitmap{\htbmdir{}/opt2.xbm}}}
with simple bounds
{\centerline{\inputbitmap{\htbmdir{}/opt2c.xbm}}}
\newline
could be minimized as follows:
\blankline
}{}
\xtc{
}{
\spadpaste{ans3 := optimize((X[1]+10*X[2])**2 + 5*(X[3]-X[4])**2 + 
(X[2]-2*X[3])**4 + 10*(X[1]-X[4])**4, [3,-1,0,1], [1,-2,\%minusInfinity,1], 
[3,0,\%plusInfinity,3])\bound{ans3} }
}
\blankline
\xtc{
It creates a composite structure for which the field containing the minimum can be 
expanded as required.\blankline
}{
\spadpaste{ans3 . objf\free{ans3}}
}
\blankline
\xtc{
}{
\spadpaste{ans3 . x\free{ans3}}
}
\blankline
\xtc{
}{
\spadpaste{ans3 . attributes\free{ans3}}
}
\blankline
\end{scroll}
\autobuttons
\downlink{Decision Agents}{UXANNADec}
\end{page}

\begin{page}{UXANNADec}{Decision Agents}
\begin{scroll}
\blankline
Some features are either present or absent in a problem.  Examples of such
binary decisions include {\em is a matrix symmetric?} and {\em is a
function continuous?}  However in practice many questions are about the {\em
degree} to which a problem exhibits a property: {\em how much does a
function oscillate?}, or {\em how stiff are these differential equations?}
\blankline
We have therefore created decision agents of two types, reflecting their
property --- {\em Binary Agents} are Boolean functions returning either true
or false and {\em Intensity Functions} are quantitative and return a range of
different values, either numerical or structured types. The framework we are
developing is able to deal with both these forms of information.  
\blankline

In any given problem area (for example solving ordinary differential
equations, optimization etc.) we have a selection of {\em methods}.  These
might be to use a particular NAG routine, or they might involve employing a
higher-level strategy such as transforming the problem into an equivalent,
but easier to solve, form.  
\blankline
Associated with every method we define a {\em
measure function} which assesses the suitability of that method to a
particular problem.  Each measure function has access to a range of symbolic
{\em agents} which can answer questions about the various properties of the
problem in hand.
\blankline
\end{scroll}
\downlink{ Inference Mechanisms }{UXANNAInfer}
\downlink{ Method Domains }{UXANNAMeth}
\downlink{ Measure Functions }{UXANNAMeas}
\downlink{ Computational Agents }{UXANNAAgent}

\end{page}

\begin{page}{UXANNAInfer}{Inference Mechanisms}
\begin{scroll}
\blankline
The inference machine will take the problem description as provided by the
user and perform an initial analysis to verify its validity.  It will
consider, in turn, all of the available methods within its knowledge base
which might solve that problem.  In doing so it analyses the input problem to
find out about any attributes that could affect the ability of the methods
under consideration to perform effectively.  
\blankline
Some of these
measures may use lazy evaluation in the sense that, if a method already
assessed is believed to be a good candidate, and if evaluating the current
measure will be relatively expensive, then that measure will not be evaluated
unless later evidence shows that the selected method is not, in fact, a
successful strategy, for example if it has failed.
\end{scroll}
\downlink{ Method Domains }{UXANNAMeth}
\downlink{ Measure Functions }{UXANNAMeas}
\downlink{ Computational Agents }{UXANNAAgent}
\downlink{ Examples }{UXANNAEx}
\end{page}

\begin{page}{UXANNAMeth}{Method Domains}
\begin{scroll}
\blankline
An AXIOM {\em domain} has been created for each method or strategy for
solving the problem.  These method domains each implement two functions with
a uniform (method independant) interface.
\blankline {\bf measure:} A function which calculates an estimate of suitability of
this particular method to the problem if there is a possibility that the
method under consideration is more appropriate than one already investigated.
\blankline
If it may be possible to improve on the current favourite method, the function
will call computational agents to analyse the problem for specific features
and calculate the measure from the results these agents return, 
using a variation on the Lucks/Gladwell intensity and compatibility
model if conflict between attributes, as investigated by these computational
agents, may be present.
\blankline
{\bf implementation:} A function which may be one of two distinct kinds. 
The first kind uses the interface to the NAG Library to call a particular 
routine with the required parameters.  Some of the parameters may need to be
calculated from the data provided before the external function call.  
\blankline
The other kind will apply a ``high level'' strategy to try to solve the
problem e.g.~a transformation of an expression from one that is difficult to
solve to one which is easier, or a splitting of the problem into several more
easily solvable parts.  For example, for a solution of the equation above,
since the integral is semi-infinite we might wish to transform the range by,
say, using the mapping {\it y -> 1/x} on the section {\it 1
< x < \inputbitmap{\htbmdir{}/infty.xbm}}) and
adding the result to the unmapped section {\it 0 < x < 1}.
\blankline
\end{scroll}
\downlink{ Measure Functions }{UXANNAMeas}
\downlink{ Computational Agents }{UXANNAAgent}
\downlink{ Examples }{UXANNAEx}
\end{page}

\begin{page}{UXANNAMeas}{Measure Functions}
\begin{scroll}
\blankline
Each measure function will estimate the ability of a particular method to
solve a problem.  It will consult whichever agents are needed to perform
analysis on the problem in order to calculate the measure.  There is a
parameter which would contain the best compatibility
value found so far.  
\blankline
However, the interpretation we give to the results of some tests is not
always clear-cut.  If a set of tests give
conflicting advice as to the appropriateness of a particular method, it
becomes important to decide not only {\it whether} certain properties are
present but also their {\it degree}.  This gives us a basis for estimating the
compatibility of each property.  
\blankline
We have taken for our model the system recommended by Lucks and Gladwell
which uses a system of measurement of compatibility allowing for interaction
and conflict between a number of attributes.  All of these processes may not
be required if the choice is clear-cut e.g. we have an integral to calculate
which has a particular singularity structure for which one particular method
has been specifically constructed.  However, for more difficult cases a
composite picture should be built up to calculate a true measurement. 
\blankline
How the compatibility functions interpret the measurements of various
attributes is up to them and may vary between differing methods.  It is this
area that takes as its basis the {\it judgement} of Numerical Analysis
`experts' whether that be from the documentation (which may be deficient in
certain respects) or from alternative sources.  However, its assessment of
the suitability or otherwise of a particular method is reflected in a single
normalised value facilitating the direct comparison of the suitability of a
number of possible methods.
\blankline
\end{scroll}
\downlink{ Computational Agents }{UXANNAAgent}
\downlink{ Examples }{UXANNAEx}
\end{page}

\begin{page}{UXANNAAgent}{Computational Agents}
\begin{scroll}
\blankline
Computational Agents are those program segments which investigate the
attributes of the input function or functions, such as 
{\bf stiffnessAndStabilityOfODEIF}
(the {\em IF} indicates that it is an {\em Intensity Function} i.e. one that
returns a normalised real number or a set of normalised real numbers).  They
are usually functions or programs written completely in the \Language{}
language and implemented using computer algebra.
\blankline
Some agents will be common to more than one problem domain whereas others
will be specific to a single domain.  They also vary greatly in their
complexity.  It is a fairly simple task to return details about the range of
a function since this information will have been included in the problem
specification.  It is a different order of complexity to return details of
its singularity structure.
\blankline
\xtc{
As an example, here is a call to the computational agent {\bf
singularitiesOf} to obtain the list of singularities of the function 
{\it tan x} which are in the range 
{\it 0..12\inputbitmap{\htbmdir{}/pi.xbm}}:
\blankline
}{
}
\xtc{
}{
\spadpaste{s := singularitiesOf(tan x,[x],0..12*\%pi)$ESCONT \free{lib3} }
}
\blankline
Each of these computational agents which may be called by a number of method
domains retain their output in a dynamic hash-table, so speeding the process
and retaining efficiency.
\end{scroll}
\downlink{ Examples }{UXANNAEx}
\end{page}





















