Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should the Eigen-unsupported modules be avoided?

The popular linear algebra library Eigen comes with a long list of so-called "unsupported" modules, for example modules for FFT, numerical differentiation or Euler angles.

In the Eigen documentation, it is clearly stated:

These modules are contributions from various users. They are provided "as is", without any support.

Unfortunately, there is no statement in the documentation about potential discontinuation of unsupported modules, requirements to the quality of implementation, level of testing, and so on.

This leaves me with the following question:

  • Should I be using Eigen unsupported modules at all, if I want my software to be stable for a few years (and at least to be compatible with future major/minor Eigen releases). Example: in particular, I would like to avoid the situation that an unsupported module I am using drops away when upgrading from Eigen 3.7.x to 3.8.x, for instance.
  • Are there any experiences or opinions out there regarding the stability and availability of the unsupported modules?

(Just for completeness: the particular unsupported module I am considering is the EulerAngles module).

like image 918
Mark G Avatar asked May 26 '19 06:05

Mark G


Video Answer


1 Answers

Generally, I suggest trying out the unsupported modules and give feedback about their usefulness, bugs, suggestions for API-changes etc. That is the most likely way that a currently unsupported module will eventually get moved to the standard modules.

You need to be prepared to change parts of your source if the API changes or if the module becomes stable (ideally, this requires just changing an #include) -- of course this could be more complicated if you want to be compatible to old and new Eigen versions.


I'd say the EulerAngles module is pretty stable and well-tested and already integrates well into the Geometry module -- but it is likely not used a lot (we don't have statistics about the usage of individual modules).

In contrast the Tensor module (mentioned by @datell), is used heavily (e.g., by TensorFlow), but in my opinion is not well-integrated yet into the rest of Eigen (e.g., documentation is mostly a single .md which is not completely in-sync with the current API): http://eigen.tuxfamily.org/dox-devel/unsupported/eigen_tensors.html

N.B.: I'm one of the Eigen maintainers.

like image 105
chtz Avatar answered Nov 03 '22 00:11

chtz