Hi Duke,

On Friday 05 February 2010 09:49:30 Jonathan Leto wrote:
> > 2) Math::GSL: At the beginning I intended to use Math::GSL as a
> > back end for the matrix operations. However, I did not get it
> > installed on my machine. The issue had already been reported.
> > Now I am using Math::MatrixReal as back end which works fine.
> > It is still possible to support Math::GSL as an alternative
> > back end in the future. However, the algorithm only deals with
> > 3x3 matrices. If performance is an issue I/O is likely to be
> > the rate limiting step.
> 
> I am the current maintainer of Math::MatrixReal and the author of
> Math::GSL, so please let me know if I can help you in regard to
> making your code play nice with those. Can I see your code? It
> would help to give you more constructive criticism.

Thank you for the offer to help. The code is available from the CPAN 
by now under Math::Vector::BestRotation. Any comments are welcome.
The module uses Math::MatrixReal as a backend for the matrix 
manipulations which works fine. The problem with Math::GSL has 
already been described by someone else in Bug 50960. After fixing 
Build.PL as suggested in the discussion the tests fail also for me 
with the result described in the original bug report.

> I believe that making your module interoperate nicely with prior
> art is at least, and probably more, important than changing the
> name. If you basically just have one function in your module,
> you may want to just integrate into Math::MatrixReal. Does your
> algorithm generalize to NxN matrices, or it is specific to
> 3-vectors?

1) About integration in Math::MatrixReal: I had not seriously 
thought about suggesting that because I thought that this 
functionality is not of broad enough interest and would therefore 
bloat Math::MatrixReal. The current functionality could be 
integrated into one method, though. The class offers three main 
methods which could be done in one with a flag. The user would 
provide two lists of vectors and a flag about the desired sign of 
the result's determinant and would get a matrix back. However, I 
plan to add some functionality to assess the result (rotation axis, 
rotation angle, gain in RMS deviation etc.) which maybe justifies an 
own class. Despite this, I am interested in your opinion about this 
topic.

2) Higher dimensions: This is a good point. The algorithm should 
work for any NxN matrix. However, the current implementation only 
works for 3x3. I will address this in a future version, it should 
not be hard.

Thank you for your feedback and best wishes,
Lutz

Reply via email to