# evaluate

Evaluate components of a tensor expression.

Given an abstract tensor expression and a set of rules for the components of tensors occurring in this
expression, evaluate the components of the full expression.
The minimal information needed for this to work is a declaration of the indices used, and a declaration
of the values that those indices use:{r,t}::Coordinate.
{m,n,p,s}::Indices(values={t,r}).
ex:= A_{n m} B_{m n p} ( C_{p s} + D_{s p} );

\(\displaystyle{}A_{n m} B_{m n p} \left(C_{p s}+D_{s p}\right)\)

The list of component values should be given just like the list of rules for the

`substitute`

algorithm,
that is, as equalitiesrl:= [ A_{r t} = 3, B_{t r t} = 2, B_{t r r} = 5, C_{t r} = 1, D_{r t} = r**2*t, D_{t r}=t**2 ];

\(\displaystyle{}(A_{r t} = 3, B_{t r t} = 2, B_{t r r} = 5, C_{t r} = 1, D_{r t} = r^{2} t, D_{t r} = t^{2})\)

The

`evaluate`

algorithm then works out the values of the components of the `ex`

expression,
which will be denoted with a $\square$ in its output,evaluate(ex, rl);

\(\displaystyle{}\begin{aligned}\square{}_{r}= & 6r^{2} t+6\\
\square{}_{t}= & 15t^{2}\\
\end{aligned}
\)