Skip to content

Precision handling for QuaternionSlerp and QuaternionDivision

In the ivas_orient_trk.c module, in the functions QuaternionSlerp and QuaternionDivision, we are using the basoputil BASOP_Util_Divide3232_Scale basop for division operations. This basop provides results with 16-bit precision. However, the precision of the resultant values is affecting a condition check in QuaternionSlerp, resulting in a change in the code flow compared to the original floating-point code. This might be (probably) resolved if we have a division basop with 32-bit precision for the result. Currently, the division operations in the mentioned functions are performed for floating-point values and then converted back to fixed-point values.