310 {
311 u32 val =
static_cast<u32
>(
x.mValue);
316 t =
static_cast<i32
>(
318 } else {
319 t =
static_cast<i32
>(
321 }
322
323
324 constexpr int IFRAC = 12;
325 constexpr i32 c0 = 5907;
326 constexpr i32 c1 = -2864;
327 constexpr i32 c2 = 1489;
328 constexpr i32 c3 = -437;
329
330 i32 t12 =
static_cast<i32
>(
t) << (IFRAC -
FRAC_BITS);
331
332 i32 acc = c3;
333 acc = c2 + ((acc * t12) >> IFRAC);
334 acc = c1 + ((acc * t12) >> IFRAC);
335 acc = c0 + ((acc * t12) >> IFRAC);
336 i32 frac_part = (acc * t12) >> IFRAC;
337
338 i16 frac4 =
static_cast<i16
>(frac_part >> (IFRAC -
FRAC_BITS));
339 return from_raw(
static_cast<i16
>((
static_cast<i32
>(
static_cast<u32
>(int_part) <<
FRAC_BITS)) + frac4));
340 }
static constexpr int FRAC_BITS
static constexpr FASTLED_FORCE_INLINE int highest_bit(u32 v) FL_NOEXCEPT
static constexpr i32 SCALE
static constexpr FASTLED_FORCE_INLINE s12x4 from_raw(i16 raw) FL_NOEXCEPT