New user self-registration is currently disabled. Please email eigen-core-team @ lists.tuxfamily.org if you need an account.
Bug 759 - Quaternion function angularDistance is hardcoded for double math
Quaternion function angularDistance is hardcoded for double math
Status: RESOLVED FIXED
Product: Eigen
Classification: Unclassified
Component: Geometry
3.2
All All
: Normal Unknown
Assigned To: Nobody
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-03-12 02:34 UTC by Jimmy Paulos
Modified: 2014-03-12 14:06 UTC (History)
4 users (show)



Attachments

Description Jimmy Paulos 2014-03-12 02:34:47 UTC
The angularDistance function in Quaternion.h uses an explicit double type variable in an intermediate step.  I believe the word 'double' on line 670 should be changed to 'Scalar'.  This is the only place double is used this way in Quaternion.h, so I think it's just a mistake.

On the next line the constant 1.0 should be Scalar(1) for similar reasons.  This change would make it consistent with use elsewhere.

A user working exclusively with Quaternionf types would be surprised by the use of double math trig.  I found the bug when turning on -Wdouble-promotion, as I'm working on an ARM Cortex-M4 with hardware support for single precision only.
Comment 1 Christoph Hertzberg 2014-03-12 14:06:18 UTC
Thanks for reporting this. Fixed in devel and 3.2:
https://bitbucket.org/eigen/eigen/commits/d71665f
https://bitbucket.org/eigen/eigen/commits/b75a554

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