-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
For orthonormality
- orthogonality: each R.dot(R.T) is close np.eye(3)
- normality: np.linalg.det(R) is close 1
And I think something for uniformity would be great. If you can come up with some heuristic, would be a nice start. Doesn't have to be rigorous, just protest against a bad fail case. Some ideas (that work with large # of rotations)
- project to the three coordinates used to plot on sphere. Check roughly same amount above/below, through the three axes (up/down; left/right; front/back)
- convert to some encoding (Euler angles???) and check stats on those encoding (I think two Euler angles (ZYZ or ZXZ) are uniform and one is not)
- integrate with an even function (e.g. x2 + y2 + z2) that should be double the integration on half. If the function is odd (e.g. x3 + y3 + z3) it should integrate to roughly one.
- even: (axis_3_vectors[half_idx]**2).sum() is close 2*axis_3_vectors.sum()
- odd: (axis_3_vectors[half_idx]**3).sum() is close 0
Metadata
Metadata
Assignees
Labels
No labels