Definition at line 86 of file sin32.h.
86 {
87 u8 angle256 =
static_cast<u8>(angle >> 16);
88 u32
t = angle & 0xFFFF;
89
90 u8 quadrant = angle256 >> 6;
91 u8 pos = angle256 & 0x3F;
92
93
94 u8 mirror_s = quadrant & 1;
95 u8 qi =
static_cast<u8>(
pos + mirror_s * (64 - 2 *
pos));
96 u8 qi_next =
static_cast<u8>(qi + 1 - 2 * mirror_s);
97
98
99 i32 sdmask = -static_cast<i32>(mirror_s);
100 i32 cdmask = ~sdmask;
101
102
105
106
107 i32 svmask = -static_cast<i32>((quadrant >> 1) & 1);
108
109 i32 cvmask = -static_cast<i32>((quadrant ^ (quadrant >> 1)) & 1);
110
112 out.
sin_val = (i32)(((
i64)s_raw ^ svmask) - svmask);
113 out.
cos_val = (i32)(((
i64)c_raw ^ cvmask) - cvmask);
114 return out;
115}
FASTLED_FORCE_INLINE i32 sin32_interp(u8 qi, u8 qi_next, i32 dmask, u32 t, u8 offset=0) FL_NO_EXCEPT
References fl::SinCos32::cos_val, FASTLED_FORCE_INLINE, FL_NO_EXCEPT, 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().