15 for (
int i = 0; i <= 256; i++) {
16 fl::i16
t =
static_cast<fl::i16
>((i *
HP_ONE) / 256);
17 fl::i16 t2 =
static_cast<fl::i16
>((
static_cast<fl::i32
>(
t) *
t) >>
HP_BITS);
18 fl::i16 t3 =
static_cast<fl::i16
>((
static_cast<fl::i32
>(t2) *
t) >>
HP_BITS);
19 fl::i16 inner =
static_cast<fl::i16
>((
static_cast<fl::i32
>(
t) * (6 *
HP_ONE)) >>
HP_BITS);
21 inner =
static_cast<fl::i16
>((
static_cast<fl::i32
>(
t) * inner) >>
HP_BITS);
23 table[i] =
static_cast<fl::i32
>((
static_cast<fl::i32
>(t3) * inner) >>
HP_BITS);
28 const fl::i32 *fade_lut,
35 const fl::i32 *fade_lut,
44 fl::i16 u =
fade(
x, fade_lut);
45 fl::i16 v =
fade(
y, fade_lut);
47 int A = perm[X & 255] + Y;
48 int AA = perm[A & 255];
49 int AB = perm[(A + 1) & 255];
50 int B = perm[(X + 1) & 255] + Y;
51 int BA = perm[
B & 255];
52 int BB = perm[(
B + 1) & 255];
67 fl::i32 frac16 = fp16 & (
FP_ONE - 1);
76 return static_cast<fl::i16
>(table[idx]);
81 return static_cast<fl::i16
>(
82 a + (((
static_cast<fl::i32
>(
t) * (b - a)) >>
HP_BITS)));
87 constexpr GradCoeff lut[16] = {
88 { 1, 1}, {-1, 1}, { 1, -1}, {-1, -1},
89 { 1, 0}, {-1, 0}, { 1, 0}, {-1, 0},
90 { 0, 1}, { 0, -1}, { 0, 1}, { 0, -1},
91 { 1, 1}, { 0, -1}, {-1, 1}, { 0, -1},
93 const GradCoeff &g = lut[hash & 15];
94 return static_cast<fl::i16
>(g.cx *
x + g.cy *
y);
static constexpr int FRAC_BITS
static constexpr FASTLED_FORCE_INLINE s16x16 from_raw(i32 raw) FL_NOEXCEPT
constexpr i32 raw() const FL_NOEXCEPT
FL_DISABLE_WARNING_PUSH unsigned char * B
expected< T, E > result
Alias for expected (Rust-style naming)
Base definition for an LED controller.
#define FL_OPTIMIZATION_LEVEL_O3_BEGIN
#define FASTLED_FORCE_INLINE
#define FL_OPTIMIZATION_LEVEL_O3_END
static constexpr fl::i32 HP_ONE
static FASTLED_FORCE_INLINE fl::i16 grad(int hash, fl::i16 x, fl::i16 y)
static constexpr fl::i32 FP_ONE
static FASTLED_FORCE_INLINE void floor_frac(fl::i32 fp16, int &ifloor, fl::i16 &frac8)
static fl::i32 pnoise2d_raw(fl::i32 fx_raw, fl::i32 fy_raw, const fl::i32 *fade_lut, const fl::u8 *perm)
static FASTLED_FORCE_INLINE fl::i16 fade(fl::i16 t, const fl::i32 *table)
static constexpr int HP_BITS
static void init_fade_lut(fl::i32 *table)
static fl::s16x16 pnoise2d(fl::s16x16 fx, fl::s16x16 fy, const fl::i32 *fade_lut, const fl::u8 *perm)
static FASTLED_FORCE_INLINE fl::i16 lerp(fl::i16 t, fl::i16 a, fl::i16 b)
static constexpr int FP_BITS