FastLED 3.9.15
Loading...
Searching...
No Matches

◆ pow()

static FASTLED_FORCE_INLINE u24x8 fl::u24x8::pow ( u24x8 base,
u24x8 exp )
inlinestatic

Definition at line 173 of file u24x8.h.

173 {
174 if (base.mValue == 0) return u24x8();
175 constexpr u24x8 one(1.0f);
176 if (exp.mValue == 0) return one;
177 if (base == one) return one;
178 // Snap base values within ~2 ULPs of 1.0 to exactly 1.0 to dodge the
179 // log2(1+t) minimax polynomial's upper-endpoint residual (#2969).
180 constexpr u32 kOneRaw = static_cast<u32>(SCALE);
181 if (base.mValue >= (kOneRaw - 2u) && base.mValue <= kOneRaw) {
182 return one;
183 }
184 return exp2_fp(exp * log2_fp(base));
185 }
constexpr u24x8() FL_NOEXCEPT=default
static FASTLED_FORCE_INLINE u24x8 exp2_fp(u24x8 x) FL_NOEXCEPT
Definition u24x8.h:242
static FASTLED_FORCE_INLINE u24x8 log2_fp(u24x8 x) FL_NOEXCEPT
Definition u24x8.h:208
static constexpr i32 SCALE
Definition u24x8.h:22
enable_if< is_fixed_point< T >::value, T >::type exp(T x) FL_NOEXCEPT

References u24x8(), fl::exp(), exp2_fp(), FASTLED_FORCE_INLINE, FL_NOEXCEPT, log2_fp(), and SCALE.

+ Here is the call graph for this function: