correct fma has to ensure 'no intermediate overflow'
This is done in the case of signed integers by transtyping to unsigned type and back
using multiplies correct the unsigned short overflow problems with fnma and fnms