Support non-commutative multiplication "Scalar" types
Submitted by Dirk Toewe
Assigned to Nobody
Link to original bugzilla bug (#1735)
Version: 3.4 (development)
Description
"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.