Re: [eigen] two decisions to take

[ Thread Index | Date Index | More Archives ]

For things like cross product, i would probably prefer global functions.
However, i think there might be interest to do vector1.cross(vector2) to
mean, cross v1 with v2 and store in v1... like in the case v1 x= v2?
Would that ever become a concern?


(Mon, Sep 03, 2007 at 07:34:00AM +0200) Benoît Jacob <jacob@xxxxxxxxxxxxxxx>:
> Hi List,
> I need your advice for two decisions to take.
> 1) Global functions or member methods?
> Global functions give more natural mathematical notation. For instance, for a 
> cross product:
> 	double d = cross(vector1, vector2);
> vs.
> 	double d = vector1.cross(vector2);
> Moreover I don't think they really pollute the namespace (which can be the 
> global one if the user did "using namespace Eigen") as C++ allows overloading 
> and I'll make sure to write these functions as taking arguments of Eigen 
> types only.
> So are you OK if I implement many mathematical functions as global funcs and 
> not as members? Or do you see a reason to prefer them to be only members, or 
> both? 
> 2) LGPL v3 ?
> The main reason why we didn't license Eigen 1 as LGPL was that v2 didn't make 
> sense for a template library. v3 seems to have fixed that. Indeed, whereas v2 
> talked about "linking", v3 talks about "combining or linking". So should we 
> convert to LGPL v3?
> Looking at the table here,
> if we license as LGPL v3, then GPL-v2-only projects can't use Eigen. That's a 
> problem, but how big is it? Are there many GPL-v2-only projects out there?
> What we gain in licensing as LGPL v3 is that we don't need an exception 
> anymore, we can just use the plain vanilla LGPL v3. That's a big advantage.
> Thanks,
> Benoit

Attachment: pgpowa3zEeRjM.pgp
Description: PGP signature

Mail converted by MHonArc 2.6.19+