The variables uN
and uT
are const-referencing the Vector3r u
variable. The uN
refers to u[0]
, while Vector2r uT
refers to two other components u[1]
and u[2]
. They are not used anywhere in the code. Perhaps they were introduced for easier access to normal and tangential components, but since they are not used I guess that these aliases weren't comfortable to use.
I wouldn't submit this merge request if their removal wasn't necessary for Real
type to work. Unfortunately I couldn't find a warning which would warn that directly getting an address of u[1]
and using the function Vector2r::Map(&u[1])
to tell Eigen that uT
is referencing to these components is dangeorus and can't work with some high precision types. This code compiled just fine. But then it was segfaulting during runtime. So I am really glad that we have pipeline-CI to catch such problems.
However if you have any idea what warning to enable to catch this problem during compilation this would be great.