|Re: [eigen] Eigen3 features request|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen <eigen@xxxxxxxxxxxxxxxxxxx>
- Subject: Re: [eigen] Eigen3 features request
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Thu, 1 Nov 2018 22:30:06 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=i5zJ2N+CROBwD5ZEoITmrbUYwUdK/8CoUCfMl4GR0SE=; b=MTwSu9vpm8o15Mf3Nj+5Yyl36/EztWStwEFdftcXLnRavbQkhBk4UWM+d1Tu7F2/Sx tU8yyJkK8GUtuxvxMgnTKRyFu1iYtWVimESSCN8POC/uaGIVf7lOWPtIjYIa65yFNCRG ExP8t/1K5JeBgaijF2fjautRkUBv9NPGxF677qZe1424CrYrOoeXPWm/uYp3Lv4F/Jly VW1LcRv9OPnChR9A9x1DMIGrx6Tj0QMb100cSLuRSW2A1wyFHvPjkMrA7PC0R2s6Qhi1 MyNWZbmuz2BvLj87FTKnWWgQGdVRWy/gsrCJqABoeQ3GGFK0IgNKSxid648j2IntjkN7 tHfw==
the doc seems be rather incomplete. Looking at the code, it seems that tensor.slice(...) is writable just like any other _expression_. Moreover, there are more variants than what the README shows, e.g.:
stridedSlice(const StartIndices& startIndices, const StopIndices& stopIndices, const Strides& strides);
Dear Eigen developers,
I am following very closely the development of the tensor class in Eigen3. It is extremely fast and it provides multidimensional arrays to C++ users and in particular to scientists that require very high performance in their codes (like me!).
I would like to kindly propose two features that, to my knowledge, are not yet included in the current implementation but that might be of interest to many users:
- I mentioned this one in the forum but for completeness I also mention it here: it would be great to be able to extract slices of a tensor that point to the original data-block (without performing any data copies). That way one could modify part of the data in, for example, a separate function. That sub-tensor would have to be somewhat sparse, but that is easily solvable by adjusting the stride and the offset of each dimension.
- It would be very useful to be able to start indexing some of the dimensions of the tensor at user-selected values. For example, I might want to have an array that covers a range of indexes from -10 to 10 or from 200 to 300. This feature would be useful to people that operate with domain decomposed variables among threads/processes and want to keep track of the sub-domain location in the original cube.
I understand that you are already swamped developing many different packages of the library. I can guarantee that many users in physics and mathematics could benefit from these features in the long term. I actually wrote my own array class based on templates including all these features, but I did not want to go into _expression_ template optimization, which is a big point for the tensor class in Eigen. Also, being able to include auto differentiation in the future seems very promising.