## Glas :## Re: [glas] when to evaluate scalar expressions |

**From:** Toon Knapen (*toon.knapen_at_[hidden]*)

**Date:** 2006-04-23 16:26:23

**Next message:**Andreas Pokorny: "Re: [glas] when to evaluate scalar expressions"**Previous message:**Andreas Pokorny: "Re: [glas] when to evaluate scalar expressions"**In reply to:**Andreas Pokorny: "Re: [glas] when to evaluate scalar expressions"**Next in thread:**Andreas Pokorny: "Re: [glas] when to evaluate scalar expressions"**Reply:**Andreas Pokorny: "Re: [glas] when to evaluate scalar expressions"

Andreas Pokorny wrote:

>

> Can you attach a specific backend to a subtree, and have another one

> in the final assignment? I just wonder if you have control over the

> backend used to preevaluate the scalar value.

Partial dispatching, i.e. dispatching only a specific part of an

expression to one backend and the rest of the expression to another

backend, is not directly supported. We thought long and hard about this

but partial dispatching leads to a lot of ambiguous situations.

Thus currently only when assigning a rhs to the lhs we dispatch the

/whole/ expression to a specific backend. However the backend itself can

decide to dispatch parts of the expression to another backend and/or

create temporaries.

For instance we have one 'strict' blas-backend. Dispatching an

expression that does not correspond exactly to a blas-call to this

backend will result in a (compile-)error. Another backend however, say

general blas-backend, will try to evaluate the expression using multiple

blas-calls when there is no blas-call that can evaluate the whole

expression at once. The latter backend will for instance first call

dnrm2 and then daxpy to evaluate the expression 'w=norm2(v)*v' with w

and v being a glas::dense_vector<double> and thus create a temporary.

Since adding backends should be simple, anyone can add another backend,

that builds on all other backends, to adapt policies regarding partial

dispatching, temporaries etc.

toon

**Next message:**Andreas Pokorny: "Re: [glas] when to evaluate scalar expressions"**Previous message:**Andreas Pokorny: "Re: [glas] when to evaluate scalar expressions"**In reply to:**Andreas Pokorny: "Re: [glas] when to evaluate scalar expressions"**Next in thread:**Andreas Pokorny: "Re: [glas] when to evaluate scalar expressions"**Reply:**Andreas Pokorny: "Re: [glas] when to evaluate scalar expressions"