Re: [eigen] random thoughts -- we need more Gaels

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


On 10/03/2010 07:15 PM, Rui Maciel wrote:
Michael Wild wrote:
Yes, many of them are much worse. But then, most of them don't make
extensive use of expression templates... ;-) I'd bet that 99% of the
potential contributors don't have the slightest of ideas how that magic
works and there is very little accessible documentation on this kind of
programming idiom.
The extensive use of expression templates or of any design pattern is not, by
themselves, the issue.  What becomes an issue is that all those traits
patterns and whatnot, when compounded, quickly become a bit of a rat's nest of
definitions and implementations.  Adding to that the fact that there is
absolutely no reference targetted to developers, I believe it is easy to
understand that it becomes a bit complicated for an outsider to contribute
anything to this project, no matter how basic a feature may be.
Hello,

i want to comment on that 'how-to-more-developers' problem. A while ago I wanted to use Eigen for my raytracer, that uses Ray-Packets. To make that work I needed SoA-support and comparisons using the Vector-instructions. Gael invested time to help me start developing some SoA support. Then we talked about adding comparisons. Eigen does not have those now. I did not really see what I could do to add them to Eigen (Nobody really commented on my patch, except that using an or-operator in float is not useful. At least the SSE-comparisons and the corresponding operators could have been added).

Now I am just waiting until someone else does the work. Something went wrong here.

My relativistic raytracer at http://www.wor.maxmus.de/ has some users now and it really bites, that it does not support any vector extension any more (I have stopped using SSE, because maintaining it was too much work). With AVX next year it will only become worse.

I really want to have some sort of bool-the-size-of-scalar support, and I can also write it, but one has to decide how to do it (This does not belong in a plugin, and I do not want to rewrite my code later on).

This should be something like
template <class Scalar, int Booltype>

Booltype can then support things like the highest bit decides if its true/false (useful for AVX to transform float to EigenBool<float, HighestBit> fast for example), or it has to be a bitmask etc ... After one has decided how to define this type adding functions like 'select' is quite easy ...

Greetings,
Christoph



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