I am working on implementing multiple matrix multiplication and addition steps for a neural network. I tried to look at some previous questions related to the same but couldn't find a concrete answer regarding the same. In the current implementation that I use, the MSP DSP Library is performing matrix multiplication but using '_q15' variables - here, the values are being shifted due to the fixed point representation being used for numbers. I want to clarify if there is any method at all where a normal matrix multiplication can be performed on simple integer values such that the results are stored as it is without any bit shifts. I understand that using the fixed point representation would lead to shifting of the calculated result according to the definition of the system. However, I would like to avoid this and simply keep the result as is. I would prefer using the LEA but since the LEA generally uses the '_q15' format if the only available methods are without using LEA, even those would work.
The reason why I am aiming for a standard matrix calculation is that the matrices that contain weights and biases of the neural network can directly be fed with the quantized values such that all of the entries are integer values. This would make it rather straightforward to go through multiple layers or steps of the neural networks unlike the case using fixed point representation where-in the integrity of each calculation needs to be verified. Please let me know if any kind of example is needed to understand what the calculations would like since I am keeping the question a bit theoretical as this is more of a conceptual dilemna I have rather than some part of code that I do no understand. Any kind of leads are appreciated, including some reference guide or manual that might contain more information about this. Thanks.