Re: [eigen] new tutorial on writing functions taking Eigen types as paramters

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


On Mon, Aug 16, 2010 at 11:55 AM, Gael Guennebaud
<gael.guennebaud@xxxxxxxxx> wrote:
> On Thu, Aug 5, 2010 at 3:48 AM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>> - mention Nested (at the end of the page! it's an advanced topic, but
>> it's important for advanced users).
>
> I don't think this is an advanced topic, and to be safe, every
> argument should be systematically converted to their nested type:

> template<typename Derived> void foo(const MatrixBase<Derived>& _x)
> {
>  typename Derived::Nested x (_x);
>  // use x, not _x
> }

Do we need this as a safeguard for types that require evaluation
before nesting? Here it would be more like "require evaluation before
further usage".

But is it really true, that we need something like this? Could you
maybe help me out with a use case? When somebody were passing a
product, that would anyways use it's internal temporary, right?

> For advanced user we should also explain ei_nested which is preferred
> if the argument is used more than once. Since ei_nested is mostly
> internal, maybe we should also add a slightly higher level public
> wrapper....

Should not ei_nested<Derived> in theory be the same as Derived::Nested?

- Hauke



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/