Closed minrui-hust closed 8 months ago
Hello,
Thanks for raising this issue, I'll look at it.
Not much more elegant but the following should work,
d = f.coeffs().cast<double>().normalize();
Something else you could do is to use an intermediate quaternion object, something along the lines of,
d.quat( f.quat().cast<double>().normalize() );
Thanks for your reply. Normlizing on coeffs may work for SO3,SO2, but wont work for SE3, SE2。 Maybe we could do normlization in function "cast" (before normlization check in constructor) depending on whether it is cast from higher precision to lower or vice versa
Hi @minrui-hust,
Sorry this took so long but this issue should be fixed now.
Please let me know if you see any further issue.
Thanks a lot,I will try it,it makes great help to me
when cast SO3 from float to double, a normalized SO3 may be unnormalized even if it is normalized under float precision. This makes code like this impossible:
work around:
but this is ugly, and also makes "d" an un-normalized SO3 Any idea to make this more elegant?