Re: [eigen] Initial implementation of tensor support |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
On 10/23/2013 06:09 AM, Christian Seiler wrote:
>> Anyway: I think a tensor class itself might really be useful for quite
>> a few people [...] and I do want to continue working on that in the
>> future [...] and wanted to ask
>> whether you'd consider including this in Eigen.
>
> Now that I've come back from a longer vacation, I'd like to ask
> whether the core Eigen developers would be interested in adding
> this to Eigen's unsupported/? Not necessarily right now, if you
> say this should mature a bit more before it's officially added;
> I'm fine with that. However, I'd like to know about any generic
> objections before I invest more time. (For example, if even in
> unsupported/, C++98 support was considered a requirement, then
> there would be no point in improving the current implementation
> since it already contains all I need for myself so far.)
I have searched the mailing list archives for mentions of including
C++11 code in Eigen and have been unable to find anything. I personally
think that one should be able to #define something which enables
optional C++11 features of Eigen. (Such features should be coded in
C++11 *only* if C++11 is necessary for their implementation, or if it
greatly reduces code duplication/complexity.) Off the top of my head
these features could include:
* tensor support (as you have implemented), though it may take some
convincing that C++11 is truly necessary here
* automatic alignment of types using C++11's alignof and/or alignas
* support for C++11 move semantics
* common alias templates, including e.g. MatrixX<Scalar>,
VectorX<Scalar>, ArrayX<Scalar>, and ArrayXX<Scalar>. If a developer
has committed to using C++11, these would be far less verbose ways of
expressing the types Matrix<Scalar, Dynamic, Dynamic>,
Matrix<Scalar, Dynamic, 1>, Array<Scalar, Dynamic, 1>, and Array<Scalar,
Dynamic, Dynamic>, respectively.
If no Eigen core developers chime in or they do not want to include the
tensor code in unsupported/, I encourage you to pull the tensor code out
from the Eigen fork you initially posted and to make it something which
is much smaller and instead depends on Eigen. This way it will be much
more approachable to somebody wishing to use it, and it can continue to
be used as new versions of Eigen are released in the future.
Cheers,
Jim