New user self-registration is disabled due to spam. Please email eigen-core-team @ lists.tuxfamily.org if you need an account.
Before reporting a bug, please make sure that your Eigen version is up-to-date!
Bug 1474 - add skew symmetric matrix adapter
Summary: add skew symmetric matrix adapter
Status: DECISIONNEEDED
Alias: None
Product: Eigen
Classification: Unclassified
Component: Geometry (show other bugs)
Version: 3.4 (development)
Hardware: All All
: Normal Feature Request
Assignee: Nobody
URL:
Whiteboard:
Keywords: JuniorJob
Depends on:
Blocks: 3.x
  Show dependency treegraph
 
Reported: 2017-10-05 16:36 UTC by Michael Norel
Modified: 2019-07-16 14:07 UTC (History)
4 users (show)



Attachments

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)

Note You need to log in before you can comment on or make changes to this bug.