16 #define VuoRange_NoMinimum -INFINITY
19 #define VuoRange_NoMaximum INFINITY
40 #define VuoRange_SUPPORTS_COMPARISON
60 VuoRange range = { _minimum, _maximum,
"" };
70 return range.minimum > range.maximum;
80 return (
VuoRange){range.maximum, range.minimum,
""};
91 if (fabs(a.maximum - a.minimum) < FLT_EPSILON)
92 a.maximum = a.minimum + FLT_EPSILON;
104 VuoReal lower = fmin(range.minimum, range.maximum);
105 VuoReal upper = fmax(range.minimum, range.maximum);
106 return fmin(fmax(value, lower), upper);
119 VuoReal from_lower = fmin(from.minimum, from.maximum);
120 VuoReal from_upper = fmax(from.minimum, from.maximum);
121 VuoReal to_lower = fmin(to.minimum, to.maximum);
122 VuoReal to_upper = fmax(to.minimum, to.maximum);
128 VuoReal from_range = from_upper - from_lower;
129 VuoReal to_range = to_upper - to_lower;
130 VuoReal v = fmax(fmin(value, from_upper), from_lower);
131 VuoReal n = (v - from_lower) / from_range;
133 return to_lower + (n * to_range);