Created attachment 337 [details]
As discussed on the mailing list, some of the ctors/members of AngleAxis and Quaternion assume either unit vectors of matrices. The attached patch does exactly that with a very high tolerance to reduce the risk of false negatives:
Such a high threshold was needed to be compatible with fast normalization routines that are very inaccurate.
There was discussion on whether this threshold should be configurable by the user. Sounds overkill to me.
As said on the mailing list, my only concern with that patch is that it breaks functionality for those few users who use quaternions in a general algebraic way.
I made this bug depend on bug 560 and block 3.2 (although 560 does not need to block 3.2, but the API decision should be made).
I agree on the non-configurability.
Also the proposed threshold seems fine to me. Users working with double and requiring less precision should switch to single precision anyways.
since this concerns API decision, let's defer it for 3.3 as I'd like to release 3.2 asap.
Related issue on the forum: https://forum.kde.org/viewtopic.php?f=74&t=125239
Still no consensus -> 3.4
-- 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/601.