Re: specializing void MatrixBase<Derived>::makeHouseholder (Re: [eigen] Householder.h: ::min() and operator<==

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


On 2016-09-11 15:41, Peter wrote:
[...]
Is there a simple way to specialize


template<typename Derived>
template<typename EssentialPart>
void MatrixBase<Derived>::makeHouseholder

for my own type, without interfering with the Eigen files, i.e. without
inserting enable_if statements in the Eigen code

I don't think there is an easy way.
You could specialize this method for certain types of Derived, but you can't partially specialize methods.
I.e., this could be possible (I did not actually try):
  template<>
  template<typename EssentialPart>
  void MatrixBase<Matrix<MyType, Dynamic, Dynamic>::makeHouseholder(...)

But you can't specialize like:
  template<int rows, int cols>
  template<typename EssentialPart>
  void MatrixBase<Matrix<MyType, rows, cols>::makeHouseholder(...)

How would you like to modify makeHouseholder? Ideally, we should only specialize a sub-part of the function for different types (which we can do by delegating the function to a helper-struct).

Christoph



Best regards,
Peter




--
 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/