median(int8([10 60 80 100])) wrongly returns -58 because interpolating (60+80) yields 140>128
Reported by Samuel GOUGEON (@sgougeon)
BUG DESCRIPTION:
----------------
-->median(int8([10 60 80 100]))
ans =
-58
ERROR LOG:
----------
wrong result
HOW TO REPRODUCE THE BUG:
-------------------------
median(int8([10 60 80 100]))
OTHER INFORMATION:
------------------
When an even number of components is provided, the interpolation must be done as ~:
* if both elements have the same sign (example):
s = [60 80]
r = min(s) + (max(s)-min(s))/2
* if both elements have different signs (example):
s = [-60 80]
r = sum(s)/2