FastLED 3.10.8
Loading...
Searching...
No Matches
perlin_s16x16_simd.h
Go to the documentation of this file.
1#pragma once
2
3// 2D Perlin noise SIMD implementation using s16x16 fixed-point arithmetic
4// Extracted from animartrix_detail.hpp for testing and debugging
5//
6// SIMD batch version: Process 4 Perlin evaluations in parallel
7// Uses FastLED SIMD abstraction layer for vectorizable operations
8
10#include "fl/math/simd.h"
11#include "fl/stl/noexcept.h"
12
13namespace fl {
14
15
17 static constexpr int HP_BITS = perlin_s16x16::HP_BITS;
18 static constexpr fl::i32 HP_ONE = perlin_s16x16::HP_ONE;
19 static constexpr int FP_BITS = fl::s16x16::FRAC_BITS;
20 static constexpr fl::i32 FP_ONE = static_cast<fl::i32>(1) << FP_BITS;
21
22 // SIMD batch version: Process 4 Perlin evaluations in parallel.
23 // Takes SIMD registers directly — the caller loads/stores as needed.
26 const fl::i32 *fade_lut, const fl::u8 *perm) FL_NO_EXCEPT;
27};
28
29} // namespace fl
static constexpr int FRAC_BITS
Definition s16x16.h:24
platforms::simd_u32x4 simd_u32x4
Definition types.h:26
unsigned char u8
Definition stdint.h:131
u8 u8 fract8 blur_amount FL_NO_EXCEPT
Definition blur.h:186
Base definition for an LED controller.
Definition crgb.hpp:179
Umbrella header for SIMD subsystem.
static constexpr fl::i32 FP_ONE
static fl::simd::simd_u32x4 pnoise2d_raw_simd4_vec(fl::simd::simd_u32x4 nx_vec, fl::simd::simd_u32x4 ny_vec, const fl::i32 *fade_lut, const fl::u8 *perm) FL_NO_EXCEPT
static constexpr int HP_BITS
static constexpr int FP_BITS
static constexpr fl::i32 HP_ONE
static constexpr fl::i32 HP_ONE
static constexpr int HP_BITS