Re: [eigen] Scalar vs. int / double in SelfAdjointEigenSolver.h |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
On 2016-08-11 08:40, Pavel Holoborodko wrote:
*...which may not the case for user defined type.*
From my experience of creating custom scalar type (mpreal) -
I can say that keeping code without explicit conversions to Scalar is very
beneficial.
I generally agree on that -- and this is also true for AutoDiff-types. However we traditionally did convert all POD scalars to "Scalar" before using it, in order to be compatible with custom scalars which do not support operators with mixed types.
I guess an optimal solution could be add a templated convert method, into NumTraits<Scalar> like:
template<class Scalar>
struct NumTraits {
// other NumTraits stuff ...
template<class X>
static Scalar convert(const X& x) { return Scalar(x); }
};
which, if Scalar supports operations with PODs, can be specialized to:
template<class X>
static const X& convert(const X& x) { return x; }
Unfortunately, this would require massive refactoring. Maybe we just add the Scalar() conversion for now, and consider changing this for 3.3.x or 3.4?
Christoph
--
Dipl. Inf., Dipl. Math. Christoph Hertzberg
Universität Bremen
FB 3 - Mathematik und Informatik
AG Robotik
Robert-Hooke-Straße 1
28359 Bremen, Germany
Zentrale: +49 421 178 45-6611
Besuchsadresse der Nebengeschäftsstelle:
Robert-Hooke-Straße 5
28359 Bremen, Germany
Tel.: +49 421 178 45-4021
Empfang: +49 421 178 45-6600
Fax: +49 421 178 45-4150
E-Mail: chtz@xxxxxxxxxxxxxxxxxxxxxxxx
Weitere Informationen: http://www.informatik.uni-bremen.de/robotik
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |