FastLED 3.10.6
Loading...
Searching...
No Matches
sin32_simd.h File Reference

Detailed Description

Four-lane SIMD batch of fl::sincos32.

Split out of sin32.h so that the scalar sin32/cos32 LUT (reached from CRGB via ease.h and the fixed-point types) no longer drags fl/math/simd.h and the platform intrinsics into every translation unit. Include this header only where sincos32_simd() is actually used.

Definition in file sin32_simd.h.

#include "fl/math/sin32.h"
#include "fl/math/simd.h"
#include "fl/stl/align.h"
#include "fl/stl/compiler_control.h"
#include "fl/stl/int.h"
#include "fl/stl/noexcept.h"
+ Include dependency graph for sin32_simd.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  fl
 Base definition for an LED controller.
 

Functions

struct fl::FL_ALIGNAS (16) SinCos32_simd
 Combined sin+cos result for 4 angles (raw SIMD primitives)
 
FASTLED_FORCE_INLINE SinCos32_simd fl::sincos32_simd (simd::simd_u32x4 angles) FL_NO_EXCEPT
 Process 4 angles simultaneously, returning vectorized sin/cos values SIMD-optimized: vectorized angle decomposition, vector LUT loads with 4x4 transpose (AoS→SoA), and vectorized quadratic interpolation.