Hi All,
I'm fairly new to the TI development platform, creating my first big project now. I intensively make use of the IQMath library which I think is very powerful and easy to use. Although It is great I still miss a few functions that I find a bit strange the are not implemented. Others may have more ideas but here are mine:
1.) Why aren't there _IQN1toIQN2 functions?
When global Q = 24 I cannot convert IQ12 to IQ16 without going through IQ24 and loose the 8 most significant bits. I know I can define these functions myself but it's much more convenient if they are in the IQMath library.
I also don't like working with a global Q. In my case, Global Q may never ever change during project development since each individual function's local Q is carefully chosen based on the range of the variables. I rather explicitly specify the local Q for each individual function. Therefor I like to use _IQ24toIQ16 and _IQ24mpy for example, even if global Q is 24.
Makes the code better readable I think.
2.) Why is _IQNrsmpy the only multiply function with saturation?
If I don't need the rounding I still pay the 10+ cycle penalty. I would really like to see an _IQNsmpy function which only saturates. It would also be great if the rest of the multiply functions get a saturated version. _IQNsmpyIQX for example would be really powerful.
3.) Wouldn't _IQN1toIQN2 functions with saturation be great?
Of course only needed when shifting left.
Regards,
Matthew