Definition at line 88 of file sin32.h.
88 {
89 u8 angle256 =
static_cast<u8>(angle >> 16);
90 u32
t = angle & 0xFFFF;
91
92 u8 quadrant = angle256 >> 6;
93 u8 pos = angle256 & 0x3F;
94
95
96 u8 mirror_s = quadrant & 1;
97 u8 qi =
static_cast<u8>(
pos + mirror_s * (64 - 2 *
pos));
98 u8 qi_next =
static_cast<u8>(qi + 1 - 2 * mirror_s);
99
100
101 i32 sdmask = -static_cast<i32>(mirror_s);
102 i32 cdmask = ~sdmask;
103
104
107
108
109 i32 svmask = -static_cast<i32>((quadrant >> 1) & 1);
110
111 i32 cvmask = -static_cast<i32>((quadrant ^ (quadrant >> 1)) & 1);
112
114 out.
sin_val = (i32)(((
i64)s_raw ^ svmask) - svmask);
115 out.
cos_val = (i32)(((
i64)c_raw ^ cvmask) - cvmask);
116 return out;
117}
FASTLED_FORCE_INLINE i32 sin32_interp(u8 qi, u8 qi_next, i32 dmask, u32 t, u8 offset=0) FL_NOEXCEPT
References fl::SinCos32::cos_val, FASTLED_FORCE_INLINE, FL_NOEXCEPT, pos, sin32_interp(), fl::SinCos32::sin_val, and t.
Referenced by fl::Chasing_Spirals_Q31_SIMD::draw(), render_value_fp(), fl::fixed_point_base< Derived, IntBits, FracBits >::sincos(), and fl::s16x16::sincos().