This bugzilla service is closed. All entries have been migrated to https://gitlab.com/libeigen/eigen

Bug 1474

Summary: add skew symmetric matrix adapter
Product: Eigen Reporter: Michael Norel <minorlogic>
Component: GeometryAssignee: Nobody <eigen.nobody>
Status: DECISIONNEEDED ---    
Severity: Feature Request CC: chtz, gael.guennebaud, hauke.heibel, jacob.benoit.1
Priority: Normal Keywords: JuniorJob
Version: 3.4 (development)   
Hardware: All   
OS: All   
Whiteboard:
Bug Depends on:    
Bug Blocks: 1608    

Description Michael Norel 2017-10-05 16:36:37 UTC
It is often required skew symmetric adapter for Vector3. 

The main reason:
1. Use math notation, without loose of performance of skew matrix (for elements that don't require calculations). 

2. Use knowledge about matrix structure to speedup calculations
 a) don't calculate zero elements.
 b) use knowledge about difference of elements only by signs, that can improve performance. 

It can be implemented is similar way that "asDiagonal" do.
Comment 1 Christoph Hertzberg 2019-07-16 14:07:59 UTC
Interesting feature. This would also simplify/optimize writing things like

  for(int i=0; i<n; ++i) res.col(i) = a.cross(b.col(i));

For two vectors a.cross(b) should generate the same code as a.skew()*b;
And it might be worth considering to implement a.skew().exp() (i.e., calculating the matrix exponential of a skew-symmetric matrix -- which is much easier than the general case)

Not sure about the name. Maybe .asSkew() or .asSkewSymmetric()?
And do we want the inverse as well? (Getting a 3x1 vector from a 3x3 matrix)
Comment 2 Nobody 2019-12-04 17:13:24 UTC
-- 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/1474.