357 {
359 s8x8 fr =
x - fl_val;
363 i32 int_pow;
364 if (n >= 0) {
365 int_pow =
static_cast<i32
>(
SCALE) << n;
366 } else {
367 int_pow =
static_cast<i32
>(
SCALE) >> (-n);
368 }
369
370
371 constexpr int IFRAC = 16;
372 constexpr i32 d0 = 45427;
373 constexpr i32 d1 = 15775;
374 constexpr i32 d2 = 3497;
375 constexpr i32 d3 = 836;
376
377 i32 fr16 =
static_cast<i32
>(fr.mValue) << (IFRAC -
FRAC_BITS);
378
379 i32 acc = d3;
380 acc = d2 +
static_cast<i32
>((
static_cast<i64>(acc) * fr16) >> IFRAC);
381 acc = d1 +
static_cast<i32
>((
static_cast<i64>(acc) * fr16) >> IFRAC);
382 acc = d0 +
static_cast<i32
>((
static_cast<i64>(acc) * fr16) >> IFRAC);
383 constexpr i32 one16 = static_cast<i32>(1) << IFRAC;
384 i32 frac_pow16 = one16 +
static_cast<i32
>((
static_cast<i64>(acc) * fr16) >> IFRAC);
385
386 i32 frac_pow8 = frac_pow16 >> (IFRAC -
FRAC_BITS);
390 }
constexpr s8x8() FL_NOEXCEPT=default
constexpr FASTLED_FORCE_INLINE s8x8 floor() const FL_NOEXCEPT
static constexpr int FRAC_BITS
static constexpr FASTLED_FORCE_INLINE s8x8 from_raw(i16 raw) FL_NOEXCEPT
static constexpr int INT_BITS
static constexpr i32 SCALE
expected< T, E > result
Alias for expected (Rust-style naming)