Discussion:
[eigen] eigen expression template classes
Brook Milligan
2018-09-17 10:23:18 UTC
Permalink
Hi,

I would like to integrate eigen expression templates with another expression template library. It would seem that this is possible if I understand the core types used to represent eigen expressions. However, as far as I can tell, those types of not documented in the eigen documentation. Nevertheless, it seems that there may be a (small?) set of those types.

Can you point me to the specific classes that are used to represent eigen expressions?

Have you ever tried to integrate eigen expressions with another expression template library?

Do you have any suggestions that would help guide such an effort?

Thank you very much for your help.

Cheers,
Brook
Christoph Hertzberg
2018-09-17 11:32:39 UTC
Permalink
Hi!

You can get a bit more internal documentation, if you build the
documentation yourself with EIGEN_INTERNAL_DOCUMENTATION activated:

$ cd path_of_build_dir
$ cmake -DEIGEN_INTERNAL_DOCUMENTATION=ON path_to_eigen
$ make doc -j8

This documentation is likely far from perfect (see also
http://eigen.tuxfamily.org/bz/show_bug.cgi?id=138)

Also, there is some (old and at least partially outdated) documentation
in the wiki, e.g.:
http://eigen.tuxfamily.org/index.php?title=Expression_templates
http://eigen.tuxfamily.org/index.php?title=Working_notes_-_Expression_evaluator

So in the end, you will need to look into the source and ask questions
either here, on IRC or stackoverflow -- ideally also propose possible
improvements (here or on http://eigen.tuxfamily.org/bz, or with
Pull-requests).


Hope that helped a little,
Christoph
Post by Brook Milligan
Hi,
I would like to integrate eigen expression templates with another expression template library. It would seem that this is possible if I understand the core types used to represent eigen expressions. However, as far as I can tell, those types of not documented in the eigen documentation. Nevertheless, it seems that there may be a (small?) set of those types.
Can you point me to the specific classes that are used to represent eigen expressions?
Have you ever tried to integrate eigen expressions with another expression template library?
Do you have any suggestions that would help guide such an effort?
Thank you very much for your help.
Cheers,
Brook
--
Dr.-Ing. Christoph Hertzberg

Besuchsadresse der Nebengeschäftsstelle:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Straße 5
28359 Bremen, Germany

Postadresse der Hauptgeschäftsstelle Standort Bremen:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Straße 1
28359 Bremen, Germany

Tel.: +49 421 178 45-4021
Zentrale: +49 421 178 45-0
E-Mail: ***@dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/672/50006
-----------------------------------------------------------------------
Gael Guennebaud
2018-09-17 13:48:41 UTC
Permalink
Also note that the expression/evaluator engine in Eigen/Core is different
that the one in Eigen/CXX11/Tensor, so depending what you meant by "Eigen"
you will have at look at different places. In Core main expressions are:

CwiseNullaryOp<>
CwiseUnaryOp<>
CwiseUnaryViewOp<>
CwiseBinaryOp<>
Block<>
IndexedView<>
Transpose<>
Reverse<>
Replicate<>
Product<>
PartialRedux<>

plus some "special" ones:

TriangularView<>
SelfadjointView<>
Inverse<>
Solver<>

And leafs are:

Matrix
Array
Ref
Map

Then comes the evaluator<> which is specialized for each expression in
CoreEvaluators.h, but there is no generic mechanisms to go through an
expression tree and do some processing.

gael

On Mon, Sep 17, 2018 at 1:57 PM Christoph Hertzberg <
Post by Christoph Hertzberg
Hi!
You can get a bit more internal documentation, if you build the
$ cd path_of_build_dir
$ cmake -DEIGEN_INTERNAL_DOCUMENTATION=ON path_to_eigen
$ make doc -j8
This documentation is likely far from perfect (see also
http://eigen.tuxfamily.org/bz/show_bug.cgi?id=138)
Also, there is some (old and at least partially outdated) documentation
http://eigen.tuxfamily.org/index.php?title=Expression_templates
http://eigen.tuxfamily.org/index.php?title=Working_notes_-_Expression_evaluator
So in the end, you will need to look into the source and ask questions
either here, on IRC or stackoverflow -- ideally also propose possible
improvements (here or on http://eigen.tuxfamily.org/bz, or with
Pull-requests).
Hope that helped a little,
Christoph
Post by Brook Milligan
Hi,
I would like to integrate eigen expression templates with another
expression template library. It would seem that this is possible if I
understand the core types used to represent eigen expressions. However, as
far as I can tell, those types of not documented in the eigen
documentation. Nevertheless, it seems that there may be a (small?) set of
those types.
Post by Brook Milligan
Can you point me to the specific classes that are used to represent
eigen expressions?
Post by Brook Milligan
Have you ever tried to integrate eigen expressions with another
expression template library?
Post by Brook Milligan
Do you have any suggestions that would help guide such an effort?
Thank you very much for your help.
Cheers,
Brook
--
Dr.-Ing. Christoph Hertzberg
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Straße 5
28359 Bremen, Germany
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Straße 1
28359 Bremen, Germany
Tel.: +49 421 178 45-4021
Zentrale: +49 421 178 45-0
Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/672/50006
-----------------------------------------------------------------------
Loading...