Skip to content

Quaternions enhanced

A series of improvements and changes to the ase.quaternions.Quaternion class:

  • Changed the from_matrix method in a way that supports special cases which would have caused the old algorithm to divide by zero. This should also improve numerical stability near those cases.
  • Turned the from_matrix and the rotate_byq methods in static methods, as they don't really need an instance to work. They are not used anywhere in the code so it should not affect anything else.
  • added an arc_distance method which provides a handy metric of the distance between two rotations.
  • overloaded the mul operator (it is defined in the class as mult for some reason).
  • added a test file for some core Quaternion functionality.

Merge request reports