\section{Generic Taylor Arithmetics}
This concept offers the opportunity to accurately compute derivatives of
functions. The relationship between the resulting vector and the derivative
at the evaluation point is the following:

$$f(\mathrm{taylor}[x\ 1\ 0\ 0\dots])=[f(x)\  \frac{f'(x)}{1!}\  \frac{f''(x)}{2!}\  \dots]$$

As an example $f(x)=\frac{x+2}{x-1}$ with $f'(x)=-\frac{3}{(x-1)^2}$:

\begin{lyxcode}
>f(x)=(x+2)/(x-1);

>f(taylor[2 1])

~taylor[4 -3]

>X(u)=taylor[u 1];

>f(X(0))

~taylor[-2 -3]

>
\end{lyxcode}

Together with the string arithmetic this module can also be used to determine
formulas for the derivatives:

\begin{lyxcode}
>f(x)=(x+2)/(x-1); 

>X(u)=taylor[u 1];

>f(X("z"))

~taylor["(z+2)/(z-1)" "(1-(z+2)/(z-1))/(z-1)"]

>f'

~"(1-(x+2)/(x-1))/(x-1)"
\end{lyxcode}

As you can see there is a short-cut to this functionality, but you can only
compute the first derivatives, for higher order derivatives you need to use
{\tt taylor} by yourself.

Besides the basic operations {\tt +,-,*,/} the following standard functions
are defined: {\tt sqrt, sqr, exp, log, pow, sin, cos, tan, cot, asin, acos, atan, 
acot, sinh, cosh, tanh, coth, asinh, acosh, atanh, acoth}. Of course the
datatype you put into the taylor arithmetic should have defined these functions
as well. The cells can be accessed the same way like the cells of vectors.

It is also possible to define a function which computes the derivative of an
arbitrary function at an arbitrary point:

\begin{lyxcode}
>D(X)=X(1)(taylor[X(2) 1])(2);

>D[sqr;5]

~10
\end{lyxcode}

As the derivative of "square" is two times the argument, this result is
correct.