|
@@ -41,32 +41,31 @@ static inline mixeng_real glue (conv_, ET) (IN_T v)
|
|
|
|
|
|
#ifdef RECIPROCAL
|
|
#ifdef RECIPROCAL
|
|
#ifdef SIGNED
|
|
#ifdef SIGNED
|
|
- return nv * (1.f / (mixeng_real) (IN_MAX - IN_MIN));
|
|
|
|
|
|
+ return nv * (2.f / ((mixeng_real)IN_MAX - IN_MIN));
|
|
#else
|
|
#else
|
|
- return (nv - HALF) * (1.f / (mixeng_real) IN_MAX);
|
|
|
|
|
|
+ return (nv - HALF) * (2.f / (mixeng_real)IN_MAX);
|
|
#endif
|
|
#endif
|
|
#else /* !RECIPROCAL */
|
|
#else /* !RECIPROCAL */
|
|
#ifdef SIGNED
|
|
#ifdef SIGNED
|
|
- return nv / (mixeng_real) ((mixeng_real) IN_MAX - IN_MIN);
|
|
|
|
|
|
+ return nv / (((mixeng_real)IN_MAX - IN_MIN) / 2.f);
|
|
#else
|
|
#else
|
|
- return (nv - HALF) / (mixeng_real) IN_MAX;
|
|
|
|
|
|
+ return (nv - HALF) / ((mixeng_real)IN_MAX / 2.f);
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
static inline IN_T glue (clip_, ET) (mixeng_real v)
|
|
static inline IN_T glue (clip_, ET) (mixeng_real v)
|
|
{
|
|
{
|
|
- if (v >= 0.5) {
|
|
|
|
|
|
+ if (v >= 1.f) {
|
|
return IN_MAX;
|
|
return IN_MAX;
|
|
- }
|
|
|
|
- else if (v < -0.5) {
|
|
|
|
|
|
+ } else if (v < -1.f) {
|
|
return IN_MIN;
|
|
return IN_MIN;
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef SIGNED
|
|
#ifdef SIGNED
|
|
- return ENDIAN_CONVERT ((IN_T) (v * ((mixeng_real) IN_MAX - IN_MIN)));
|
|
|
|
|
|
+ return ENDIAN_CONVERT((IN_T)(v * (((mixeng_real)IN_MAX - IN_MIN) / 2.f)));
|
|
#else
|
|
#else
|
|
- return ENDIAN_CONVERT ((IN_T) ((v * IN_MAX) + HALF));
|
|
|
|
|
|
+ return ENDIAN_CONVERT((IN_T)((v * ((mixeng_real)IN_MAX / 2.f)) + HALF));
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|