1735
2019-08-01 20:32:01 +0000
Support non-commutative multiplication "Scalar" types
2019-12-04 18:43:40 +0000
1
1
1
Unclassified
Eigen
Core - general
3.4 (development)
All
All
CONFIRMED
Normal
Feature Request
---
1
DirkToewe
eigen.nobody
chtz
gael.guennebaud
jacob.benoit.1
oldest_to_newest
8214
0
DirkToewe
2019-08-01 20:32:01 +0000
"Scalar" types with a non-commutative multiplication would be useful in many different areas. Here are two example of such data types that come to my mind:
* Matrices of matrices as requested in this other issue:
http://eigen.tuxfamily.org/bz/show_bug.cgi?id=574
* Quaternions as used for example in Signal Processing:
http://sepwww.stanford.edu/sep/jeff/Quaternions.pdf
In v3.3.7, I could get Quaternions to work as scalar type albeit with many caveats, limitations and under ear-deafening toothgrinding. With the latest github-mirror versions however, it does not work at all anymore. This leads me to the following feature request: Would it be possible to step-by-step add support for Scalar types with non-commutative Scalar types? Maybe just starting with adding a new "IsMultiplicationCommutative" member to NumTraits, then supported basic operations like matrix multiplication and element-wise multiplication. That would allow me to add support of quaternions to the JacobiSVD.
8218
1
chtz
2019-08-07 16:49:04 +0000
No objections, though probably not too trivial to implement.
I guess the main work will be adapting all product implementations (e.g., some optimizations like (a*A)*(b*B) == (a*b)*(A*B) are not possible anymore).
After resolving Bug 560, Matrix<Quaterniond, ...> would be possible.
10179
2
eigen.nobody
2019-12-04 18:43:40 +0000
-- GitLab Migration Automatic Message --
This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/1735.