FastLED 3.9.15
Loading...
Searching...
No Matches
fl::fixed_point_traits< IntBits, FracBits > Struct Template Reference

Detailed Description

template<int IntBits, int FracBits>
struct fl::fixed_point_traits< IntBits, FracBits >

Definition at line 101 of file traits.h.

#include <traits.h>

Public Types

using intermediate_type = fl::conditional_t<(TOTAL_BITS <= 16), i32, i64>
 
using poly_intermediate_type = fl::conditional_t<(IFRAC <= 16), i32, i64>
 
using raw_type = fl::conditional_t<(TOTAL_BITS <= 16), i16, i32>
 
using unsigned_intermediate_type = fl::conditional_t<(TOTAL_BITS <= 16), u32, u64>
 
using unsigned_raw_type = fl::conditional_t<(TOTAL_BITS <= 16), u16, u32>
 

Public Member Functions

 FL_STATIC_ASSERT ((IFRAC<=16 &&sizeof(poly_intermediate_type) *8 >=32)||(IFRAC > 16 &&sizeof(poly_intermediate_type) *8 >=64), "poly_intermediate_type insufficient for polynomial evaluation")
 
 FL_STATIC_ASSERT (sizeof(intermediate_type) *8 >=TOTAL_BITS *2, "intermediate_type too narrow for operator* overflow safety")
 

Static Public Attributes

static constexpr int IFRAC
 
static constexpr auto MAX_OVERFLOW
 
static constexpr int SIN_COS_SHIFT = 31 - FracBits
 
static constexpr int TOTAL_BITS = IntBits + FracBits
 
static constexpr bool USE_ISQRT32 = (TOTAL_BITS <= 16)
 

The documentation for this struct was generated from the following file: