Это потому, что код, на который вы указываете, предназначен для симметричного c квантования, где диапазон должен быть одинаковым с обеих сторон от 0. Таким образом, переменная "range" в этом коде действительно ссылается на половину всего плавающего диапазон точек.
, например, min_value = -1 max_value = 2
range = std :: max (abs (-1), abs (2)) = 2
Таким образом, весь диапазон в этом коде будет от -2 до 2.
Надеюсь, это имеет смысл!