/*only possible saturation is -32768 and -32768 to avoid crash in that case mult_sat is used instead of mult*/
/* while performing (-32768)*(-32768), overflow occurs because the result comes out as 32768 after mult. This is the only case for mult where overflow happens. In order to avoid this scenario mult_sat is used */