I'm learning more and more how to use ipp, which is a great optimized library. However, I still have sometimes some problems to understand the results that I get. For example, I'm using ippiMulC to multiply a matrix by a negative floating constant. More precisely, here is my code:
Please check with documentation the function parameter types. The function ippiMulC_16s_C1R takes source as a pointer to signed 16-bit integer array while you supply array of 8-bit integers (I think the piece of code you use as an example should not even compile).
Also, the result of casting -0.565 to 16-bit integer is 0 is not it? Then result of multiplication of any number with zero expected to be zero, correct?
You have to use functions which produce floating point result instead of function which produce 16-bit integer result. For example, you may try to use ippiMulC_32f_C1R function (it will require you to convert your 8-bit integer image into 32-bit floating point format with ippiConvert_8u32f_C1R function).