Re: [eigen] two things |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
On Wednesday 25 June 2008 22:09:17 Gael Guennebaud wrote: > right, an intermediate solution would be to specialize Matrix<> if one > of the dim is 1, e.g. let's add an additional "hidden" template > parameter: > > template <typename T, int R, int C, ..., int IsVector = R==1 || C==1> > class Matrix {....}; > > template <typename T, int R, int C, ..., int Flags> > class Matrix<T,R,C, ..., MaxSize,1,Flags,true> { /* vector */ }; > > but this only allows to improve a bit the constructors and this does > not offer any template Vector<> class, so I'm not sure it's worth it, > just an idea.... It's interesting, I'm not opposed to it; on the other hand like you i'm not sure if it's worth the effort, as the problems with the matrix constructors are essentially "virtual problems" which don't cause harm in practice. > > > 2) about linear vectorization: i remember you suggested adding a > > packet(int) method. I think this is still a good idea and would still > > improve linear vectorization despite the improvements you already made. > > OK? > > actually I'm not sure that's worth it: I've done some bench and if I > remember well the overhead between a MatrixXf(R,C); versus a > VectorXf(R*C); was negligible, like x1.1 or x1.2..... so it was a 10% or 20% speed difference? Not what I call negligible! Also, the speed difference becomes bigger as the InnerSize is small. What sizes did you test? Cheers, Benoit
Attachment:
signature.asc
Description: This is a digitally signed message part.
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |